이하, 본 발명의 여러가지 실시예들을 예시적인 도면을 참조하여 상세히 설명한다. 본 발명은 다양한 변경을 가할수 있고 여러 가지 실시예를 가질 수 있는 바, 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
도 1은 본 발명에 따른 영상 부호화 장치(100)를 나타내는 블록도이다.
도 1을 참조하면, 본 발명에 따른 영상 부호화 장치(100)는 픽쳐 분할부(101), 변환부(103), 양자화부(104), 스캐닝부(105), 엔트로피 부호화부(106), 역양자화부(107), 역변환부(108), 후처리부(110), 픽쳐 저장부(111), 인트라 예측부(112), 인터 예측부(113), 감산부(102) 및 가산부(109)를 포함한다.
픽쳐 분할부(101)는 픽쳐 또는 슬라이스를 복수개의 LCU(Largest Coding Unit)들로 분할하고, 상기 각각의 LCU를 하나 이상의 코딩 유닛으로 분할한다. 픽쳐 분할부(101)는 각 코딩 유닛의 예측 모드, 예측 유닛의 사이즈 및 변환 유닛의 사이즈를 결정한다.
하나의 LCU는 하나 또는 복수개의 코딩 유닛(coidng unit)을 포함한다. 상기 LCU는 분할 구조를 나타내기 위해 재귀적 쿼드 트리 구조(recursive quadtree structure)를 갖는다. 코딩 유닛의 최대 사이즈 및 최소 사이즈를 나타내는 정보가 시퀀스 파라미터 셋(sequence parameter set)에 포함된다. 상기 분할 구조는 하나 또는 복수개의 분할 코딩 유닛 플래그(split_cu_flag)들을 이용하여 표현된다. 코딩 유닛은 2Nx2N의 사이즈를 갖는다.
코딩 유닛은 하나 또는 복수개의 예측 유닛(prediction unit)을 포함한다.
인트라 예측에서는 상기 예측 유닛의 사이즈는 2Nx2N 또는 NxN이다. 인터 예측에서는 상기 예측 유닛의 사이즈는 2Nx2N, 2NxN, Nx2N 또는 NxN이다. 인터 예측에서 예측 유닛이 비대칭 파티션(asymmetric partition)이면, 상기 예측 유닛의 사이즈는 hNx2N, (2-h)Nx2N, 2NxhN 및 2Nx(2-h)N 중의 하나일 수 있다. 여기서 h는 1/2이다.
코딩 유닛은 하나 또는 복수개의 변환 유닛(transform unit)을 포함한다. 변환 유닛은 분할 구조를 나타내기 위해 재귀적 쿼드 트리 구조(recursive quadtree structure)를 갖는다. 분할 구조는 하나 또는 복수개의 분할 변환 유닛 플래그(split_tu_flag)들에 의해 표현된다. 변환 유닛의 최대 사이즈 및 최소 사이즈를 나타내는 정보가 시퀀스 파라미터 셋에 포함된다.
인트라 예측부(112)는 현재 예측 유닛의 인트라 예측모드를 결정하고, 상기 인트라 예측 모드를 이용하여 하나 또는 복수개의 예측 블록을 생성한다. 예측 블록은 변환 유닛과 동일한 사이즈를 갖는다. 인트라 예측부(112)는 현재 블록의 이용가능하지 않는 참조화소들이 존재하면 참조화소들을 생성하고, 현재 블록의 사이즈 및 인트라 예측 모드에 따라 현재 블록의 참조화소들을 적응적으로 필터링하고, 현재 블록의 예측 블록을 생성한다. 현재 블록은 상기 예측 블록과 동일한 사이즈를 갖는다.
도 2는 본 발명에 따른 인트라 예측 모드들을 설명하는 개념적 블록도이다.
도 2에 도시된 바와 같이, 인트라 예측 모드들의 수는 35개이다. DC 모드와 플래너(Planar) 모드는 비방향성 인트라 예측모드들이고, 나머지들은 방향성 모드들이다.
인터 예측부(113)는 픽쳐 저장부(111)에 저장되어 있는 하나 이상의 참조 픽쳐들을 이용하여 현재 예측 유닛의 움직임 정보를 결정하고, 상기 예측 유닛의 예측 블록을 생성한다. 상기 움직임 정보는 참조 픽쳐들을 나타내는 하나 이상의 참조 픽쳐 인덱스들과 하나 이상의 움직임 벡터들을 포함한다.
변환부(103)는 원본 블록과 예측 블록을 이용하여 생성되는 잔차 신호들을 변환하여 변환 블록을 생성한다. 잔차 신호들은 변환 유닛 단위로 변환된다. 변환 타입은 예측 모드 및 변환 유닛의 사이즈에 따라 결정된다. 변환 타입은 DCT 기반 정수 변환 또는 DST 기반 정수 변환이다.
양자화부(104)는 상기 변환 블록을 양자화하기 위한 양자화 파라미터를 결정한다. 양자화 파라미터는 양자화 스텝 사이즈이다. 양자화 파라미터는 기준 사이즈보다 크거나 같은 사이즈를 갖는 양자화 유닛마다 결정된다. 기준 사이즈의 양자화 유닛을 최소 양자화 유닛이라 한다. 코딩 유닛의 사이즈가 상기 기준 사이즈보다 크거나 같으면, 상기 코딩 유닛은 양자화 유닛이 된다. 복수개의 코딩 유닛이 최소 양자화 유닛에 포함될 수도 있다. 상기 기준 사이즈는 코딩 유닛의 허용 가능한 사이즈들 중의 하나이다. 기준 사이즈는 픽쳐마다 결정되고, 픽쳐 파라미터 셋(picture parameter set)에 포함된다.
양자화부(104)는 양자화 파라미터 예측자를 생성하고, 양자화 파라미터로부터 양자화 파라미터 예측자를 감산하여 차분 양자화 파라미터를 생성한다. 상기 차분 양자화 파라미터는 부호화되어 복호기로 전송된다. 코딩 유닛 내에 전송될 잔차 신호가 존재하지 않으면, 상기 코딩 유닛의 차분 양자화 파라미터는 전송되지 않을 수 있다.
상기 양자화 파라미터 예측자는 인접 코딩 유닛들의 양자화 파라미터들 및/또는 이전 코딩 유닛의 양자화 파라미터를 이용하여 생성된다.
양자화부(104)는 좌측 양자화 파라미터, 상측 양자화 파라미터 및 이전 양자화 파라미터를 상기 순서대로 검색한다. 적어도 2개의 양자화 파라미터들이 이용가능한 경우, 상기 순서로 검색되는 2개의 이용 가능한 양자화 파라미터의 평균값을 양자화 파라미터 예측자로 설정한다. 하나의 양자화 파라미터만이 이용 가능한 경우에는 상기 이용 가능한 양자화 파라미터가 양자화 파라미터 예측자로 설정된다. 상기 좌측 양자화 파라미터는 현재 코딩 유닛의 좌측 코딩 유닛이 양자화 파라미터이다. 상기 상측 양자화 파라미터는 현재 코딩 유닛의 상측 코딩 유닛의 양자화 파라미터이다. 상기 이전 양자화 파라미터는 부호화 순서상 바로 이전의 코딩 유닛의 양자화 파라미터이다.
양자화부(104)는 양자화 매트릭스 및 양자화 파라미터를 이용하여 변환 블록을 양자화하여 양자화 블록을 생성한다. 양자화 블록은 역양자화부(107)와 스캐닝부(105)로 제공된다.
스캐닝부(105)는 스캔 패턴을 결정하고, 상기 스캔 패턴을 상기 양자화 블록에 적용한다. 엔트로피 부호화를 위해 CABAC(Context adaptive bianry arithmetic coding)이 사용될 경우, 상기 스캔 패턴은 다음과 같이 결정된다.
인트라 예측에서는, 인트라 예측 모드 및 변환 유닛의 사이즈에 의해 스캔 패턴이 결정된다. 대각선 스캔(diagonal scan), 수직 스캔(vertical scan) 및 수평 스캔(horizontal scan) 중에서 스캔 패턴이 결정된다. 양자화 블록의 양자화된 변환 계수들은 중요 계수들(significant coefficients), 부호 플래그들(sign flag) 및 레벨들(levels)로 분리된다. 상기 스캔 패턴이 중요 계수들(significant coefficients), 부호 플래그들(sign flags) 및 레벨들(levels)에 각각 적용된다.
변환 유닛의 사이즈가 제1 사이즈보다 작거나 같으면, 수직 모드 및 상기 수직 모드에 인접한 미리 정해진 개수의 인트라 예측 모드들에서는 수평 스캔이 선택되고, 수평 모드 및 상기 수평 모드에 인접한 미리 정해진 개수의 인트라 예측 모드들에서는 수직 스캔이 선택되고, 나머지의 인트라 예측 모드들에서는 대각선 스캔이 선택된다. 상기 제1 사이즈는 8x8이다.
변환 유닛의 사이즈가 상기 제1 사이즈보다 크면, 모든 인트라 예측 모드들에 대각선 스캔이 적용된다.
인터 예측에서는 미리 정해진 스캔 패턴이 사용된다. 상기 미리 정해진 스캔 패턴은 대각선 스캔이다.
변환 유닛의 사이즈가 제2 사이즈보다 크면, 상기 양자화 블록은 복수개의 서브셋들로 분할되어 스캔된다. 상기 제2 사이즈는 4x4이다. 서브셋들을 스캔하기 위한 스캔 패턴은 상기 각 서브셋의 양자화된 변환 계수들을 스캔하기 위한 스캔 패턴과 동일하다. 각 서브셋의 양자화된 변환 계수들은 역방향으로 스캔된다. 상기 서브셋들도 역방향으로 스캔된다.
0이 아닌 마지막 계수 위치(last non-zero position)가 부호화되어 복호기로 전송된다. 0이 아닌 마지막 계수 위치는 변환 유닛 내에서의 0이 아닌 마지막 양자화된 변환 계수의 위치를 나타낸다.
넌제로 서브셋 플래그들(non-zero subset flags)이 결정되어 부호화된다. 넌제로 서브셋 플래그는 서브셋이 0이 아닌 계수들을 포함하는지 여부를 나타낸다. 넌제로 서브셋 플래그는 DC 계수를 포함하는 서브셋과 0이 아닌 마지막 계수를 포함하는 서브셋에서는 정의되지 않는다.
역양자화부(107)는 양자화 블록의 양자화된 변환 계수들을 역양자화한다.
역변환부(108)는 역양자화 블록을 역변환하여 공간 영역이 잔차 신호들을 생성한다.
가산부(109)는 잔차 블록과 예측 블록을 더하여 복원 블록을 생성한다.
후처리부(110)는 복원된 픽쳐에서 발생하는 블록킹 아티펙트를 제거하기 위한 디블록킹 필터링 과정을 수행한다.
픽쳐 저장부(111)는 후처리부(110)로부터 후처리된 영상을 수신하고, 픽쳐 단위로 상기 영상을 저장한다. 픽쳐는 프레임 또는 필드일 수 있다.
엔트로피 부호화부(106)는 스캐닝부(105)로부터 수신되는 1차원 계수 정보, 인트라 예측부(112)로부터 수신되는 인트라 예측 정보, 인터 예측부(113)로부터 수신되는 움직임 정보 등을 엔트로피 부호화한다.
도 3은 본 발명에 따른 영상 복호화 장치(200)를 나타내는 블록도이다.
본 발명에 따른 영상 복호화 장치(200)는 엔트로피 복호화부(201), 역스캐닝부(202), 역양자화부(203), 역변환부(204), 가산부(205), 후처리부(206), 픽쳐 저장부(207), 인트라 예측부(208) 및 인터 예측부(209)를 포함한다.
엔트로피 복호화부(201)는 수신된 비트 스트림에서 인트라 예측 정보, 인터 예측 정보 및 1차원 계수 정보를 추출한다. 엔트로피 복호화부(201)는 인터 예측 정보를 인터 예측부(209)로 전송하고, 인트라 예측 정보를 인트라 예측부(208)로 전송하고, 상기 계수 정보를 역스캐닝부(202)로 전송한다.
역스캐닝부(202)는 역스캔 패턴을 사용하여 2차원의 양자화 블록을 생성한다. CABAC이 엔트로피 부호화 방법으로 사용된 것으로 가정하고 설명한다. 역스캔 패턴은 대각선 스캔, 수직 스캔 및 수평 스캔 중 하나이다.
인트라 예측에서는, 인트라 예측 모드 및 변환 유닛의 사이즈에 의해 역스캔 패턴이 결정된다. 역스캔 패턴은 대각선 스캔, 수직 스캔 및 수평 스캔 중에서 선택된다. 상기 선택된 역스캔 패턴이 중요 계수들, 부호 플래그들 및 레벨들에 각각 적용되어 양자화 블록을 생성한다.
변환 유닛의 사이즈가 상기 제1 사이즈보다 작거나 같으면, 수직 모드 및 상기 수직 모드에 인접한 미리 정해진 개수의 인트라 예측 모드들에서는 수평 스캔이 선택되고, 수평 모드 및 상기 수평 모드에 인접한 미리 정해진 개수의 인트라 예측 모드들에서는 수직 스캔이 선택되고, 나머지의 인트라 예측 모드들에서는 대각선 스캔이 선택된다. 상기 제1 사이즈는 8x8이다.
변환 유닛의 사이즈가 상기 제1 사이즈보다 크면, 모든 인트라 예측 모드들에 대각선 스캔이 적용된다.
인터 예측에서는 대각선 스캔이 사용된다.
변환 유닛의 사이즈가 제2 사이즈보다 크면, 중요 계수들, 부호 플래그들 및 레벨들이 서브셋 단위로 역스캔되어 서브셋들을 생성한다. 서브셋들은 역스캔되어 양자화 블록을 생성한다. 상기 제2 사이즈는 4x4이다.
각 서브셋을 생성하기 위해 사용되는 역스캔 패턴은 양자화 블록을 생성하기 위해 사용되는 역스캔 패턴과 동일한다. 중요 계수들, 부호 플래그들 및 레벨들은 역방향으로 역스캔된다. 서브셋들도 역방향으로 역스캔된다.
0이 아닌 마지막 계수 위치(last non-zero position) 및 넌제로 서브셋 플래그들이 부호화기로부터 수신된다. 0이 아닌 마지막 계수 위치는 생성될 서브셋들의 수를 결정하기 위해 사용된다. 넌제로 서브셋 플래그는 역스캔 패턴을 적용하여 생성될 서브셋을 결정하기 위해 사용된다. DC 계수를 포함하는 서브셋과 0이 아닌 마지막 계수를 포함하는 서브셋에 대한 넌제로 서브셋 플래그들은 부호기로부터 전송되지 않으므로, 역스캔 패턴을 사용하여 상기 DC 계수를 포함하는 서브셋과 0이 아닌 마지막 계수를 포함하는 서브셋을 생성해야 한다.
역양자화부(203)는 엔트로피 복호화부(201)로부터 차분 양자화 파라미터를 수신하고, 양자화 파라미터 예측자를 생성한다. 양자화 파라미터 예측자는 도 1의 양자화부(104)에 의한 동작과 동일한 과정을 통해 생성된다. 그리고나서, 역양자화부(203)는 상기 차분 양자화 파라미터와 상기 양자화 파라미터 예측자를 더하여 현재 코딩 유닛의 양자화 파라미터를 생성한다. 현재 코딩 유닛이 최소 양자화 유닛보다 크거나 같고, 현재 코딩 유닛의 차분 양자화 파라미터가 부호기로부터 수신되지 않으면, 상기 차분 양자화 파라미터는 0으로 설정된다.
역양자화부(203)는 양자화 블록을 역양자화한다.
역변환부(204)는 상기 역양자된 블록을 역변환하여 잔차 블록을 복원한다. 역변환 타입은 예측 모드 및 변환 유닛이 사이즈에 따라 결정된다. 역 변환 타입은 DCT 기반 정수 변환 또는 DST 기반 정수 변환이다.
인트라 예측부(208)는 수신된 인트라 예측 정보를 이용하여 현재 예측 유닛의 인트라 예측 모드를 복원하고, 상기 복원된 인트라 예측 모드에 따라 예측 블록을 생성한다. 상기 예측 블록은 변환 유닛과 동일한 사이즈를 갖는다. 인트라 예측부(250)는 현재 블록의 이용 가능하지 않은 참조 화소들이 존재하면 참조화소들을 생성하고, 현재 블록의 사이즈 및 인트라 예측 모드에 따라서 현재 블록의 참조화소들을 적응적으로 필터링한다. 현재 블록은 변환 유닛의 사이즈를 갖는다.
인터 예측부(209)는 수신된 인터 예측 정보를 이용하여 현재 예측 유닛의 움직임 정보를 복원하고, 상기 움직임 정보를 이용하여 예측 블록을 생성한다.
후처리부(206)는 도 1의 후처리부(110)과 동일하게 동작한다.
픽쳐 저장부(207)는 후처리부(206)로부터 후처리된 영상을 수신하고, 픽쳐 단위로 상기 영상을 저장한다. 픽쳐는 프레임 또는 필드일 수 있다.
가산부(205)는 복원된 잔차 블록과 예측 블록을 더하여 복원 블록을 생성한다.
도 4는 본 발명에 따른 인트라 예측모드에서의 예측 블록을 생성하는 방법을 설명하는 순서도이다.
현재 예측 유닛의 인트라 예측 정보가 엔트로피 복호화된다(S110).
상기 인트라 예측 정보는 모드 그룹 지시자 및 예측 모드 인덱스를 포함한다. 상기 모드 그룹 지시자는 현재 예측 유닛의 인트라 예측 모드가 MPM 그룹(most probable mode group)에 속하는지를 나타내는 플래그이다. 상기 플래그가 1이면, 현재 예측 유닛의 인트라 예측 모드가 MPM 그룹에 속한다. 상기 플래그가 0이면, 현재 예측 유닛의 인트라 예측 모드가 잔여 모드 그룹(residual mode group)에 속한다. 상기 잔여 모드 그룹은 상기 MPM 그룹에 속하는 인트라 예측 모드들 이외의 모드 인트라 예측 모드들을 포함한다. 상기 예측 모드 인덱스는 상기 모드 그룹 지시자에 의해 특정되는 그룹 내에서의 현재 예측 유닛의 인트라 예측 모드를 특정한다.
상기 인트라 예측 정보를 이용하여 현재 예측 유닛의 인트라 예측 모드가 복원된다(S120).
도 5는 본 발명에 따른 인트라 예측 모드를 복원하는 과정을 설명하는 순서도이다. 현재 예측 유닛의 인트라 예측 모드는 다음의 순서대로 유도된다.
인접 예측 유닛들의 인트라 예측 모드들을 이용하여 MPM 그룹이 구성된다(S121). 상기 MPM 그룹의 인트라 예측 모드들은 좌측 인트라 예측 모드 및 상측 인트라 예측 모드들에 의해 적응적으로 결정된다. 상기 좌측 인트라 예측 모드는 좌측에 인접한 예측 유닛의 인트라 예측 모드이고, 상기 상측 인트라 예측 모드는 상측에 인접한 예측 유닛의 인트라 예측 모드이다. 상기 MPM 그룹은 3개의 인트라 예측 모드들로 구성된다.
상기 좌측 또는 상측에 인접한 예측 유닛이 존재하지 않으면, 상기 좌측 또는 상측의 인접 예측 유닛들의 인트라 예측 모드는 이용 가능하지 않은 것으로 설정된다. 예를 들어, 현재 예측 유닛이 픽쳐의 좌측 또는 상측 경계에 위치하면, 좌측 또는 상측에 인접한 예측 유닛이 존재하지 않는다. 좌측 또는 상측에 인접한 예측 유닛이 다른 슬라이스 또는 다른 타일에 속하면, 좌측 또는 상측에 인접한 예측 유닛의 인트라 예측 모드들은 이용 가능하지 않은 것으로 설정된다. 좌측 또는 상측에 인접한 예측 유닛이 인터 부호화되면, 좌측 또는 상측에 인접한 예측 유닛의 인트라 예측 모드가 이용 가능하지 않은 것으로 설정된다. 상측 예측 유닛이 다른 LCU에 속하면, 상기 상측 예측에 인접한 예측 유닛의 인트라 예측 모드가 이용 가능하지 않은 것으로 설정된다.
좌측 인트라 예측 모드 및 상측 인트라 예측 모드가 모두 이용 가능하고 서로 다른 경우에는, 상기 좌측 인트라 예측 모드 및 상기 상측 인트라 예측 모드가 상기 MPM 그룹에 포함되고 1개의 추가 인트라 예측 모드가 상기 MPM 그룹에 추가된다. 둘 중 모드 번호가 작은 인트라 예측 모드에 인덱스 0이 할당하고, 나머지 하나에 인덱스 1이 할당된다. 또는 좌측 인트라 예측 모드에 인덱스 0이 할당되고 상측 인트라 예측 모드에 인덱스 1이 할당될 수도 있다. 상기 추가 인트라 예측 모드는 상기 좌측 및 상측 인트라 예측 모드들에 의해 다음과 같이 결정된다.
좌측 및 상측 인트라 예측 모드들 중 하나가 비방향성 모드(non-directional mode)이고 다른 하나가 방향성 모드(directional mode)이면, 나머지 하나의 비방향성 모드가 상기 MPM 그룹에 추가된다. 예를 들어, 상기 좌측 및 상측 인트라 예측 모드들 중 하나가 DC 모드이면, 플래너 모드가 상기 MPM 그룹에 추가되고, 상기 좌측 및 상측 인트라 예측 모드들 중 하나가 플래너 모드이면, DC 모드가 상기 MPM 그룹에 추가된다. 좌측 및 상측 인트라 예측 모드들이 모두 비방향성 모드들이면, 수직 모드가 상기 MPM 그룹에 추가된다. 좌측 및 상측 인트라 예측 모드들이 모두 방향성 모드들이면, DC 모드 또는 플래너 모드가 상기 MPM 그룹에 추가된다.
좌측 인트라 예측 모드 및 상측 인트라 예측 모드들 중 하나만 이용 가능한 경우에는, 상기 이용 가능한 인트라 예측 모드가 상기 MPM 그룹에 포함되고, 2개의 추가 인트라 예측 모드들이 상기 MPM 그룹에 추가된다. 상기 2개의 추가 인트라 예측 모드들은 상기 이용 가능한 인트라 예측 모드에 의해 다음과 같이 결정된다.
상기 이용 가능한 인트라 예측 모드가 비방향성 모드이면, 나머지 하나의 비방향성 모드와 수직 모드가 상기 MPM 그룹에 추가된다. 예를 들어, 상기 이용 가능한 인트라 예측 모드가 DC 모드이면, 플래너 모드와 수직 모드가 상기 MPM 그룹에 추가된다. 상기 이용 가능한 인트라 예측 모드가 플래너 모드이면, DC 모드와 수직 모드가 상기 MPM 그룹에 추가된다. 상기 이용 가능한 인트라 예측 모드가 방향성 모드이면, 2개의 비방향성 모드(DC 모드 및 플래너 모드)가 상기 MPM 그룹에 추가된다.
좌측 인트라 예측 모드 및 상측 인트라 예측 모드가 모두 이용 가능하고 서로 같으면, 상기 이용 가능한 인트라 예측 모드가 MPM 그룹에 포함되고, 2개의 추가 인트라 예측 모드들이 상기 MPM 그룹에 추가된다. 상기 추가되는 2개의 인트라 예측 모드는 상기 이용 가능한 인트라 예측 모드에 의해 다음과 같이 결정된다.
상기 이용 가능한 인트라 예측 모드가 방향성 모드이면, 2개의 인접 방향성 모드들이 상기 MPM 그룹에 추가된다. 예를 들어, 상기 이용 가능한 인트라 예측 모드가 모드 23이면, 좌측 인접 모드(모드 1)와 우측 인접 모드(모드 13)이 상기 MPM 그룹에 추가된다. 상기 이용 가능한 인트라 예측 모드가 모드 30이면, 2개의 인접 모드들(모드 2와 모드 16)이 상기 MPM 그룹에 추가된다. 상기 이용 가능한 인트라 예측 모드가 비방향성 모드이면, 나머지 하나의 비방향성 모드와 수직 모드가 상기 MPM 그룹에 추가된다. 예를 들어, 상기 이용 가능한 인트라 예측 모드가 DC 모드이면, 플래너 모드와 수직 모드가 상기 MPM 그룹에 추가된다.
좌측 인트라 예측 모드 및 상측 인트라 예측 모드가 모두 이용가능하지 않는 경우에는, 3개의 추가 인트라 예측 모드들이 상기 MPM 그룹에 추가된다. 상기 3개의 인트라 예측 모드들은 DC 모드, 플래너 모드 및 수직 모드이다. DC 모드, 플래너 모드 및 수직 모드의 순서 또는 플래너 모드, DC 모드 및 수직 모드의 순서로 인덱스 0, 1 및 2가 상기 3개의 인트라 예측 모드에 할당된다.
상기 모드 그룹 지시자가 MPM 그룹을 나타내는지를 결정한다(S122).
상기 모드 그룹 지시자가 상기 MPM 그룹을 나타내면, 상기 예측 모드 인덱스에 의해 특정되는 MPM 그룹 내의 인트라 예측 모드가 현재 예측 유닛의 인트라 예측 모드로 결정된다(S123).
상기 모드 그룹 지시자가 상기 MPM 그룹을 나타내지 않으면, 상기 예측 모드 인덱스에 의해 특정되는 상기 잔여 모드 그룹 내의 인트라 예측 모드가 현재 예측 유닛의 인트라 예측 모드로 결정된다(S124). 현재 예측 유닛의 인트라 예측 모드는 상기 예측 모드 인덱스 및 상기 MPM 그룹의 인트라 예측 모드들을 이용하여 다음의 순서로 유도된다.
1) MPM 그룹 내의 3개의 인트라 예측 모드들이 모드 번호 순서대로 정렬된다. 가장 작은 모드 번호를 갖는 인트라 예측 모드가 첫번째 후보자이다. 중간 모드 번호를 갖는 인트라 예측 모드가 두번째 후보자이다. 가장 큰 모드 번호를 갖는 인트라 예측 모드가 세번째 후보자이다.
2) 상기 예측 모드 인덱스를 첫번째 후보자와 비교한다. 상기 예측 모드 인덱스가 상기 MPM 그룹 내의 첫번째 후보자의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스의 값이 1만큼 증가한다. 그렇지 않으면, 상기 예측 모드 인덱스의 값은 유지된다.
3) 상기 예측 모드 인덱스를 두번째 후보자와 비교한다. 상기 예측 모드 인덱스가 상기 MPM 그룹 내의 두번째 후보자의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스의 값이 1만큼 증가한다. 그렇지 않으면, 상기 예측 모드 인덱스의 값은 유지된다.
4) 상기 예측 모드 인덱스를 세번째 후보자와 비교한다. 상기 예측 모드 인덱스가 상기 MPM 그룹 내의 세번째 후보자의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스의 값이 1만큼 증가한다. 그렇지 않으면, 상기 예측 모드 인덱스의 값은 유지된다.
5) 상기 최종 예측 모드 인덱스가 현재 예측 유닛의 인트라 예측 모드의 모드 번호로 설정된다.
상기 예측 블록의 사이즈는 상기 변환 유닛의 사이즈를 나타내는 변환 사이즈 정보에 기초하여 결정된다(S130). 변환 사이즈 정보는 상기 변환 유닛의 사이즈를 특정하기 위한 하나 또는 복수개의 분할 변환 플래그(split_transform_flag)들일 수 있다.
변환 유닛의 사이즈가 현재 예측 유닛이 사이즈와 같으면, 예측 블록의 사이즈는 현재 예측 유닛의 사이즈와 같다.
변환 유닛의 사이즈가 현재 예측 유닛의 사이즈보다 작으면, 예측 블록의 사이즈는 변환 유닛의 사이즈와 같다. 이 경우, 복원 블록을 생성하는 과정은 현재 예측 유닛의 각 서브블록마다 수행된다. 즉, 현재의 서브블록의 예측 블록 및 잔차 블록이 생성되고, 상기 예측 블록 및 잔차 블록을 더하여 복원 블록을 생성한다. 그리고나서, 복호화 순서상 다음에 위치하는 서브블록의 예측 블록, 잔차 블록 및 복원 블록이 생성된다. 상기 복원된 인트라 예측 모드가 모든 서브블록의 예측 블록들을 생성하는데 사용된다. 현재 서브블록의 복원 블록의 일부 화소들이 다음 서브블록의 참조화소들로 사용된다. 따라서, 원본 서브블록에 더 유사한 예측 블록을 생성하는 것이 가능하다.
다음으로, 현재 블록의 참조 화소들이 모두 이용가능한지를 판단하고, 하나 이상의 참조화소들이 이용가능하지 않으면 참조화소들을 생성한다(S140). 현재 블록은 현재 예측 유닛 또는 현재 서브블록이다. 상기 현재 블록의 사이즈는 변환 유닛의 사이즈이다.
도 6은 본 발명에 따른 현재 블록의 참조화소들의 위치를 설명하는 블록도이다. 도 6에 도시된 바와 같이, 현재 블록의 참조화소들은 (x=0, ..., 2N-1_, y=-1)에 위치하는 상측 참조화소들과, (x=-1, y=0, ..., 2M-1)에 위치하는 좌측 참조화소들과, (x=-1, y=-1)에 위치하는 코너 참조화소로 구성된다. N은 현재 블록의 가로의 길이이고, M은 현재 블록의 세로의 길이이다.
복원된 화소들이 대응하는 위치에 존재하지 않거나 다른 슬라이스에 위치하면, 상기 참조화소들은 이용 가능하지 않는 것으로 설정된다. CIP 모드(constrained intra prediction mode)에서는 인터 모드의 복원 화소들이 이용 가능하지 않는 것으로 설정된다.
하나 이상이 참조화소들이 이용 가능하지 않으면, 상기 화소들을 대해 참조화소들이 다음과 같이 생성된다.
모든 참조화소들이 이용 가능하지 않으면, 모든 참조화소들이 2L-1의 값으로 대체된다. L의 값은 휘도 화소의 값을 표현하는데 사용되는 비트들의 수이다.
이용 가능한 참조화소들이 이용 가능하지 않은 참조화소의 한쪽 방향에만 존재하면, 상기 이용 가능하지 않은 참조화소의 값은 상기 이용 가능하지 않은 참조화소에 가장 가까운 위치의 참조 화소의 값으로 대체된다.
이용 가능한 참조화소들이 이용 가능하지 않은 참조화소의 양쪽 방향에 모두 존재하면, 상기 이용 가능하지 않은 참조화소의 값은 상기 이용 가능하지 않는 참조화소에 각 방향으로 가장 가까운 위치의 참조화소들의 평균값 또는 미리 정해진 방향의 가장 가까운 위치의 참조화소의 값으로 대체된다.
다음으로, 상기 인트라 예측 모드 및 현재 블록의 사이즈에 기초하여 상기 참조화소들이 적응적으로 필터링된다(S150). 현재 블록의 사이즈는 변환 블록의 사이즈이다.
DC 모드에서는 참조화소들이 필터링되지 않는다. 수직 모드 및 수평 모드에서도 참조화소들이 필터링되지 않는다. 상기 수직 모드 및 수평 모드 이외의 방향성 모드들에서는 참조화소들이 상기 현재 블록의 사이즈에 따라 적응적으로 필터링된다.
현재 블록의 사이즈가 4x4이면, 모든 인트라 예측 모드들에서 상기 참조화소들이 필터링되지 않는다. 8x8, 16x16 및 32x32의 사이즈에서는, 참조화소가 필터링되어야 하는 인트라 예측 모드의 수가 현재 블록의 사이즈가 커질수록 증가한다. 예를 들어, 수직 모드 및 상기 수직모드에 인접하는 미리 정해진 개수의 인트라 예측 모드들에서는 참조화소들이 필터링되지 않는다. 수평 모드 및 상기 수평 모드에 인접한 상기 미리 정해진 개수의 인트라 예측모드드에서는 참조화소들이 필터링되지 않는다. 상기 미리 정해진 개수는 0에서 7 중 하나이고 현재 블록의 사이즈가 커질수록 감소한다.
다음으로, 상기 복원된 인트라 예측 모드에 따라 참조 화소들을 이용하여 현재 블록의 예측 블록이 생성된다(S160).
DC 모드에서는 (x=0, ..., N-1, y=-1)에 위치하는 N개의 참조 화소들과, (x=-1, y=0, ..., M-1)에 위치하는 M개의 참조화소들을 평균하여 예측 블록의 예측 화소들을 생성한다. 그리고, 참조 화소에 접하는 예측 화소들이 하나 또는 2개의 접하는 참조화소들을 이용하여 필터링된다.
수직 모드에서는 대응하는 수직 참조 화소의 값을 복사하여 예측 블록의 참조화소들을 생성한다. 그리고, 좌측 참조화소에 접하는 예측 화소들이 좌측 인접 참조화소와 코너 참조 화소를 이용하여 필터링된다.
수평 모드에서는 대응하는 수평 참조 화소의 값을 복사하여 예측 블록의 참조화소들을 생성한다. 그리고, 상측 참조 화소에 접하는 예측 화소들이 상측 인접 참조화소와 코너 참조 화소를 이용하여 필터링된다.
도 7은 본 발명에 따른 인트라 예측에서의 예측 블록을 생성하는 장치(300)를 설명하는 블록도이다.
본 발명에 따른 장치(300)는 파싱부(310), 예측모드 복호화부(320), 예측 사이즈 결정부(330), 참조화소 유효성 검사부(340), 참조화소 생성부(350), 참조화소 필터링부(360) 및 예측 블록 생성부(370)를 포함한다.
파싱부(310)는 비트스트림으로부터 현재 예측 유닛의 인트라 예측 정보를 복원한다.
상기 인트라 예측 정보는 모드 그룹 지시자와 예측 모드 인덱스를 포함한다. 상기 모드 그룹 지시자는 현재 예측 유닛의 인트라 예측 모드가 MPM 그룹에 속하는지 여부를 나타내는 플래그이다. 상기 플래그가 1이면, 현재 예측 유닛의 인트라 예측 모드는 MPM 그룹에 속한다. 상기 플래그가 0이면, 현재 예측 유닛의 인트라 예측 모드가 잔여 모드 그룹에 속한다. 상기 잔여 모드 그룹은 상기 MPM 그룹에 속하는 인트라 예측 모드들 이외의 모든 인트라 예측 모드들을 포함한다. 예측 모드 인덱스는 상기 모드 그룹 지시자에 의해 특정되는 그룹 내에서의 현재 예측 유닛의 인트라 예측 모드를 특정한다.
예측 모드 복호화부(320)는 MPM 그룹 구성부(321) 및 예측 모드 복원부(322)를 포함한다.
MPM 그룹 구성부(321)는 현재 예측 유닛의 MPM 그룹을 구성한다. 상기 MPM 그룹은 인접 예측 유닛들의 인트라 예측 모드들을 이용하여 구성한다. 상기 MPM 그룹의 인트라 예측 모드들은 좌측 인트라 예측 모드 및 상측 인트라 예측 모드들에 의해 적응적으로 결정된다. 상기 좌측 인트라 예측 모드는 좌측에 인접한 예측 유닛의 인트라 예측 모드이고, 상기 상측 인트라 예측 모드는 상측에 인접한 예측 유닛의 인트라 예측 모드이다. 상기 MPM 그룹은 3개의 인트라 예측 모드들로 구성된다.
MPM 그룹 구성부(321)는 상기 좌측 인트라 예측 모드 및 상기 상측 인트라 예측 모드의 유효성을 검사한다. 상기 좌측 또는 상측에 인접한 예측 유닛이 존재하지 않으면, 상기 좌측 또는 상측의 인접 예측 유닛들의 인트라 예측 모드는 이용 가능하지 않은 것으로 설정된다. 예를 들어, 현재 예측 유닛이 픽쳐의 좌측 또는 상측 경계에 위치하면, 좌측 또는 상측에 인접한 예측 유닛이 존재하지 않는다. 좌측 또는 상측에 인접한 예측 유닛이 다른 슬라이스 또는 다른 타일에 속하면, 좌측 또는 상측에 인접한 예측 유닛의 인트라 예측 모드들은 이용 가능하지 않은 것으로 설정된다. 좌측 또는 상측에 인접한 예측 유닛이 인터 부호화되면, 좌측 또는 상측에 인접한 예측 유닛의 인트라 예측 모드가 이용 가능하지 않은 것으로 설정된다. 상측 예측 유닛이 다른 LCU에 속하면, 상기 상측 예측에 인접한 예측 유닛의 인트라 예측 모드가 이용 가능하지 않은 것으로 설정된다.
MPM 그룹 구성부(321)는 MPM 그룹을 다음과 같이 구성한다.
좌측 인트라 예측 모드 및 상측 인트라 예측 모드가 모두 이용 가능하고 서로 다른 경우에는, 상기 좌측 인트라 예측 모드 및 상기 상측 인트라 예측 모드가 상기 MPM 그룹에 포함되고 1개의 추가 인트라 예측 모드가 상기 MPM 그룹에 추가된다. 둘 중 모드 번호가 작은 인트라 예측 모드에 인덱스 0이 할당하고, 나머지 하나에 인덱스 1이 할당된다. 또는 좌측 인트라 예측 모드에 인덱스 0이 할당되고 상측 인트라 예측 모드에 인덱스 1이 할당될 수도 있다. 상기 추가 인트라 예측 모드는 상기 좌측 및 상측 인트라 예측 모드들에 의해 다음과 같이 결정된다.
좌측 및 상측 인트라 예측 모드들 중 하나가 비방향성 모드(non-directional mode)이고 다른 하나가 방향성 모드(directional mode)이면, 나머지 하나의 비방향성 모드가 상기 MPM 그룹에 추가된다. 예를 들어, 상기 좌측 및 상측 인트라 예측 모드들 중 하나가 DC 모드이면, 플래너 모드가 상기 MPM 그룹에 추가되고, 상기 좌측 및 상측 인트라 예측 모드들 중 하나가 플래너 모드이면, DC 모드가 상기 MPM 그룹에 추가된다. 좌측 및 상측 인트라 예측 모드들이 모두 비방향성 모드들이면, 수직 모드가 상기 MPM 그룹에 추가된다. 좌측 및 상측 인트라 예측 모드들이 모두 방향성 모드들이면, DC 모드 또는 플래너 모드가 상기 MPM 그룹에 추가된다.
좌측 인트라 예측 모드 및 상측 인트라 예측 모드들 중 하나만 이용 가능한 경우에는, 상기 이용 가능한 인트라 예측 모드가 상기 MPM 그룹에 포함되고, 2개의 추가 인트라 예측 모드들이 상기 MPM 그룹에 추가된다. 상기 2개의 추가 인트라 예측 모드들은 상기 이용 가능한 인트라 예측 모드에 의해 다음과 같이 결정된다.
상기 이용 가능한 인트라 예측 모드가 비방향성 모드이면, 나머지 하나의 비방향성 모드와 수직 모드가 상기 MPM 그룹에 추가된다. 예를 들어, 상기 이용 가능한 인트라 예측 모드가 DC 모드이면, 플래너 모드와 수직 모드가 상기 MPM 그룹에 추가된다. 상기 이용 가능한 인트라 예측 모드가 플래너 모드이면, DC 모드와 수직 모드가 상기 MPM 그룹에 추가된다. 상기 이용 가능한 인트라 예측 모드가 방향성 모드이면, 2개의 비방향성 모드(DC 모드 및 플래너 모드)가 상기 MPM 그룹에 추가된다.
좌측 인트라 예측 모드 및 상측 인트라 예측 모드가 모두 이용 가능하고 서로 같으면, 상기 이용 가능한 인트라 예측 모드가 MPM 그룹에 포함되고, 2개의 추가 인트라 예측 모드들이 상기 MPM 그룹에 추가된다. 상기 추가되는 2개의 인트라 예측 모드는 상기 이용 가능한 인트라 예측 모드에 의해 다음과 같이 결정된다.
상기 이용 가능한 인트라 예측 모드가 방향성 모드이면, 2개의 인접 방향성 모드들이 상기 MPM 그룹에 추가된다. 예를 들어, 상기 이용 가능한 인트라 예측 모드가 모드 23이면, 좌측 인접 모드(모드 1)와 우측 인접 모드(모드 13)이 상기 MPM 그룹에 추가된다. 상기 이용 가능한 인트라 예측 모드가 모드 30이면, 2개의 인접 모드들(모드 2와 모드 16)이 상기 MPM 그룹에 추가된다. 상기 이용 가능한 인트라 예측 모드가 비방향성 모드이면, 나머지 하나의 비방향성 모드와 수직 모드가 상기 MPM 그룹에 추가된다. 예를 들어, 상기 이용 가능한 인트라 예측 모드가 DC 모드이면, 플래너 모드와 수직 모드가 상기 MPM 그룹에 추가된다.
좌측 인트라 예측 모드 및 상측 인트라 예측 모드가 모두 이용가능하지 않는 경우에는, 3개의 추가 인트라 예측 모드들이 상기 MPM 그룹에 추가된다. 상기 3개의 인트라 예측 모드들은 DC 모드, 플래너 모드 및 수직 모드이다. DC 모드, 플래너 모드 및 수직 모드의 순서 또는 플래너 모드, DC 모드 및 수직 모드의 순서로 인덱스 0, 1 및 2가 상기 3개의 인트라 예측 모드에 할당된다.
예측 모드 복원부(322)는 상기 모드 그룹 지시자와 상기 예측 모드 인덱스를 이용하여 현재 예측 유닛의 인트라 예측 모드를 다음과 같이 유도한다.
예측 모드 복원부(322)는 상기 모드 그룹 지시자가 MPM 그룹을 나타내는지를 결정한다.
상기 모드 그룹 지시자가 상기 MPM 그룹을 나타내면, 예측 모드 복원부(322)는 상기 예측 모드 인덱스에 의해 특정되는 MPM 그룹 내의 인트라 예측 모드를 현재 예측 유닛의 인트라 예측 모드로 결정한다.
상기 모드 그룹 지시자가 상기 MPM 그룹을 나타내지 않으면, 예측 모드 복원부(322)는 상기 예측 모드 인덱스에 의해 특정되는 상기 잔여 모드 그룹 내의 인트라 예측 모드를 현재 예측 유닛의 인트라 예측 모드로 결정한다. 현재 예측 유닛의 인트라 예측 모드는 상기 예측 모드 인덱스 및 상기 MPM 그룹의 인트라 예측 모드들을 이용하여 다음의 순서로 유도된다.
1) MPM 그룹 내의 3개의 인트라 예측 모드들이 모드 번호 순서대로 정렬된다. 가장 작은 모드 번호를 갖는 인트라 예측 모드가 첫번째 후보자이다. 중간 모드 번호를 갖는 인트라 예측 모드가 두번째 후보자이다. 가장 큰 모드 번호를 갖는 인트라 예측 모드가 세번째 후보자이다.
2) 상기 예측 모드 인덱스를 첫번째 후보자와 비교한다. 상기 예측 모드 인덱스가 상기 MPM그룹 내의 첫번째 후보자의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스의 값이 1만큼 증가한다. 그렇지 않으면, 상기 예측 모드 인덱스의 값은 유지된다.
3) 상기 예측 모드 인덱스를 두번째 후보자와 비교한다. 상기 예측 모드 인덱스가 상기 MPM그룹 내의 두번째 후보자의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스의 값이 1만큼 증가한다. 그렇지 않으면, 상기 예측 모드 인덱스의 값은 유지된다.
4) 상기 예측 모드 인덱스를 세번째 후보자와 비교한다. 상기 예측 모드 인덱스가 상기 MPM그룹 내의 세번째 후보자의 모드번호보다 크거나 같으면, 상기 예측 모드 인덱스의 값이 1만큼 증가한다. 그렇지 않으면, 상기 예측 모드 인덱스의 값은 유지된다.
5) 상기 최종 예측 모드 인덱스가 현재 예측 유닛의 인트라 예측 모드의 모드 번호로 설정된다.
예측 사이즈 결정부(330)는 변환 유닛의 사이즈를 특정하는 변환 사이즈 정보에 기초하여 예측 블록의 사이즈를 결정한다. 상기 변환 사이즈 정보는 변환 유닛의 사이즈를 특정하는 하나 또는 복수개의 분할 변환 플래그(split_transform_flag)들일 수 있다.
변환 유닛의 사이즈가 현재 예측 유닛이 사이즈와 같으면, 예측 블록의 사이즈는 현재 예측 유닛의 사이즈와 같다.
변환 유닛의 사이즈가 현재 예측 유닛의 사이즈보다 작으면, 예측 블록의 사이즈는 변환 유닛의 사이즈와 같다. 이 경우, 복원 블록을 생성하는 과정은 현재 예측 유닛의 각 서브블록마다 수행된다. 즉, 현재의 서브블록의 예측 블록 및 잔차 블록이 생성되고, 상기 예측 블록 및 잔차 블록을 더하여 복원 블록을 생성한다. 그리고나서, 복호화 순서상 다음에 위치하는 서브블록의 예측 블록, 잔차 블록 및 복원 블록이 생성된다. 상기 복원된 인트라 예측 모드가 모든 서브블록의 예측 블록들을 생성하는데 사용된다. 현재 서브블록의 복원 블록의 일부 화소들이 다음 서브블록의 참조화소들로 사용된다. 따라서, 원본 서브블록에 더 유사한 예측 블록을 생성하는 것이 가능하다.
다음으로, 현재 블록의 참조 화소들이 모두 이용가능한지를 판단하고, 하나 이상의 참조화소들이 이용가능하지 않으면 참조화소들을 생성한다. 현재 블록은 현재 예측 유닛 또는 현재 서브블록이다. 상기 현재 블록의 사이즈는 변환 유닛의 사이즈이다.
참조화소 유효성 검사부(340)는 현재 블록의 모든 참조화소들이 이용 가능한지 여부를 결정한다. 현재 블록은 상기 현재 예측 유닛 또는 상기 현재 서브 블록이다. 현재 블록의 사이즈는 변환 유닛의 사이즈이다.
참조화소 생성부(350)는 하나 이상의 참조화소들이 이용 가능하지 않으면 참조화소들을 생성한다.
모든 참조화소들이 이용 가능하지 않으면, 모든 참조화소들이 2L-1의 값으로 대체된다. L의 값은 휘도 화소의 값을 표현하는데 사용되는 비트들의 수이다.
이용 가능한 참조화소들이 이용 가능하지 않은 참조화소의 한쪽 방향에만 존재하면, 상기 이용 가능하지 않은 참조화소의 값은 상기 이용 가능하지 않은 참조화소에 가장 가까운 위치의 참조 화소의 값으로 대체된다.
이용 가능한 참조화소들이 이용 가능하지 않은 참조화소의 양쪽 방향에 모두 존재하면, 상기 이용 가능하지 않은 참조화소의 값은 상기 이용 가능하지 않는 참조화소에 각 방향으로 가장 가까운 위치의 참조화소들의 평균값 또는 미리 정해진 방향의 가장 가까운 위치의 참조화소의 값으로 대체된다.
참조화소 필터링부(360)는 상기 인트라 예측 모드 및 현재 블록의 사이즈에 기초하여 상기 참조화소들을 적응적으로 필터링한다.
DC 모드에서는 참조화소들이 필터링되지 않는다. 수직 모드 및 수평 모드에서도 참조화소들이 필터링되지 않는다. 상기 수직 모드 및 수평 모드 이외의 방향성 모드들에서는 참조화소들이 상기 현재 블록의 사이즈에 따라 적응적으로 필터링된다.
현재 블록의 사이즈가 4x4이면, 모든 인트라 예측 모드들에서 상기 참조화소들이 필터링되지 않는다. 8x8, 16x16 및 32x32의 사이즈에서는, 참조화소가 필터링되어야 하는 인트라 예측 모드의 수가 현재 블록의 사이즈가 커질수록 증가한다. 예를 들어, 수직 모드 및 상기 수직모드에 인접하는 미리 정해진 개수의 인트라 예측 모드들에서는 참조화소들이 필터링되지 않는다. 수평 모드 및 상기 수평 모드에 인접한 상기 미리 정해진 개수의 인트라 예측모드드에서는 참조화소들이 필터링되지 않는다. 상기 미리 정해진 개수는 0에서 7 중 하나이고 현재 블록의 사이즈가 커질수록 감소한다.
예측블록 생성부(370)는 상기 복원된 인트라 예측 모드에 따라 참조 화소들을 이용하여 현재 블록의 예측 블록을 생성한다.
DC 모드에서는, 참조화소들에 접하지 않은 예측 블록의 예측 화소는 (x=0, ..., N-1, y=-1)에 위치하는 N개의 참조 화소들과, (x=-1, y=0, ..., M-1)에 위치하는 M개의 참조화소들을 평균하여 예측 블록의 예측 화소들을 생성한다. 그리고, 참조 화소에 접하는 예측 화소들은 상기 평균값과 하나 또는 두개의 접하는 참조화소들을 이용하여 생성된다.
수직 모드에서는, 좌측 참조화소에 접하지 않는 예측 화소들은 수직 참조 화소의 값을 복사하여 생성된다. 그리고, 좌측 참조화소에 접하는 예측 화소들은 수직 참조 화소 및 좌측 인접 참조화소와 코너 참조 화소의 변화량을 이용하여 생성된다.
수평 모드에서는 수직 모드와 동일한 방법으로 예측 화소들이 생성된다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.