이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치(100)에 대한 개략적인 블록구성도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 영상 부호화 장치(100)는, 입력된 원 영상에서 부호화하고자 하는 현재 블록을 복수 개의 서브블록으로 분할하는 블록 분할부(110); 및 서브블록마다 이미 부호화되고 복호화된 서브블록별 인접 픽셀 정보를 참조하여 인트라 예측 부호화를 수행하여 현재 블록에 대한 비트스트림을 생성하는 인트라 예측 부호화부(120) 등을 포함한다.
전술한 블록 분할부(110)는 현재 블록을 주파수 변환 단위로 나누어 복수 개의 서브블록으로 분할할 수 있다.
도 1을 참조하면, 전술한 인트라 예측 부호화부(120)는, 래스터(Raster) 스캔의 순서 또는 지그재그(Zigzag) 순서에 따라 복수 개의 서브블록 중 하나의 서브블록을 선택하고, 현재 블록의 인트라 예측 모드와 동일한 인트라 예측 모드에 근거해 해당되는 서브블록별 인접 픽셀 정보를 참조하여, 선택된 하나의 서브블록에 대한 인트라 예측을 수행함으로써 예측 서브블록을 생성하는 인트라 예측부(121); 선택된 하나의 서브블록과 해당 예측 서브블록과의 차이를 계산하여 잔차(Residual) 서브블록을 생성하는 감산부(122); 생성된 잔차 서브블록을 DCT(Discrete Cosine Transform) 변환하는 변환부(123); 변환된 잔차 서브블록을 양자화하는 양자화부(124); 및 양자화된 잔차 서브블록을 부호화하는 부호화부(125) 등을 포함한다. 여기서, 분할된 서브블록은 변환부(123)에서의 변환 단위 블록이며, 주파수 변환 단위 블록일 수 있다.
복수 개의 서브블록이 인트라 예측 부호화되는 순서는 래스터 스캔의 순서 또는 지그재그 순서일 수 있는데, 래스터 스캔의 순서에 따라 복수 개의 서브블록 중 하나의 서브블록을 선택하여 인트라 예측 부호화를 수행하는 것이 지그재그 순서보다는 더욱 효율적일 수 있다. 본 명세서에서는 복수 개의 서브블록이 인트라 예측 부호화되는 순서로써 래스터 스캔의 순서 및 지그재그 순서를 포함한 2 가지 경우를 실시예로 기술하였으나, 이외에도 영상의 특성에 따라 그 순서를 변경하는 것도 가능하다.
전술한 변환부(123)는 DCT(Discrete Cosine Transform) 변환을 수행할 수도 있다. 전술한 부호화부(125)는 심볼이 나올 확률에 따라 심볼을 나타내는 코드의 길이를 달리하는 엔트로피 부호화(Entropy Encoding)를 수행할 수도 있다.
전술한 인트라 예측 부호화부(120)는, 양자화된 잔차 서브블록을 역 양자화하는 역 양자화부(126); 역 양자화된 잔차 서브블록을 역 변환하는 역 변환부(127); 역변환된 잔차 서브블록에 대한 인트라 보상을 수행하여 참조블록을 생성하는 인트라 보상부(128); 및 생성된 참조블록을 저장하는 참조블록 저장부(129) 등을 추가로 포함할 수도 있다.
위에서 언급한 참조블록 저장부(129)에 저장된 참조블록은, 래스터 스캔의 순서 또는 지그재그 순서에 따라, 복수 개의 서브블록 중 상기 선택된 하나의 서브블록 다음에 선택될 서브블록에 대한 인트라 예측 수행시 참조 될 서브블록별 인접 픽셀 정보를 포함한다.
위에서 언급한 현재 블록의 인트라 예측 모드는, 일 예로서, 16×16 인트라 예측 모드에서의 수직(Vertical) 모드, 수평(Horizontal) 모드 및 DC(Direct Current) 모드 중 하나일 수 있다.
각 서브블록에 대하여 인트라 예측을 수행할 때의 인트라 예측 모드는, 현재 블록의 인트라 예측 모드와 동일한 인트라 예측 모드이다. 예를 들어, 현재 블록은 16×16 블록이고, 이를 분할한 서브블록은 4×4 블록이라고 가정하면, 현재 블록에 대한 16×16 인트라 예측 모드가 수직 모드이면, 각 서브블록에 대한 4×4 인트라 예측 모드도 수직 모드이다. 현재 블록에 대한 16×16 인트라 예측 모드가 수평 모드이면 각 서브블록에 대한 4×4 인트라 예측 모드도 수평 모드이고, 현재 블록에 대한 16×16 인트라 예측 모드가 DC 모드이면 각 서브블록에 대한 4×4 인트라 예측 모드도 DC 모드이다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 방법에 대한 흐름도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 영상 부호화 장치(100)가 수행하는 영상 부호화 방법은, 입력된 원 영상에서 부호화하고자 하는 현재 블록을 복수 개의 서브블록으로 분할하는 블록 분할 단계(S200); 및 서브블록마다 이미 부호화되고 복호화된 서브블록별 인접 픽셀 정보를 참조하여 인트라 예측 부호화를 수행하여 상기 현재 블록에 대한 비트스트림을 생성하는 인트라 예측 부호화 단계(S202); 등을 포함한다.
전술한 인트라 예측 부호화 단계(S202)는, 래스터 스캔의 순서 또는 지그재그 순서에 따라 복수 개의 서브블록 중 하나의 서브블록을 선택하고, 현재 블록의 인트라 예측 모드와 동일한 인트라 예측 모드에 근거해 해당되는 서브블록별 인접 픽셀 정보를 참조하여, 선택된 하나의 서브블록에 대한 인트라 예측을 수행함으로써 예측 서브블록을 생성하는 단계(S2020); 선택된 하나의 서브블록과 해당 예측 서브블록과의 차이를 계산하여 잔차 서브블록을 생성하는 단계(S2022); 생성된 잔차 서브블록을 변환하는 단계(S2024); 변환된 잔차 서브블록을 양자화하는 단계(S2026); 및 양자화된 잔차 서브블록을 부호화하는 단계(S2028) 등을 포함할 수 있다.
전술한 인트라 예측 부호화 단계(S202)는, 전술한 양자화 단계(S2026) 이후, 양자화된 잔차 서브블록을 역 양자화하는 단계; 역 양자화된 잔차 서브블록을 역 변환하는 단계; 역변환된 잔차 서브블록에 대한 인트라 보상을 수행하여 참조블록을 생성하는 단계; 및 생성된 참조블록을 저장하는 단계 등을 추가로 포함할 수 있는데, 이렇게 추가로 포함된 단계들은 인트라 예측 단계(S2020), 잔차 서브블록 생성 단계(S2022), 변환 단계(S2024), 양자화 단계(S2026) 및 부호화 단계(S2028)와 병렬적으로 수행된다. 즉, 참조블록을 생성하여 저장하기 위해 추가된 단계들은, 서브블록에 대한 인트라 예측 부호화 과정과 동시에 수행될 수 있다는 것이다.
전술한 본 발명의 일 실시예에 따른 영상 부호화 방법을 적용하기 위해서는, 원 영상을 소정의 크기의 "매크로블록(MB: Macro-Block)"으로 분할한다. 본 발명에서는 분할된 매크로블록을 "현재 블록"이라 명명한다.
또한, 본 발명의 일 실시예에 따른 영상 부호화 방법에서는, 16×16 매크로블록인 현재 블록을 복수 개의 "서브블록(SB: Sub-Block)"으로 분할하고, 이러한 서브블록은 인트라 예측 부호화의 단위가 된다. 또한, 각 서브블록은 복수 개의 픽셀을 포함하고 있으며, 각 픽셀에는 원 영상에서 해당하는 부분에 대한 정보를 포함한다.
전술한 현재 블록, 서브블록 및 픽셀 등을 도 3에서의 예시적으로 도시된 16×16 블록을 참조하여 다시 설명한다.
도 3은 본 발명의 일 실시예에 따른 영상 부호화 방법을 적용하기 위한 현재 블록과 이로부터 분할된 복수 개의 서브블록을 예시적으로 나타낸 도면이다.
도 3에서는, 본 발명의 일 실시예에 다른 영상 부호화에 적용되는 현재 블록을 16×16 블록 크기의 매크로블록으로 예시적으로 도시하며, 16×16 매크로블록인 현재 블록은 도 3에서 굵은 실선으로 된 박스로 표시한다.
또한, 도 3에서는, 예시적으로, 굵은 실선으로 표시된 16×16 매크로블록인 현재 블록이 4×4 블록 크기의 16개의 서브블록으로 분할된다. 16개의 분할된 서브블록은 SB 1, SB 2, SB 3, ..., SB 16으로 정하고, 점선으로 된 박스로 표시한다.
도 3을 참조하면, 각 서브블록은 16 개의 픽셀을 포함하고 각 픽셀에는 영상에 대한 정보를 포함한다.
한편, 도 3을 참조하면, V(0) 내지 V(15)와 H(0) 내지 H(15)는 현재 블록(매크로블록)에 대하여 인접한 매크로블록에 대한 픽셀 정보로서, 이러한 인접한 매크로블록에 대한 픽셀 정보는 이미 부호화되고 복호화된 매크로블록의 픽셀 정보들이다.
도 3에 예시적으로 도시된 16개의 서브블록(SB 1, SB 2, SB 3, ..., SB 16)을 포함하는 현재블록을 이용하여, 도 1 및 도 2를 참조하여 전술한 본 발명의 일 실시예에 따른 영상 부호화를 이하 도면을 참조하여 예시적으로 설명한다.
본 발명의 일 실시예에 따른 영상 부호화에서는 도 3에서의 16×16 크기의 현재 블록을 16개의 서브블록(SB 1, SB 2, SB 3, ..., SB 16)으로 분할한 이후, 각 서브블록을 소정의 순서에 따라 인트라 예측 부호화를 수행한다. 여기서, 소정의 순서는 래스터 스캔의 순서 또는 지그재그 순서일 수 있다.
즉, 래스터 스캔의 순서 또는 지그재그 순서로 16개의 서브블록을 스캔하여, 스캔된 하나의 서브블록에 대하여 인트라 예측 부호화를 수행하고, 래스터 스캔의 순서 또는 지그재그 순서로 그 다음의 서브블록을 스캔하여 스캔된 서브블록에 대한 인트라 예측 부호화를 수행하며, 이어서 나머지 서브블록도 래스터 스캔의 순서 또는 지그재그 순서로 스캔하여 인트라 예측 부호화하를 수행한다. 이렇게 분할된 복수 개의 서브블록에 대한 인트라 예측 부호화를 모두 수행하고 나면, 각 서브블록별로 인트라 예측 부호화된 결과를 이용하여 현재 블록에 대한 비트스트림을 생성한다.
위에서 언급한 인트라 예측 부호화(Intra Prediction Encoding)는 한 개의 서브블록마다 수행되는 한 차례의 과정으로서, 인트라 예측(Intra Prediction), 변환(Transform), 양자화(Quantization), 부호화(Encoding) 등의 일련의 과정을 모두 포함하는 과정일 수 있다.
서브블록별로 수행되는 인트라 예측 부호화 과정에 포함된 인트라 예측 과정에서는 하나의 인트라 예측 모드를 선택하여 인트라 예측이 수행되는데, 본 발명에서는 각 서브블록에 대한 인트라 예측 모드는 현재 블록의 인트라 예측 모드와 동일한 인트라 예측 모드로 선택된다.
예를 들어, 현재 블록의 인트라 예측 모드가 수평 모드이면, 분할된 서브블록의 인트라 예측 모드도 수평 모드로 한다. 현재 블록의 인트라 예측 모드가 수직 모드이면, 분할된 서브블록의 인트라 예측 모드도 수직 모드로 한다. 또한, 현재 블록의 인트라 예측 모드가 DC 모드이면, 분할된 서브블록의 인트라 예측 모드도 DC 모드로 한다.
현재 블록의 인트라 예측 모드가 수평 모드인 경우에서의 서브블록별 인트라 예측 부호화를 통한 영상 부호화는 하기 도 4와 도 7을 참조하여 상세히 설명하며, 현재 블록의 인트라 예측 모드가 수직 모드인 경우에서의 서브블록별 인트라 예측 부호화를 통한 영상 부호화는 하기 도 5와 도 8을 참조하여 상세히 설명하며, 현재 블록의 인트라 예측 모드가 DC 모드인 경우에서의 서브블록별 인트라 예측 부호화를 통한 영상 부호화는 하기 도 6과 도 9를 참조하여 상세히 설명한다. 단, 도 4, 도 5 및 도 6은 래스터 스캔의 순서로 인트라 예측 부호화를 수행하는 것을 예시한 것이고, 도 7, 도 8 및 도 9는 지그재그 순서로 인트라 예측 부호화를 수행하는 것을 예시한 것이다.
도 4는 현재 블록의 인트라 예측 모드가 수평 모드인 경우, 복수 개의 서브블록을 래스터 스캔의 순서로 인트라 예측 부호화하는 것을 예시적으로 나타낸 도면이다.
도 4를 참조하면, 현재 블록을 부호화하기 위해, 분할된 16개의 서브블록(SB 1, SB 2, SB 3, ..., SB 16)을 래스터 스캔의 순서로 차례차례 인트라 예측 부호화한다. 즉, 인트라 예측 부호화는 SB 1, SB 2, SB 3, SB 4, SB 5, SB 6, SB 7, SB 8, SB 9, SB 10, SB 11, SB 12, SB 13, SB 14, SB 15, SB 16의 서브블록 순서로 이루어진다.
도 4에서는, 현재 블록의 인트라 예측 모드가 수평 모드인 것을 가정했기 때문에, 서브블록의 인트라 예측 모드도 수평 모드가 된다. 따라서, 영상 부호화 장치(100)는 인접 픽셀 정보를 참조하여 각 서브블록을 수평 모드로 인트라 예측을 수행한다.
도 4를 참조하면, 영상 부호화 장치(100)는, 현재 블록에 대하여 인접한 매크로블록에 대한 픽셀 정보 중 첫 번째 서브블록(SB 1)에 인접한 "H(0), H(1), H(2) 및 H(3)"를 인접 픽셀 정보로서 참조하여, 첫 번째 서브블록(SB 1)에 대한 인트라 예측 부호화를 수행하고, 동시에 참조블록을 생성하여 저장해둔다. 이렇게 저장된 참조블록은 다른 서브블록에 대한 인트라 예측 부호화 과정에서 참조되는 인접 픽셀 정보를 포함한다.
도 4에서는, 첫 번째 서브블록(SB 1)에 대한 인트라 예측 부호화 과정 시, 이미 부호화되고 복호화되어 저장된 참조블록에 포함된 픽셀 정보를 "1-1, 1-2, 1-3, 1-4, 1-5, 1-6, 1-7, 1-8, 1-9, 1-10, 1-11, 1-12, 1-13, 1-14, 1-15, 1-16"으로 표시한다. 여기서, 픽셀 정보로 표시된 "첫 번째 숫자-두 번째 숫자"에서, 첫 번째 숫자는 해당 서브블록을 식별하는 것이고, 두 번째 숫자는 해당 서브블록 내에서 해당 픽셀을 식별하는 것이다.
SB 1에 이어서, 래스터 스캔의 순서에 따라, 영상 부호화 장치(100)는 SB 2에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는, SB 1에 대한 인트라 예측 부호화 과정에서 저장된 참조블록에 포함된 픽셀 정보 중에서 "1-4, 1-8, 1-12, 1-16"을 포함한다. 참조블록에 포함된 픽셀 정보 중에서 "1-4, 1-8, 1-12, 1-16"를 인접 픽셀 정보로서 참조하는 이유는, 수평 모드에 따라 SB 2에 대한 인트라 예측을 수행하기 때문이다.
SB 2에 이어서, 래스터 스캔의 순서에 따라, 영상 부호화 장치(100)는 SB 3에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는, SB 3에 인접한 "2-4, 2-8, 2-12, 2-16"을 포함한다.
SB 3에 이어서, 래스터 스캔의 순서에 따라, 영상 부호화 장치(100)는 SB 4에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는, SB 4에 인접한 "3-4, 3-8, 3-12, 3-16"을 포함한다.
SB 4에 이어서, 래스터 스캔의 순서에 따라, 영상 부호화 장치(100)는 SB 5에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는, SB 5에 인접한 "H(4), H(5), H(6), H(7)"을 포함한다.
전술한 SB 1, SB 2, SB 3, SB 4 및 SB 5에 대한 인트라 예측 부호화 과정처럼, 영상 부호화 장치(100)는 인접한 서브블록에서의 이미 부호화되고 복호화된 인접 픽셀 정보(각 서브블록의 픽셀 정보에 대한 표시에서, 두 번째 숫자가 "4, 8, 12, 16"인 픽셀 정보) 또는 인접한 매크로블록에서의 이미 부호화되고 복호화된 인접 픽셀 정보를 참조하여 나머지 서브블록들을 래스터 스캔의 순서에 따라 인트라 예측 부호화한다.
도 5는 현재 블록의 인트라 예측 모드가 수직 모드인 경우, 복수 개의 서브블록을 래스터 스캔의 순서로 인트라 예측 부호화하는 것을 예시적으로 나타낸 도면이다.
도 5를 참조하면, 현재 블록을 부호화하기 위해, 분할된 16개의 서브블록(SB 1, SB 2, SB 3, ..., SB 16)을 래스터 스캔의 순서로 스캔하면서 차례차례 인트라 예측 부호화한다. 즉, 인트라 예측 부호화는 SB 1, SB 2, SB 5, SB 9, SB 6, SB 3, SB 4, SB 7, SB 10, SB 13, SB 14, SB 11, SB 8, SB 12, SB 15, SB 16의 서브블록 순서로 이루어진다.
도 5에서는, 현재 블록의 인트라 예측 모드가 수직 모드인 것을 가정했기 때문에, 서브블록의 인트라 예측 모드도 수직 모드가 된다. 따라서, 영상 부호화 장치(100)는 인접 픽셀 정보를 참조하여 각 서브블록을 수직 모드로 인트라 예측을 수행한다.
도 5를 참조하면, 영상 부호화 장치(100)는, 현재 블록에 대하여 인접한 매크로블록에 대한 픽셀 정보 중 첫 번째 서브블록(SB 1)에 인접한 "V(0), V(1), V(2) 및 V(3)"를 인접 픽셀 정보로서 참조하여, 첫 번째 서브블록(SB 1)에 대한 인트라 예측 부호화를 수행하고, 동시에 참조블록을 생성하여 저장해둔다. 이렇게 저장된 참조블록은 다른 서브블록에 대한 인트라 예측 부호화 과정에서 참조되는 인접 픽셀 정보를 포함한다.
도 5에서는, 첫 번째 서브블록(SB 1)에 대한 인트라 예측 부호화 과정 시, 이미 부호화되고 복호화되어 저장된 참조블록에 포함된 픽셀 정보를 "1-1, 1-2, 1-3, 1-4, 1-5, 1-6, 1-7, 1-8, 1-9, 1-10, 1-11, 1-12, 1-13, 1-14, 1-15, 1-16"으로 표시한다. 여기서, 픽셀 정보로 표시된 "첫 번째 숫자-두 번째 숫자"에서, 첫 번째 숫자는 해당 서브블록을 식별하는 것이고, 두 번째 숫자는 해당 서브블록 내에서 해당 픽셀을 식별하는 것이다.
SB 1에 이어서, 래스터 스캔의 순서에 따라, 영상 부호화 장치(100)는 SB 2에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는, 현재 블록에 대하여 인접한 매크로블록에 대한 픽셀 정보 중 SB 2에 인접한 "V(4), V(5), V(6) 및 V(7)"을 포함한다.
SB 2에 이어서, 래스터 스캔의 순서에 따라, 영상 부호화 장치(100)는 SB 3에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는, 현재 블록에 대하여 인접한 매크로블록에 대한 픽셀 정보 중 SB 3에 인접한 "V(8), V(9), V(10) 및 V(11)"을 포함한다.
SB 3에 이어서, 래스터 스캔의 순서에 따라, 영상 부호화 장치(100)는 SB 4에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는, 현재 블록에 대하여 인접한 매크로블록에 대한 픽셀 정보 중 SB 4에 인접한 "V(12), V(13), V(14) 및 V(15)"을 포함한다.
SB 4에 이어서, 래스터 스캔의 순서에 따라, 영상 부호화 장치(100)는 SB 5에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는, SB 5에 대한 인접한 서브블록인 SB 1에 대한 인트라 예측 부호화 과정에서 저장된 참조블록에 포함된 픽셀 정보 중에서 "1-13, 1-14, 1-15, 1-16"을 포함한다.
전술한 SB 1, SB 2, SB 3, SB 4 및 SB 5에 대한 인트라 예측 부호화 과정처럼, 영상 부호화 장치(100)는 인접한 서브블록에서의 이미 부호화되고 복호화된 인접 픽셀 정보(각 서브블록의 픽셀 정보에 대한 표시에서, 두 번째 숫자가 13, 14, 15, 16인 픽셀 정보) 또는 인접한 매크로블록에서의 이미 부호화되고 복호화된 인접 픽셀 정보를 참조하여 나머지 서브블록들을 래스터 스캔의 순서에 따라 인트라 예측 부호화한다.
도 6은 현재 블록의 인트라 예측 모드가 DC 모드인 경우, 복수 개의 서브블록을 래스터 스캔의 순서로 인트라 예측 부호화하는 것을 예시적으로 나타낸 도면이다.
도 6을 참조하면, 현재 블록을 부호화하기 위해, 분할된 16개의 서브블록(SB 1, SB 2, SB 3, ..., SB 16)을 래스터 스캔의 순서로 스캔하면서 차례차례 인트라 예측 부호화한다. 즉, 인트라 예측 부호화는 SB 1, SB 2, SB 5, SB 9, SB 6, SB 3, SB 4, SB 7, SB 10, SB 13, SB 14, SB 11, SB 8, SB 12, SB 15, SB 16의 서브블록 순서로 이루어진다.
도 6에서는, 현재 블록의 인트라 예측 모드가 DC 모드인 것을 가정했기 때문에, 서브블록의 인트라 예측 모드도 DC 모드가 된다. 따라서, 영상 부호화 장치(100)는 인접 픽셀 정보를 참조하여 각 서브블록을 DC 모드로 인트라 예측을 수행한다.
도 6을 참조하면, 영상 부호화 장치(100)는, 현재 블록에 대하여 인접한 매크로블록에 대한 픽셀 정보 중 첫 번째 서브블록(SB 1)에 인접한 "H(0), H(1), H(2), H(3), V(0), V(1), V(2), V(3) 및 M"을 인접 픽셀 정보로서 참조하여, 첫 번째 서브블록(SB 1)에 대한 인트라 예측 부호화를 수행하고, 동시에 참조블록을 생성하여 저장해둔다. 이렇게 저장된 참조블록은 다른 서브블록에 대한 인트라 예측 부호화 과정에서 참조되는 인접 픽셀 정보를 포함한다.
도 6에서는, 첫 번째 서브블록(SB 1)에 대한 인트라 예측 부호화 과정 시, 이미 부호화되고 복호화되어 저장된 참조블록에 포함된 픽셀 정보를 "1-1, 1-2, 1-3, 1-4, 1-5, 1-6, 1-7, 1-8, 1-9, 1-10, 1-11, 1-12, 1-13, 1-14, 1-15, 1-16"으로 표시한다. 여기서, 픽셀 정보로 표시된 "첫 번째 숫자-두 번째 숫자"에서, 첫 번째 숫자는 해당 서브블록을 식별하는 것이고, 두 번째 숫자는 해당 서브블록 내에서 해당 픽셀을 식별하는 것이다.
SB 1에 이어서, 영상 부호화 장치(100)는 SB 2에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는 "1-4, 1-8, 1-12, 1-16, V(4), V(5), V(6), V(7) 및 V(3)"을 포함한다. 여기서, 인접 픽셀 정보들 중에서 "1-4, 1-8, 1-12, 1-16"는 SB 2에 인접한 서브블록인 SB 1에서의 픽셀 정보들이고, 인접 픽셀 정보들 중에서 "V(4), V(5), V(6), V(7) 및 V(3)"은 현재 블록에 대하여 인접한 매크로블록에 대한 픽셀 정보 중 SB 2에 인접한 픽셀 정보들이다. 이와 같이, SB 2에 대한 인트라 예측 부호화에서 "1-4, 1-8, 1-12, 1-16, V(4), V(5), V(6), V(7) 및 V(3)"를 인접 픽셀 정보로서 참조하는 이유는, DC 모드에 따라 SB 2에 대한 인트라 예측을 수행하기 때문이다.
SB 2에 이어서, 래스터 스캔의 순서에 따라, 영상 부호화 장치(100)는 SB 3에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는 "2-4, 2-8, 2-12, 2-16, V(8), V(9), V(10), V(11) 및 V(7)"을 포함한다.
SB 3에 이어서, 래스터 스캔의 순서에 따라, 영상 부호화 장치(100)는 SB 4에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는 "3-4, 3-8, 3-12, 3-16, V(12), V(13), V(14), V(15) 및 V(11)"을 포함한다.
SB 4에 이어서, 래스터 스캔의 순서에 따라, 영상 부호화 장치(100)는 SB 5에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는 "H(4), H(5), H(6), H(7), 1-13, 1-14, 1-15, 1-16 및 H(3)"을 포함한다.
전술한 SB 1, SB 2, SB 3, SB 4 및 SB 5에 대한 인트라 예측 부호화 과정처럼, 영상 부호화 장치(100)는 인접한 서브블록들에서의 이미 부호화되고 복호화된 인접 픽셀 정보(각 서브블록의 오른쪽과 아래 모퉁이에 있는 픽셀에 대한 픽셀 정보) 또는 인접한 매크로블록에서의 이미 부호화되고 복호화된 인접 픽셀 정보를 참조하여 나머지 서브블록들을 정해진 래스터 스캔의 순서에 따라 인트라 예측 부호화한다.
도 7는 현재 블록의 인트라 예측 모드가 수평 모드인 경우, 복수 개의 서브블록을 지그재그 순서로 인트라 예측 부호화하는 것을 예시적으로 나타낸 도면이다.
도 7를 참조하면, 현재 블록을 부호화하기 위해, 분할된 16개의 서브블록(SB 1, SB 2, SB 3, ..., SB 16)을 지그재그 순서로 스캔하면서 차례차례 인트라 예측 부호화한다. 즉, 인트라 예측 부호화는 SB 1, SB 2, SB 5, SB 9, SB 6, SB 3, SB 4, SB 7, SB 10, SB 13, SB 14, SB 11, SB 8, SB 12, SB 15, SB 16의 서브블록 순서로 이루어진다.
도 7에서는, 현재 블록의 인트라 예측 모드가 수평 모드인 것을 가정했기 때문에, 서브블록의 인트라 예측 모드도 수평 모드가 된다. 따라서, 영상 부호화 장치(100)는 인접 픽셀 정보를 참조하여 각 서브블록을 수평 모드로 인트라 예측을 수행한다.
도 7를 참조하면, 영상 부호화 장치(100)는, 현재 블록에 대하여 인접한 매크로블록에 대한 픽셀 정보 중 첫 번째 서브블록(SB 1)에 인접한 "H(0), H(1), H(2) 및 H(3)"를 인접 픽셀 정보로서 참조하여, 첫 번째 서브블록(SB 1)에 대한 인트라 예측 부호화를 수행하고, 동시에 참조블록을 생성하여 저장해둔다. 이렇게 저장된 참조블록은 다른 서브블록에 대한 인트라 예측 부호화 과정에서 참조되는 인접 픽셀 정보를 포함한다.
도 7에서는, 첫 번째 서브블록(SB 1)에 대한 인트라 예측 부호화 과정 시, 이미 부호화되고 복호화되어 저장된 참조블록에 포함된 픽셀 정보를 "1-1, 1-2, 1-3, 1-4, 1-5, 1-6, 1-7, 1-8, 1-9, 1-10, 1-11, 1-12, 1-13, 1-14, 1-15, 1-16"으로 표시한다. 여기서, 픽셀 정보로 표시된 "첫 번째 숫자-두 번째 숫자"에서, 첫 번째 숫자는 해당 서브블록을 식별하는 것이고, 두 번째 숫자는 해당 서브블록 내에서 해당 픽셀을 식별하는 것이다.
SB 1에 이어서, 지그재그 순서에 따라, 영상 부호화 장치(100)는 SB 2에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는, SB 1에 대한 인트라 예측 부호화 과정에서 저장된 참조블록에 포함된 픽셀 정보 중에서 "1-4, 1-8, 1-12, 1-16"을 포함한다. 참조블록에 포함된 픽셀 정보 중에서 "1-4, 1-8, 1-12, 1-16"를 인접 픽셀 정보로서 참조하는 이유는, 수평 모드에 따라 SB 2에 대한 인트라 예측을 수행하기 때문이다.
SB 2에 이어서, 지그재그 순서에 따라, 영상 부호화 장치(100)는 SB 5에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는, 현재 블록에 대하여 인접한 매크로블록에 대한 픽셀 정보 중 SB 5에 인접한 "H(4), H(5), H(6) 및 H(7)"을 포함한다.
SB 5에 이어서, 지그재그 순서에 따라, 영상 부호화 장치(100)는 SB 9에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는, 현재 블록에 대하여 인접한 매크로블록에 대한 픽셀 정보 중 SB 9에 인접한 "H(8), H(9), H(10) 및 H(11)"을 포함한다.
SB 9에 이어서, 지그재그 순서에 따라, 영상 부호화 장치(100)는 SB 6에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는, SB 5에 대한 인트라 예측 부호화 과정에서 저장된 참조블록에 포함된 픽셀 정보 중에서 "5-4, 5-8, 5-12, 5-16"을 포함한다.
전술한 SB 1, SB 2, SB 5, SB 9 및 SB 6에 대한 인트라 예측 부호화 과정처럼, 영상 부호화 장치(100)는 인접한 서브블록에서의 이미 부호화되고 복호화된 인접 픽셀 정보(각 서브블록의 픽셀 정보에 대한 표시에서, 두 번째 숫자가 "4, 8, 12, 16"인 픽셀 정보) 또는 인접한 매크로블록에서의 이미 부호화되고 복호화된 인접 픽셀 정보를 참조하여 나머지 서브블록들을 정해진 지그재그 순서에 따라 인트라 예측 부호화한다.
도 8은 현재 블록의 인트라 예측 모드가 수직 모드인 경우, 복수 개의 서브블록을 지그재그 순서로 인트라 예측 부호화하는 것을 예시적으로 나타낸 도면이다.
도 8을 참조하면, 현재 블록을 부호화하기 위해, 분할된 16개의 서브블록(SB 1, SB 2, SB 3, ..., SB 16)을 지그재그 순서로 스캔하면서 차례차례 인트라 예측 부호화한다. 즉, 인트라 예측 부호화는 SB 1, SB 2, SB 5, SB 9, SB 6, SB 3, SB 4, SB 7, SB 10, SB 13, SB 14, SB 11, SB 8, SB 12, SB 15, SB 16의 서브블록 순서로 이루어진다.
도 8에서는, 현재 블록의 인트라 예측 모드가 수직 모드인 것을 가정했기 때문에, 서브블록의 인트라 예측 모드도 수직 모드가 된다. 따라서, 영상 부호화 장치(100)는 인접 픽셀 정보를 참조하여 각 서브블록을 수직 모드로 인트라 예측을 수행한다.
도 8을 참조하면, 영상 부호화 장치(100)는, 현재 블록에 대하여 인접한 매크로블록에 대한 픽셀 정보 중 첫 번째 서브블록(SB 1)에 인접한 "V(0), V(1), V(2) 및 V(3)"를 인접 픽셀 정보로서 참조하여, 첫 번째 서브블록(SB 1)에 대한 인트라 예측 부호화를 수행하고, 동시에 참조블록을 생성하여 저장해둔다. 이렇게 저장된 참조블록은 다른 서브블록에 대한 인트라 예측 부호화 과정에서 참조되는 인접 픽셀 정보를 포함한다.
도 8에서는, 첫 번째 서브블록(SB 1)에 대한 인트라 예측 부호화 과정 시, 이미 부호화되고 복호화되어 저장된 참조블록에 포함된 픽셀 정보를 "1-1, 1-2, 1-3, 1-4, 1-5, 1-6, 1-7, 1-8, 1-9, 1-10, 1-11, 1-12, 1-13, 1-14, 1-15, 1-16"으로 표시한다. 여기서, 픽셀 정보로 표시된 "첫 번째 숫자-두 번째 숫자"에서, 첫 번째 숫자는 해당 서브블록을 식별하는 것이고, 두 번째 숫자는 해당 서브블록 내에서 해당 픽셀을 식별하는 것이다.
SB 1에 이어서, 지그재그 순서에 따라, 영상 부호화 장치(100)는 SB 2에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는, 현재 블록에 대하여 인접한 매크로블록에 대한 픽셀 정보 중 SB 2에 인접한 "V(4), V(5), V(6) 및 V(7)"을 포함한다.
SB 2에 이어서, 지그재그 순서에 따라, 영상 부호화 장치(100)는 SB 5에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는, SB 5에 대한 인접한 서브블록인 SB 1에 대한 인트라 예측 부호화 과정에서 저장된 참조블록에 포함된 픽셀 정보 중에서 "1-13, 1-14, 1-15, 1-16"을 포함한다. SB 1에 대하여 저장된 참조블록에 포함된 픽셀 정보 중에서 "1-13, 1-14, 1-15, 1-16"를 인접 픽셀 정보로서 참조하는 이유는, 수직 모드에 따라 SB 5에 대한 인트라 예측을 수행하기 때문이다.
SB 5에 이어서, 지그재그 순서에 따라, 영상 부호화 장치(100)는 SB 9에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는, SB 9에 대한 인접한 서브블록인 SB 5에 대한 인트라 예측 부호화 과정에서 저장된 참조블록에 포함된 픽셀 정보 중에서 "5-13, 5-14, 5-15, 5-16"을 포함한다.
SB 9에 이어서, 지그재그 순서에 따라, 영상 부호화 장치(100)는 SB 6에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는, SB 6에 대한 인접한 서브블록인 SB 2에 대한 인트라 예측 부호화 과정에서 저장된 참조블록에 포함된 픽셀 정보 중에서 "2-13, 2-14, 2-15, 2-16"을 포함한다.
전술한 SB 1, SB 2, SB 5, SB 9 및 SB 6에 대한 인트라 예측 부호화 과정처럼, 영상 부호화 장치(100)는 인접한 서브블록에서의 이미 부호화되고 복호화된 인접 픽셀 정보(각 서브블록의 픽셀 정보에 대한 표시에서, 두 번째 숫자가 13, 14, 15, 16인 픽셀 정보) 또는 인접한 매크로블록에서의 이미 부호화되고 복호화된 인접 픽셀 정보를 참조하여 나머지 서브블록들을 정해진 지그재그 순서에 따라 인트라 예측 부호화한다.
도 9는 현재 블록의 인트라 예측 모드가 DC 모드인 경우, 복수 개의 서브블록을 지그재그 순서로 인트라 예측 부호화하는 것을 예시적으로 나타낸 도면이다.
도 9를 참조하면, 현재 블록을 부호화하기 위해, 분할된 16개의 서브블록(SB 1, SB 2, SB 3, ..., SB 16)을 지그재그 순서로 스캔하면서 차례차례 인트라 예측 부호화한다. 즉, 인트라 예측 부호화는 SB 1, SB 2, SB 5, SB 9, SB 6, SB 3, SB 4, SB 7, SB 10, SB 13, SB 14, SB 11, SB 8, SB 12, SB 15, SB 16의 서브블록 순서로 이루어진다.
도 9에서는, 현재 블록의 인트라 예측 모드가 DC 모드인 것을 가정했기 때문에, 서브블록의 인트라 예측 모드도 DC 모드가 된다. 따라서, 영상 부호화 장치(100)는 인접 픽셀 정보를 참조하여 각 서브블록을 DC 모드로 인트라 예측을 수행한다.
도 9을 참조하면, 영상 부호화 장치(100)는, 현재 블록에 대하여 인접한 매크로블록에 대한 픽셀 정보 중 첫 번째 서브블록(SB 1)에 인접한 "H(0), H(1), H(2), H(3), V(0), V(1), V(2), V(3) 및 M"을 인접 픽셀 정보로서 참조하여, 첫 번째 서브블록(SB 1)에 대한 인트라 예측 부호화를 수행하고, 동시에 참조블록을 생성하여 저장해둔다. 이렇게 저장된 참조블록은 다른 서브블록에 대한 인트라 예측 부호화 과정에서 참조되는 인접 픽셀 정보를 포함한다.
도 9에서는, 첫 번째 서브블록(SB 1)에 대한 인트라 예측 부호화 과정 시, 이미 부호화되고 복호화되어 저장된 참조블록에 포함된 픽셀 정보를 "1-1, 1-2, 1-3, 1-4, 1-5, 1-6, 1-7, 1-8, 1-9, 1-10, 1-11, 1-12, 1-13, 1-14, 1-15, 1-16"으로 표시한다. 여기서, 픽셀 정보로 표시된 "첫 번째 숫자-두 번째 숫자"에서, 첫 번째 숫자는 해당 서브블록을 식별하는 것이고, 두 번째 숫자는 해당 서브블록 내에서 해당 픽셀을 식별하는 것이다.
SB 1에 이어서, 지그재그 순서에 따라, 영상 부호화 장치(100)는 SB 2에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는 "1-4, 1-8, 1-12, 1-16, V(4), V(5), V(6), V(7) 및 V(3)"을 포함한다. 여기서, 인접 픽셀 정보들 중에서 "1-4, 1-8, 1-12, 1-16"는 SB 2에 인접한 서브블록인 SB 1에서의 픽셀 정보들이고, 인접 픽셀 정보들 중에서 "V(4), V(5), V(6), V(7) 및 V(3)"은 현재 블록에 대하여 인접한 매크로블록에 대한 픽셀 정보 중 SB 2에 인접한 픽셀 정보들이다. 이와 같이, SB 2에 대한 인트라 예측 부호화에서 "1-4, 1-8, 1-12, 1-16, V(4), V(5), V(6), V(7) 및 V(3)"를 인접 픽셀 정보로서 참조하는 이유는, DC 모드에 따라 SB 2에 대한 인트라 예측을 수행하기 때문이다.
SB 2에 이어서, 지그재그 순서에 따라, 영상 부호화 장치(100)는 SB 5에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는 "H(4), H(5), H(6), H(7), 1-13, 1-14, 1-15, 1-16 및 H(3)"을 포함한다. 여기서, 인접 픽셀 정보들 중에서 "H(4), H(5), H(6), H(7) 및 H(3)"은 현재 블록에 대하여 인접한 매크로블록에 대한 픽셀 정보 중 SB 5에 인접한 픽셀 정보들이고, 인접 픽셀 정보들 중에서 "1-13, 1-14, 1-15, 1-16"은 SB 5에 인접한 서브블록인 SB 1에서의 픽셀 정보들이다.
SB 5에 이어서, 지그재그 순서에 따라, 영상 부호화 장치(100)는 SB 9에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는 "H(8), H(9), H(10), H(11), 5-13, 5-14, 5-15, 5-16 및 H(7)"을 포함한다.
SB 9에 이어서, 지그재그 순서에 따라, 영상 부호화 장치(100)는 SB 6에 대한 인트라 예측 부호화를 수행하는 데, 이때 참조하는 인접 픽셀 정보는 "5-4, 5-8, 5-12, 5-16, 2-13, 2-14, 2-15, 2-16 및 1-16"을 포함한다. 여기서, 인접 픽셀 정보들 중에서 "5-4, 5-8, 5-12, 5-16"은 SB 6에 인접한 서브블록인 SB 5에서의 픽셀 정보들이고, 인접 픽셀 정보들 중에서 "2-13, 2-14, 2-15, 2-16"은 SB 6에 인접한 서브블록인 SB 2에서의 픽셀 정보들이고, 인접 픽셀 정보들 중에서 "1-16"은 SB 6에 인접한 서브블록인 SB 1에서의 픽셀 정보이다.
전술한 SB 1, SB 2, SB 5, SB 9 및 SB 6에 대한 인트라 예측 부호화 과정처럼, 영상 부호화 장치(100)는 인접한 서브블록들에서의 이미 부호화되고 복호화된 인접 픽셀 정보(각 서브블록의 오른쪽과 아래 모퉁이에 있는 픽셀에 대한 픽셀 정보) 또는 인접한 매크로블록에서의 이미 부호화되고 복호화된 인접 픽셀 정보를 참조하여 나머지 서브블록들을 정해진 지그재그 순서에 따라 인트라 예측 부호화한다.
도 4 내지 도 9에서는, 영상 부호화 장치(100)가, 현재 블록의 3가지의 인트라 예측 모드(수평 모드, 수직 모드, DC 모드)에 따라, 정해진 순서(래스터 스캔의 순서 또는 지그재그 순서)에 의해, 각 서브블록을 인트라 예측 부호화하는 것을 전체적으로 설명하였으며, 이하 도 10 내지 도 13에서는 한 개의 서브블록에 대한 인트라 예측 부호화 과정을 좀 더 상세하게 설명한다. 도 10 내지 도 12는 현재 블록의 인트라 예측 모드가 수평 모드, 수직 모드 및 DC 모드 각각의 경우에 대하여 임의의 서브블록 한 개에 대한 인트라 예측을 설명하기 위한 도면이고, 도 13은 인트라 예측이 수행된 임의의 서브블록에 대한 잔차 서브블록을 생성하는 것을 설명하기 위한 도면이다.
도 10은 하나의 서브블록을 수평 모드로 인트라 예측을 수행한 것을 예시적으로 나타낸 도면이다.
도 10의 (a)는 인트라 예측 전의 임의의 서브블록을 나타낸 것이고, 도 10의 (b)는 임의의 서브블록에 대한 인트라 예측을 통해 생성된 예측 서브블록을 나타낸 것이다. 임의의 서브블록은 4×4 블록 크기로 가정하고, 굵은 실선으로 표시하였으며, 16개의 픽셀을 포함한다.
도 10의 (a)를 참조하면, 인트라 예측 전의 임의의 서브블록에 포함된 각 픽셀은 원 화소에 대한 해당 픽셀 정보를 포함한다. 원 화소에 대한 16 개의 픽셀 정보는 4개의 행(i)과 4개의 열(j)을 구분하여 4×4 좌표 형태의 "M(i,j)"로 표시한다. 예를 들어, M(2,3)은 3번째 행(i=2)과 4번째 열(j=3)에 해당하는 화소의 픽셀에 대한 픽셀 정보이다.
또한, 수평 모드로 인트라 예측을 수행하는 것을 가정하였기 때문에, 임의의 서브블록에 대한 인트라 예측시 참조하는 인접 픽셀 정보는 해당 서브블록의 좌측에 인접한 서브블록(또는 매크로블록)에 포함된 픽셀 정보로서, "H(0), H(1), H(2) 및 H(3)"이 이러한 인접 픽셀 정보에 해당한다. 여기서, "H(0), H(1), H(2) 및 H(3)"은 임의의 서브블록을 인트라 예측할 때, 수평 방향으로 인접한 임의의 4개의 픽셀 정보를 의미한다.
도 10의 (a)에 예시된 임의의 서브블록을 수평 모드로 인트라 예측하여, 도 10의 (b)와 같은 예측 서브블록을 생성한다. 생성된 예측 서브블록에 포함된 16개의 픽셀에는 각기 예측 픽셀 정보를 포함한다. 이러한 예측 픽셀 정보는 4개의 행(i)과 4개의 열(j)을 구분하여 4×4 좌표 형태의 "P(i,j)"로 표시한다. 예를 들어, P(2,3)은 3번째 행(i=2)과 4번째 열(j=3)에 해당하는 화소에 대하여 예측된 예측 값(예측 픽셀 정보)이다.
임의의 서브블록을 수평 모드로 인트라 예측을 수행하여 생성된 예측 서브블록에 포함된 각 픽셀에 대한 예측 픽셀 정보인 P(i,j)는, 일 예로서, 아래와 같은 방법으로 구해질 수 있다. 아래에서의 H(i)는 이미 부호화되고 복호화된 인접 픽셀 정보들이다.
for
(i=0; i<4; i++)
for
(j=0; j<4; j++)
P(i,j) = H(i);
전술한 방법으로 예측 서브블록이 생성된 이후, 도 10의 (a)에 도시된 임의의 서브블록에서, 도 10의 (b)에서 도시된 예측 서브블록을 감산하는 연산 처리를 통해, 도 13에 도시된 잔차 서브블록을 생성한다. 생성된 잔차 서브블록에 포함된 각 픽셀은 M(i,j)와 P(i,j)를 감산하는 연산을 통해 얻어진 "R(i,j)"라는 잔차 픽셀 정보를 포함한다.
이렇게 생성된 잔차 서브블록은 변환, 양자화 및 엔트로피 부호화의 과정을 거침으로써, 하나의 서브블록에 대한 인트라 예측 부호화가 마무리된다. 또한, 양자화된 잔차 서브블록은 역 양자화, 역 변환, 인트라 보상의 과정을 거침으로써 참조블록이 생성되고, 생성된 참조블록은 나중 순서의 서브블록에 대한 인트라 예측 부호화에서 이용된다.
위에서 언급한 참조블록에 포함된 각 픽셀에 대한 참조 픽셀 정보는 아래와 같은 방법으로 얻을 수 있다. 단, 양자화된 잔차 서브블록을 역 양자화하여 역 변환한 잔차 서브블록에 포함된 픽셀 정보를 R'(i,j)라고 하며, 이러한 잔차 서브블록이 인트라 보상되어 복호화된 참조 서브블록에 포함된 참조 픽셀 정보를 O'(i,j)라 한다.
for
(i=0; i<4; i++)
for
(j=0; j<4; j++)
O'
(i,j) = H(i) +
R'
(i,j);
이상에서는, 하나의 서브블록에 대하여, 수평 모드의 인트라 예측을 포함한 인트라 예측 부호화 과정을 예시적으로 설명하였으며, 도 11에서는 하나의 임의의 서브블록에 대하여, 수직 모드의 인트라 예측을 포함한 인트라 예측 부호화 과정을 예시적으로 설명한다.
도 11은 하나의 서브블록을 수직 모드로 인트라 예측을 수행한 것을 예시적으로 나타낸 도면이다.
도 11의 (a)는 인트라 예측 전의 임의의 서브블록을 나타낸 것이고, 도 11의 (b)는 임의의 서브블록에 대한 인트라 예측을 통해 생성된 예측 서브블록을 나타낸 것이다. 임의의 서브블록은 4×4 블록 크기로 가정하고, 굵은 실선으로 표시하였으며, 16개의 픽셀을 포함한다.
도 11의 (a)를 참조하면, 인트라 예측 전의 임의의 서브블록에 포함된 각 픽셀은 원 화소에 대한 해당 픽셀 정보를 포함한다. 원 화소에 대한 16 개의 픽셀 정보는 4개의 행(i)과 4개의 열(j)을 구분하여 4×4 좌표 형태의 "M(i,j)"로 표시한다. 예를 들어, M(2,3)은 3번째 행(i=2)과 4번째 열(j=3)에 해당하는 화소의 픽셀에 대한 픽셀 정보이다.
또한, 수직 모드로 인트라 예측을 수행하는 것을 가정하였기 때문에, 임의의 서브블록에 대한 인트라 예측시 참조하는 인접 픽셀 정보는 해당 서브블록의 상측에 인접한 서브블록(또는 매크로블록)에 포함된 픽셀 정보로서, "V(0), V(1), V(2) 및 V(3)"이 이러한 인접 픽셀 정보에 해당한다. 여기서, "V(0), V(1), V(2) 및 V(3)"은 임의의 서브블록을 인트라 예측할 때, 수직 방향으로 인접한 임의의 4개의 픽셀 정보를 의미한다.
도 11의 (a)에 예시된 임의의 서브블록을 수직 모드로 인트라 예측하여, 도 11의 (b)와 같은 예측 서브블록을 생성한다. 생성된 예측 서브블록에 포함된 16개의 픽셀에는 각기 예측 픽셀 정보를 포함한다. 이러한 예측 픽셀 정보는 4개의 행(i)과 4개의 열(j)을 구분하여 4×4 좌표 형태의 "P(i,j)"로 표시한다. 예를 들어, P(2,3)은 3번째 행(i=2)과 4번째 열(j=3)에 해당하는 화소에 대하여 예측된 예측 값(예측 픽셀 정보)이다.
임의의 서브블록을 수직 모드로 인트라 예측을 수행하여 생성된 예측 서브블록에 포함된 각 픽셀에 대한 예측 픽셀 정보인 P(i,j)는, 일 예로서, 아래와 같은 방법으로 구해질 수 있다. 아래에서의 V(j)는 이미 부호화되고 복호화된 인접 픽셀 정보들이다.
for
(j=0; j<4; j++)
for
(i=0; i<4; i++)
P(i,j) = V(j);
전술한 방법으로 예측 서브블록이 생성된 이후, 도 11의 (a)에 도시된 임의의 서브블록에서, 도 11의 (b)에서 도시된 예측 서브블록을 감산하는 연산 처리를 통해, 도 13에 도시된 잔차 서브블록을 생성한다. 생성된 잔차 서브블록에 포함된 각 픽셀은 M(i,j)와 P(i,j)를 감산하는 연산을 통해 얻어진 "R(i,j)"라는 잔차 픽셀 정보를 포함한다.
이렇게 생성된 잔차 서브블록은 변환, 양자화 및 엔트로피 부호화의 과정을 거침으로써, 하나의 서브블록에 대한 인트라 예측 부호화가 마무리된다. 또한, 양자화된 잔차 서브블록은 역 양자화, 역 변환, 인트라 보상의 과정을 거침으로써 참조블록이 생성되고, 생성된 참조블록은 나중 순서의 서브블록에 대한 인트라 예측 부호화에서 이용된다.
위에서 언급한 참조블록에 포함된 각 픽셀에 대한 참조 픽셀 정보는 아래와 같은 방법으로 얻을 수 있다. 단, 양자화된 잔차 서브블록을 역 양자화하여 역 변환한 잔차 서브블록에 포함된 픽셀 정보를 R'(i,j)라고 하며, 이러한 잔차 서브블록이 인트라 보상되어 복호화된 참조 서브블록에 포함된 참조 픽셀 정보를 O'(i,j)라 한다.
for
(j=0; j<4; j++)
for
(i=0; i<4; i++)
O'
(i,j) = V(j) +
R'
(i,j);
이상에서는, 하나의 서브블록에 대하여, 수직 모드의 인트라 예측을 포함한 인트라 예측 부호화 과정을 예시적으로 설명하였으며, 도 12에서는 하나의 임의의 서브블록에 대하여, DC 모드의 인트라 예측을 포함한 인트라 예측 부호화 과정을 예시적으로 설명한다.
도 12는 하나의 서브블록을 DC 모드로 인트라 예측을 수행한 것을 예시적으로 나타낸 도면이다.
도 12의 (a)는 인트라 예측 전의 임의의 서브블록을 나타낸 것이고, 도 11의 (b)는 임의의 서브블록에 대한 인트라 예측을 통해 생성된 예측 서브블록을 나타낸 것이다. 임의의 서브블록은 4×4 블록 크기로 가정하고, 굵은 실선으로 표시하였으며, 16개의 픽셀을 포함한다.
도 12의 (a)를 참조하면, 인트라 예측 전의 임의의 서브블록에 포함된 각 픽셀은 원 화소에 대한 해당 픽셀 정보를 포함한다. 원 화소에 대한 16 개의 픽셀 정보는 4개의 행(i)과 4개의 열(j)을 구분하여 4×4 좌표 형태의 "M(i,j)"로 표시한다. 예를 들어, M(2,3)은 3번째 행(i=2)과 4번째 열(j=3)에 해당하는 화소의 픽셀에 대한 픽셀 정보이다.
또한, DC 모드로 인트라 예측을 수행하는 것을 가정하였기 때문에, 임의의 서브블록에 대한 인트라 예측시 참조하는 인접 픽셀 정보는 해당 서브블록의 상측에 인접한 서브블록(또는 매크로블록)에 포함된 픽셀 정보로서, "H(0), H(1), H(2), H(3), V(0), V(1), V(2), V(3) 및 M"이 이러한 인접 픽셀 정보에 해당한다.
여기서, "H(0), H(1), H(2) 및 H(3)"은 임의의 서브블록을 인트라 예측할 때, 수평 방향으로 인접한 임의의 4개의 픽셀 정보를 의미하고, "V(0), V(1), V(2) 및 V(3)"은 임의의 서브블록을 인트라 예측할 때, 수직 방향으로 인접한 임의의 4개의 픽셀 정보를 의미하며, "M"은 왼쪽 위로 향하는 대각선 방향으로 인접한 임의의 1개의 픽셀 정보를 의미한다.
도 12의 (a)에 예시된 임의의 서브블록을 DC 모드로 인트라 예측하여, 도 12의 (b)와 같은 예측 서브블록을 생성한다. 생성된 예측 서브블록에 포함된 16개의 픽셀에는 각기 예측 픽셀 정보를 포함한다. 이러한 예측 픽셀 정보는 4개의 행(i)과 4개의 열(j)을 구분하여 4×4 좌표 형태의 "P(i,j)"로 표시한다. 예를 들어, P(2,3)은 3번째 행(i=2)과 4번째 열(j=3)에 해당하는 화소에 대하여 예측된 예측 값(예측 픽셀 정보)이다.
임의의 서브블록을 DC 모드로 인트라 예측을 수행하여 생성된 예측 서브블록에 포함된 각 픽셀에 대한 예측 픽셀 정보인 P(i,j)는, 일 예로서, 아래와 같은 방법으로 구해질 수 있다. 아래에서의 H(i)는 이미 부호화되고 복호화된 인접 픽셀 정보들이다.
for
(j=0; j<4; j++)
for
(i=0; i<4; i++)
{
k=3;
//서브블록의 크기=(k+1)×(k+1)
Avg
=
Mean
[H(0), H(1), ..., H(k), V(0), V(1), ..., V(k), M];
//
Mean
[]은 []안의 값을 평균함.
P(i,j) =
Avg
;
}
전술한 방법으로 예측 서브블록이 생성된 이후, 도 12의 (a)에 도시된 임의의 서브블록에서, 도 12의 (b)에서 도시된 예측 서브블록을 감산하는 연산 처리를 통해, 도 13에 도시된 잔차 서브블록을 생성한다. 생성된 잔차 서브블록에 포함된 각 픽셀은 M(i,j)와 P(i,j)를 감산하는 연산을 통해 얻어진 "R(i,j)"라는 잔차 픽셀 정보를 포함한다.
이렇게 생성된 잔차 서브블록은 변환, 양자화 및 엔트로피 부호화의 과정을 거침으로써, 하나의 서브블록에 대한 인트라 예측 부호화가 마무리된다. 또한, 양자화된 잔차 서브블록은 역 양자화, 역 변환, 인트라 보상의 과정을 거침으로써 참조블록이 생성되고, 생성된 참조블록은 나중 순서의 서브블록에 대한 인트라 예측 부호화에서 이용된다.
위에서 언급한 참조블록에 포함된 각 픽셀에 대한 참조 픽셀 정보는 아래와 같은 방법으로 얻을 수 있다. 단, 양자화된 잔차 서브블록을 역 양자화하여 역 변환한 잔차 서브블록에 포함된 픽셀 정보를 R'(i,j)라고 하며, 이러한 잔차 서브블록이 인트라 보상되어 복호화된 참조 서브블록에 포함된 참조 픽셀 정보를 O'(i,j)라 한다.
for
(j=0; j<4; j++)
for
(i=0; i<4; i++)
O'
(i,j) =
Avg
+
R'
(i,j);
지금까지, 하나의 서브블록에 대하여, 수평 모드, 수직 모드 및 DC 모드 각각의 인트라 예측 모드의 인트라 예측을 포함한 인트라 예측 부호화 과정을 예시적으로 설명하였다.
이상에서 전술한 본 발명에 따른 영상 부호화는 H.264를 기반으로 하며, 수평 모드, 수직 모드 및 DC 모드 이외의 다른 인트라 예측 모드에 대해서는 H.264에서 정의된 방법으로 영상 부호화를 수행할 수 있다.
도 14은 본 발명의 일 실시예에 따른 영상 복호화 장치(1400)에 대한 개략적인 블록구성도이다.
도 14을 참조하면, 본 발명의 일 실시예에 따른 영상 복호화 장치(1400)는, 수신된 비트스트림을 복호화하여 현재 블록이 분할된 복수 개의 서브블록에 대한 잔차 서브블록 및 인트라 예측 모드를 추출하는 복호화부(1410); 추출된 잔차 서브블록을 역 양자화하는 역 양자화부(1420); 역 양자화된 잔차 서브블록을 역 변환하는 역 변환부(1430); 이미 복호화되어 복원된 서브블록별 인접 픽셀 정보를 참조하여 인트라 예측 모드에 따라 인트라 예측을 수행하여 복수 개의 서브블록에 대한 예측 서브블록을 생성하는 인트라 예측부(1440); 역변환된 잔차 서브블록과 생성된 해당 예측 서브블록을 더하여, 복수 개의 서브블록을 복원하는 가산부(1450); 및 복원된 복수 개의 서브블록을 결합하여 현재 블록을 복원하는 블록 결합부(1460) 등을 포함한다.
위에서 언급한 복수 개의 서브블록에 대한 인트라 예측 모드는 현재 블록의 인트라 예측 모드와 동일한 인트라 예측 모드이다.
전술한 블록 결합부(1460)는 복원된 복수 개의 서브블록을 래스터 스캔의 순서 또는 지그재그 순서에 따라 결합할 수 있다.
위에서 언급한 수신된 비트스트림은 본 발명의 일 실시예에 따른 영상 부호화 방법에 따라 부호화된 비트스트림이다.
본 발명의 일 실시예에 따른 영상 복호화 장치(1400)는, 수행하는 복호화, 역 양자화, 역 변환 및 인트라 예측 등에 필요한 파라미터 또는 정보를 소정 방식으로 영상 부호화 장치(100)와 공유할 수 있다. 예를 들어, 현재 블록의 인트라 예측 모드에 대한 정보, 또는 현재 블록의 인트라 예측 모드를 결정할 수 있는 정보가 포함된 비트스트림을 수신함으로써, 영상 부호화 장치(100)와 인트라 예측 모드가 무엇인지를 공유할 수 있다.
도 15는 본 발명의 일 실시예에 따른 영상 복호화 방법에 대한 흐름도이다.
도 15를 참조하면, 본 발명의 일 실시예에 따른 영상 복호화 방법은, 수신된 비트스트림을 복호화하여 현재 블록이 분할된 복수 개의 서브블록에 대한 잔차 서브블록 및 인트라 예측 모드를 추출하는 단계(S1500); 잔차 서브블록을 역 양자화하는 단계(S1502); 역 양자화된 잔차 서브블록을 역 변환하는 단계(S1504); 이미 복호화되어 복원된 서브블록별 인접 픽셀 정보를 참조하여 인트라 예측 모드에 따라 인트라 예측을 수행하여 복수 개의 서브블록에 대한 예측 서브블록을 생성하는 단계(S1506); 역변환된 잔차 서브블록과 예측 서브블록을 더하여 복수 개의 서브블록을 복원하는 단계(S1508); 및 복원된 복수 개의 서브블록을 결합하여 현재 블록을 복원하는 단계(S1510) 등을 포함한다.
전술한 S1510 단계는 복원된 복수 개의 서브블록을 래스터 스캔의 순서 또는 지그재그 순서에 따라 결합할 수 있다.
위에서 언급한 복수 개의 서브블록에 대한 인트라 예측 모드는 현재 블록의 인트라 예측 모드와 동일한 인트라 예측 모드이다.
이상에 전술한 본 발명의 일 실시예에 따른 영상 부호화 방법 및 영상 복호화 방법에 따르면, 부호화하거나 복호화하고자 하는 현재 블록을 예측할 때, 현재 블록을 서브블록으로 분할하고, 분할된 서브블록마다, 현재 블록의 인접한 주변 블록의 인접 픽셀 정보를 참조하여 인트라 예측을 수행하는 것이 아니라, 해당 서브블록에 바로 인접한 픽셀 정보를 참조하여 인트라 예측을 수행함으로써, 그 예측의 정확도를 향상시킬 수 있고, 그로 인해 만족스러운 영상 재생 품질을 제공하는 효과가 있다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.