KR101479129B1 - 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치 - Google Patents
가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치 Download PDFInfo
- Publication number
- KR101479129B1 KR101479129B1 KR20100096035A KR20100096035A KR101479129B1 KR 101479129 B1 KR101479129 B1 KR 101479129B1 KR 20100096035 A KR20100096035 A KR 20100096035A KR 20100096035 A KR20100096035 A KR 20100096035A KR 101479129 B1 KR101479129 B1 KR 101479129B1
- Authority
- KR
- South Korea
- Prior art keywords
- prediction
- block
- sub
- type
- macroblock
- 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- 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/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- 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/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- 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/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- 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/146—Data rate or code amount at the encoder output
- H04N19/15—Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
-
- 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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- 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/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
-
- 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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
가변 크기의 매크로블록을 이용한 영상 부호화/복호화 장치 및 방법이 개시된다. 본 발명의 실시예에 따른 영상 부호화/복호화 장치는, 예측 기준 단위 후보별로 매크로블록을 부호화하며, 예측 기준 단위 후보별 부호화 비용에 따라 예측 기준 단위를 결정하고, 결정된 예측 기준 단위로 부호화된 영상 데이터 및 결정된 예측 기준 단위 별 예측 타입에 대한 정보와 예측 타입에 따른 예측 데이터를 포함하는 비트스트림을 생성하는 영상 부호화기; 및 비트스트림으로부터 예측 기준 단위 별 예측 타입에 대한 정보 및 예측 타입에 따른 예측 데이터와 부호화된 영상 데이터를 추출하고, 예측 기준 단위 별 예측 타입에 따라 부호화된 영상 데이터를 복호화하여 복원 영상을 생성하는 영상 복호화기를 포함하는 것을 특징으로 한다.
Description
본 발명은 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치에 관한 것이다. 더욱 상세하게는, 다양한 예측 모드를 이용하여 가변 크기의 매크로블록 내 서브블록 또는 예측기준단위를 부호화 및 복호화함으로써 고해상도 영상을 효율적으로 부호화하고 복호화하는 방법 및 장치에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 발명의 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
동영상 데이터의 압축기술로는 H.261, H.263, MPEG-2, MPEG-4 등이 있다. 이러한 비디오 압축 표준에서는 각 영상을 휘도 성분의 16x16 크기의 화소들과 각 색차 성분의 8x8 크기의 화소들의 사각 영역으로 이루어진 고정된 크기를 가지는 매크로블록(Macroblock)들로 나누어 부호화한다. 각 매크로블록의 모든 휘도와 색차 성분들은 공간적으로나 시간적으로 예측되고, 예측 잔여분은 변환 및 양자화, 엔트로피 코딩이 수행되어 전송된다. 가장 최근에 제정된 H.264/AVC 표준에 따른 부호화 장치는 16x16 화소 블록을 고정된 매크로블록의 크기로 사용하고 각각의 매크로블록이 인트라 매크로블록인지 인터 매크로블록인지를 결정 후, 매크로블록을 더 작은 블록으로 분할하여 인트라 예측 또는 인터 예측을 수행한다. 인트라 매크로블록을 예측 부호화할 때, 각 매크로블록은 16x16, 8x8, 4x4의 크기로 분할될 수 있으며, 16x16 크기의 블록에 대해서는 4 가지의 예측 모드, 8x8 크기와 4x4 크기의 블록에 대해서는 9 가지의 예측 모드중 하나를 이용하여 인트라 예측한다. 인터 매크로블록을 예측의 경우, 매크로블록은 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4 크기를 가지는 더 작은 블록으로 분할되어 움직임 보상을 통한 인터 예측에 이용될 수 있다. 변환은 8x8 크기 또는 4x4 크기의 블록 단위로 수행되고, 변환 계수의 양자화는 스칼라(Scalar) 양자화가 사용된다.
하지만, 고정된 크기의, 예컨대 16x16 크기, 매크로블록은 과거의 QCIF, CIF급의 작은 영상에 적합한 크기라 할 수 있으며, 4Kx2K 영상과 같은 고해상도 영상 압축을 위한 매크로블록의 크기로 부적합하다. 또한, H.264/AVC와 같은 기존 부호화/복호화 방법에서는 매크로블록을 더 작은 블록 단위로 분할하여 부호화하지만, 인트라 매크로블록인 경우 매크로블록 내 모든 서브블록들은 인트라 모드만을 사용할 수 있으며, 인터 매크로블록인 경우 매크로블록 내 모든 서브블록들은 인터 모드만을 사용할 수 있기 때문에 영상 내 다양한 영역을 포함하는 고해상도 영상을 부호화하는 경우 효율적인 부호화가 어려운 문제점이 있다.
전술한 문제점을 해결하기 위해 본 발명은, 가변 크기의 매크로블록을 사용하고 매크로블록 내 서브블록 들에 대해서 다양한 예측 모드를 사용할 수 있는 방법과 기준 예측 단위를 이용하여 매크로블록의 예측 정보를 효율적으로 부호화 및 복호화 방법을 제공하는데 주된 목적이 있다.
전술한 목적을 달성하기 위한 본 발명의 실시예에 따른 영상 부호화/복호화 장치는, 예측 기준 단위 후보별로 매크로블록을 부호화하며, 예측 기준 단위 후보별 부호화 비용에 따라 예측 기준 단위를 결정하고, 결정된 예측 기준 단위로 부호화된 영상 데이터 및 결정된 예측 기준 단위 별 예측 타입에 대한 정보와 예측 타입에 따른 예측 데이터를 포함하는 비트스트림을 생성하는 영상 부호화기; 및 비트스트림으로부터 예측 기준 단위 별 예측 타입에 대한 정보 및 예측 타입에 따른 예측 데이터와 부호화된 영상 데이터를 추출하고, 예측 기준 단위 별 예측 타입에 따라 부호화된 영상 데이터를 복호화하여 복원 영상을 생성하는 영상 복호화기를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 영상 부호화 장치는, 가변 크기의 매크로블록을 복수의 서브블록으로 분할하는 매크로블록 분할기; 각 서브블록 단위로 인터 예측 또는 인트라 예측을 선택적으로 결정하여 예측 부호화하는 예측기; 및 매크로블록 내 서브블록들의 크기 및 모양을 나타내는 분할 정보, 각 서브블록이 인트라 모드인지 인터 모드인지를 나타내는 각 서브블록 별 예측 타입정보 및 서브블록의 예측 타입에 따른 예측 데이터를 부호화하는 부호화기를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 영상 부호화 장치는, 가변 크기의 매크로블록을 복수의 서브블록으로 분할하는 매크로블록 분할기; 매크로블록의 예측 타입에 따라 매크로블록 단위 또는 매크로블록 내 서브블록 단위로 인터 예측 또는 인트라 예측을 선택적으로 결정하여 예측 부호화하는 예측기; 및 매크로블록 내 서브블록들의 크기 및 모양을 나타내는 분할 정보, 매크로블록 예측 타입에 따라 각 서브블록의 예측 타입 정보와 예측 데이터 또는 각 서브블록의 예측 데이터를 부호화하는 부호화기를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 영상 복호화 장치는, 입력되는 비트스트림으로부터 가변 크기의 매크로블록 내의 서브블록들의 크기를 나타내는 분할정보, 각 서브블록들이 인트라 예측되었는지 인터 예측되었는지를 나타내는 예측 타입정보, 및 인트라 또는 인터 예측에 필요한 예측 모드정보를 복호화하는 복호화기; 복호화된 각 서브블록 별 예측 타입정보 및 예측 모드정보를 이용하여 매크로블록 내의 복호화하고자 하는 현재 블록을 예측 하는 예측기를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 영상 복호화 장치는, 입력되는 비트스트림으로부터 가변 매크로블록의 타입을 나타내는 매크로블록 타입 정보, 매크로블록 서브블록들의 크기를 나타내는 분할 정보, 매크로블록 타입 정보에 따른 각 서브블록들의 예측 타입 정보와 예측 모드 데이터 또는 각 서브블록의 예측 모드 데이터를 추출하여 복호화하는 복호화기; 복호화된 매크로블록 타입에 따라 매크로블록 내 각 서브블록들의 예측 타입 정보와 예측 모드 정보 또는 매크로블록 타입과 매크로블록 내 각 서브블록들의 예측 모드 정보를 이용하여 상기 매크로블록 내의 복호화하고자 하는 현재 블록을 예측하는 예측기를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 또 다른 실시예에 따른 영상 복호화 장치는, 입력되는 비트스트림으로부터 예측 기준단위 정보를 추출하여 가변 크기의 매크로블록 내 예측 기준단위를 설정하는 예측 기준단위 설정기; 및 설정된 예측 기준단위로 비트스트림으로부터 예측 타입정보 및 예측 타입정보에 따른 예측 기준 단위 내 서브블록 별 예측 모드정보를 추출하여 복호화하는 복호화기를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 실시예에 따른 영상 부호화/복호화 방법은, 예측 기준 단위 후보별로 매크로블록을 부호화하며, 예측 기준 단위 후보별 부호화 비용에 따라 예측 기준 단위를 결정하고, 결정된 예측 기준 단위로 부호화된 영상 데이터 및 결정된 예측 기준 단위 별 예측 타입에 대한 정보와 예측 타입에 따른 예측 데이터를 생성하는 단계; 및 비트스트림으로부터 예측 기준 단위 별 예측 타입에 대한 정보 및 예측 타입에 따른 예측 데이터와 부호화된 영상 데이터를 추출하고, 예측 기준 단위 별 예측 타입에 따라 부호화된 영상 데이터를 복호화하는 단계를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 영상 부호화 방법은, 가변 크기의 매크로블록을 복수의 서브블록으로 분할하는 단계; 각 서브블록 단위로 인터 예측 또는 인트라 예측을 선택적으로 결정하여 예측 부호화 단계; 및 매크로블록 내 서브블록들의 크기를 나타내는 분할 정보, 각 서브블록이 인트라 모드인지 인터 모드인지를 나타내는 각 서브블록 별 예측 타입정보 및 서브블록의 예측 타입에 따른 예측 데이터를 부호화하는 단계를 포함하는 것을 특징으로 한다.
부호화 단계는, 인트라 픽처의 경우, 예측 타입정보는 부호화 하지 않고 각 서브블록의 인트라 예측 모드를 나타내는 예측 데이터만을 부호화할 수 있다.
또한, 부호화 단계는, 인터 픽처의 경우, 각 서브블록 별로 인트라 예측이 수행되었는지 인터 예측이 수행되었는지를 나타내는 예측 타입정보를 부호화한 후, 인트라 블록인 경우 인트라 예측 모드정보와 인터 블록인 경우 움직임 정보를 부호화할 수도 있다.
전술한 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 영상 부호화 방법은, 가변 크기의 매크로블록을 복수의 서브블록으로 분할하는 단계; 매크로블록의 예측 타입에 따라 매크로블록 단위 또는 매크로블록 내 서브블록 단위로 인터 예측 또는 인트라 예측을 선택적으로 결정하여 예측 부호화하는 단계; 및 매크로블록 내 서브블록들의 크기를 나타내는 분할 정보, 매크로블록 예측 타입에 따라 각 서브블록의 예측 타입 정보와 예측 데이터 또는 각 서브블록의 예측 데이터를 부호화하는 단계를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 영상 복호화 방법은, 입력되는 비트스트림으로부터 가변 크기의 매크로블록 내의 각 서브블록들의 크기를 나타내는 분할정보, 각 서브블록들이 인트라 예측되었는지 인터 예측되었는지를 나타내는 예측 타입정보, 및 인트라 또는 인터 예측에 필요한 예측 모드정보를 복호화하는 단계; 복호화된 각 서브블록 별 예측 타입정보 및 예측 모드정보를 이용하여 매크로블록 내의 복호화하고자 하는 현재 블록을 예측 하는 단계를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 영상 복호화 방법은, 입력되는 비트스트림으로부터 가변 매크로블록의 타입을 나타내는 매크로블록 타입 정보, 매크로블록 내 각 서브블록들의 크기를 나타내는 분할 정보, 매크로블록 타입 정보에 따른 각 서브블록들의 예측 타입 정보와 예측 모드 데이터 또는 각 서브블록의 예측 모드 데이터를 추출하여 복호화하는 단계; 복호화된 매크로블록 타입에 따라 매크로블록 내 각 서브블록들의 예측 타입 정보와 예측 모드 정보 또는 매크로블록 타입과 매크로블록 내 각 서브블록들의 예측 모드 정보를 이용하여 매크로블록 내의 복호화하고자 하는 현재 블록을 예측하는 단계를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 또 다른 실시예에 따른 영상 복호화 방법은, 입력되는 비트스트림으로부터 예측 기준단위 정보를 추출하여 가변 크기의 매크로블록 내 예측 기준단위를 설정하는 단계; 및 설정된 예측 기준단위로 비트스트림으로부터 예측 타입정보 및 예측 타입정보에 따른 예측 기준 단위 내 서브블록 별 예측 모드정보를 추출하여 복호화하는 단계를 포함하는 것을 특징으로 한다.
이상에서 설명한 바와 같이 본 발명에 의하면, 영상의 특성에 따라 기준 예측 단위를 결정함으로써 매크로블록 내 서브블록들에 대해서도 인트라 예측 또는 인터 예측과 같은 다양한 예측 모드 조합을 이용하여 고해상도 영상을 효율적으로 부호화하고 복호화 할 수 있다. 또한 기준 예측 단위를 이용하여 매크로블록의 분할 정보와 예측 정보를 효율적으로 부호화하고 복호화할 수 있다.
도 1 내지 도 3은 본 발명의 일 실시예에 따른 MxN 화소 단위의 매크로블록을 설명하기 위한 예시도이다.
도 4 및 도 5는 본 발명의 일 실시예에 따른 여러 가지 서브블록 모드를 나타낸 예시도이다.
도 6은 본 발명의 일 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
도 7은 본 발명의 일 실시예에 따른 영상 복호화 장치를 간략하게 나타낸 블록 구성도이다.
도 8은 본 발명의 다른 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
도 9는 본 발명의 다른 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도이다.
도 10은 본 발명의 다른 실시예에 따른 영상 복호화 장치를 개략적으로 나타낸 블록 구성도이다.
도 11는 본 발명의 일 실시예에 따라 매크로블록을 레이어별로 분할한 서브블록을 나타낸 예시도이다.
도 12 및 도 13은 본 발명의 일 실시예에 따른 분할 타입을 나타낸 예시도이다.
도 14은 본 발명의 일 실시예에 따라 다양한 블록 크기의 서브블록으로 분할된 매크로블록을 나타낸 예시도이다.
도 15는 매크로블록이 분할 레이어별로 분할되는 과정을 순차적으로 나타낸 예시도이다.
도 16은 매크로블록의 레이어별 분할 타입 지시 정보를 서브블록의 순서에 따라 순차적으로 부호화하는 과정을 설명하기 위한 예시도이다.
도 4 및 도 5는 본 발명의 일 실시예에 따른 여러 가지 서브블록 모드를 나타낸 예시도이다.
도 6은 본 발명의 일 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
도 7은 본 발명의 일 실시예에 따른 영상 복호화 장치를 간략하게 나타낸 블록 구성도이다.
도 8은 본 발명의 다른 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
도 9는 본 발명의 다른 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도이다.
도 10은 본 발명의 다른 실시예에 따른 영상 복호화 장치를 개략적으로 나타낸 블록 구성도이다.
도 11는 본 발명의 일 실시예에 따라 매크로블록을 레이어별로 분할한 서브블록을 나타낸 예시도이다.
도 12 및 도 13은 본 발명의 일 실시예에 따른 분할 타입을 나타낸 예시도이다.
도 14은 본 발명의 일 실시예에 따라 다양한 블록 크기의 서브블록으로 분할된 매크로블록을 나타낸 예시도이다.
도 15는 매크로블록이 분할 레이어별로 분할되는 과정을 순차적으로 나타낸 예시도이다.
도 16은 매크로블록의 레이어별 분할 타입 지시 정보를 서브블록의 순서에 따라 순차적으로 부호화하는 과정을 설명하기 위한 예시도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
이하에서 후술할 영상 부호화 장치(Video Encoding Apparatus), 영상 복호화 장치(Video Decoding Apparatus)는 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 이동통신 단말기(Mobile Communication Terminal) 등일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하거나 복호화하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.
또한, 영상 부호화 장치에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등의 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 영상 복호화 장치에서 복호화되어 영상으로 복원되고 재생될 수 있다.
[실시예 1]
A. 매크로블록 내 서브블록 단위로 인트라/인터 모드를 선택하여 부호화/복호화하는 방법
이하에서는, 가변 크기의 매크로블록 내 서브블록에 대해 인트라 예측 또는 인터 예측을 선택적으로 이용하여 부호화하고 복호화하는 장치에 대해 예를 들어 설명한다.
통상적인 영상 압축 기술에서는 인터 픽처의 고정된 크기의 어느 한 매크로블록의 서브블록들에 대해서는 동일한 예측 방법을 이용하여 예측 부호화하고 예측 복호화하였다. 즉, 하나의 매크로블록 내의 각 서브블록에 대해 모두 인터 예측 부호화하거나 모두 인트라 예측 부호화하였다.
하지만, 본 발명의 실시예에서는 가변 크기의 매크로블록을 이용하여 영상을 부호화하며, 매크로블록 내의 각 서브블록에 대해 인터 예측 또는 인트라 예측을 선택적으로 이용하여 부호화하거나 복호화할 수 있다.
또는, 인트라 픽쳐의 경우 매크로블록 내 서브블록들은 인트라 예측 모드만을 사용하여 부호화/복호화하고 인터 픽쳐의 경우에만 매크로블록 내 서브블록들에 대해서 인트라 예측 또는 인터 예측을 선택적으로 이용하여 부호화하거나 복호화할 수도 있다 .
또는, 매크로블록의 타입을 인트라 매크로블록, 인터 매크로블록, 인트라/인터 매크로블록의 3가지로 구분하여 매크로블록의 타입이 인트라/인터 매크로블록 타입인 경우에만 적용할 수도 있다. 즉 인트라 매크로블록 내의 각 서브블록은 모두 인트라 예측 부호화하고 인터 매크로블록 내의 각 서브블록은 모두 인터예측 부호화하고 인트라/인터 매크로블록인 경우 매크로블록 내의 각 서브블록에 대해 인터 예측 또는 인트라 예측을 선택적으로 이용하여 부호화하거나 복호화할 수 있다. 매크로블록 내 각 서브블록에 대해 인트라예측 또는 인터 예측을 선택적으로 사용하여 부호화하는 경우에만 각 블록별로 인트라 예측모드를 사용하는지 인터 예측 모드를 사용하는지에 대한 정보를 부호화한다.
A.1. 부호화 장치
A.1.1. 가변 크기의 매크로블록
도 1 내지 도 3은 본 발명의 일 실시예에 따른 MxN 화소 단위의 매크로블록을 설명하기 위한 예시도이다.
도 1에서는 임의의 크기를 가지는 입력 영상의 일 부분에서 표현된 MxN 화소 단위의 매크로블록(이하 'MxN 크기의 매크로블록'이라 칭함)을 예시적으로 나타내었고, 도 2에서는 396 개의 16x16 크기의 매크로블록으로 구성되는 CIF 영상을 예시적으로 나타내었으며, 도 3에서는 54 개의 64x32 크기의 매크로블록으로 구성되는 CIF 영상을 예시적으로 나타내었다.
기존의 영상 압축 기술에서는 도 2에 도시한 바와 같이, 영상을 16x16으로 고정된 크기를 가지는 매크로블록으로 분할하여 부호화하고 복호화하지만, 본 발명의 일 실시예에서는 도 3에 도시한 바와 같이, 64x32 크기(단, 64x32 크기의 매크로블록뿐만 아니라 64x64 크기, 32x64 크기와 같은 MxN 크기(단, 16x16 크기 이상)도 가능함)를 가지는 매크로블록을 이용하여 영상을 부호화하고 복호화할 수 있다.
A.1.2. 서브블록 모드의 예
도 4 및 도 5는 본 발명의 일 실시예에 따른 여러 가지 서브블록 모드를 나타낸 예시도이다.
도 4에서는 32x32 크기의 매크로블록에 대해 사용할 수 있는 서브블록 모드를 나타내었고, 도 5에서는 32x16 크기의 매크로블록에 대해 사용할 수 있는 서브블록 모드를 나타내었다.
본 발명의 일 실시예에 따르면, MxN 크기의 매크로블록은 도 4 및 도 5에 도시한 바와 같은 더 작은 블록 즉, 서브블록으로 분할될 수 있으며, 영상의 매크로블록은 이와 같은 서브블록 단위로 인트라 예측 부호화되거나 인터 예측 부호화될 수 있다.
A.1.3. 부호화기
도 6은 본 발명의 일 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 영상 부호화 장치는 임의의 크기 이상 매크로블록을 이용하여 영상을 부호화하는 장치로서, 매크로블록 분할기(Macroblock Splitter, 605), 예측기(Predictor, 610), 부호화기(Encoder, 620), 복원기(Reproducer, 630), 필터(Filter, 640) 및 프레임 메모리(Frame Memory, 650)를 포함하여 구성될 수 있다. 여기서, 복원기(630), 필터(640) 및 프레임 메모리(650)는 구현 방식에 따라 선택적으로 생략되거나 다른 구성 요소에 포함되어 구성될 수 있다.
매크로블록 분할기(605)는 도 4 및 도 5에 도시된 분할타입을 이용하여 매크로블록을 하나 이상의 서브블록으로 분할하고 매크로블록 내 서브블록들의 크기와 모양을 나타내는 분할 정보를 생성한다. 분할된 각 서브블록은 예측기(610)에 입력되고 분할 정보는 부호화기에 입력 된다.
예측기(610)는 움직임 추정기(612), 움직임 보상기(614) 및 인트라 예측기(616)를 포함하여 구성될 수 있으며, 입력 블록을 예측한다. 여기서, 블록은 MxN(단, M과 N은 16 이상의 정수일수 있다) 크기의 매크로블록이나 OxP(단, O와 P는 M 또는 N보다 작거나 같은 정수임) 크기의 서브블록 또는 하위 블록을 말한다.
움직임 추정기(612)는 예측하고자 하는 블록을 프레임 메모리(650)에 저장된 참조 픽처와 비교하여 해당 블록의 움직임을 추정함으로써 움직임 벡터를 생성한다.
움직임 보상기(614)는 움직임 추정기(612)에 의해 생성된 움직임 벡터를 참조하여 프레임 메모리(650)에 저장된 참조 픽처에서 예측하고자 하는 블록의 크기만큼의 블록을 가져온다. 움직임 보상기(614)가 가져온 블록이 예측하고자 하는 블록의 예측값을 가지는 매크로블록이 된다.
인트라 예측기(616)는 예측하고자 하는 블록을 인트라 예측한다. 이를 위해, 인트라 예측기(616)는 이미 부호화되고 복호화되어 복원된 주변 화소 정보를 이용하여 참조 블록을 생성하고 참조 블록과 부호화 대상 블록을 비교하여 인트라 예측 모드를 결정하고, 결정된 인트라 예측 모드에 따라 블록을 인트라 예측한다. 인트라 예측기(616)에 의해 예측된 블록이 대상 블록의 예측값을 가지는 예측 블록이 된다.
부호화기(620)는 매크로블록 분할기(605)에서 생성한 매크로블록 내 서브블록들의 크기와 모양을 나타내는 분할정보를 부호화하는데, 분할 정보를 엔트로피 부호화할 수 있다. 또한, 부호화기(620)는 분할 정보에 의해 분할된 매크로블록 내 각 서브블록들의 예측 정보를 부호화하는데, 부호화하고자 하는 대상 블록을 인터 예측하는 경우, 움직임 추정기(612)에서 생성한 움직임 벡터 등과 같은 움직임 정보와 인트라 예측을 하는 경우, 인트라 예측 모드와 같은 예측 모드정보를 부호화할 수 있다. 또한, 각 서브블록과 예측 블록의 화소값의 차이인 잔여 신호를 부호화하는데, 잔여 신호를 변환 및 양자화하고 엔트로피 부호화하여 부호화할 수 있다.
복원기(630)는 변환 및 양자화된 잔여 신호를 역 양자화 및 역 변환하여 예측기(610)로부터 출력되는 예측 블록과 가산하여 대상 블록을 복원한다.
필터(640)는 디블로킹 필터(Deblocking Filter)와 같은 필터를 이용하여 복원된 대상 매크로블록을 필터링한다. 필터링된 복원 매크로블록은 프레임 메모리(650)에 저장되어, 예측기(610)에서 다음 매크로블록 또는 다음 픽처의 매크로블록을 예측하는 데 활용된다.
이하에서는, 본 발명에 따른 임의의 크기의 매크로블록을 다양한 크기와 모양의 서브블록으로 분할하고 각 서브블록 단위로 예측 모드를 결정하여 부호화하기 위해 기존 부호화기와 다르게 동작하는 부호화기의 구성 요소들의 동작방법에 대해서 설명한다.
A.1.4. 매크로블록 분할기
통상적인 영상 압축 기술에 따르면, 매크로블록의 크기가 16x16으로 고정되어 있으므로 매크로블록의 서브블록도 그에 따라 8x8, 4x4 크기 등 소수의 형태를 가지는 서브블록만이 이용될 수 있으나, 본 발명의 실시예에 따르면, 매크로블록의 크기가 16x16 이상으로 다양하게 결정될 수 있으므로 그에 따라 서브블록의 크기와 형태도 다양하게 결정될 수 있으며, 그에 따라 매크로블록이 다양한 형태의 서브블록으로 분할될 수 있다. 따라서, 본 발명의 다른 실시예에서는 매크로블록이 어떠한 크기의 서브블록으로 어떠한 형태로 분할되었는지에 대한 정보를 영상 복호화 장치로 전송하여 영상 복호화 장치에서 매크로블록을 영상 부호화 장치에서 분할한 방식과 동일하게 분할하여 예측 복호화할 수 있도록 해야 한다.
본 발명의 실시예에 따르면, 매크로블록을 레이어 별로 다양한 크기의 서브블록으로 분할하고, 분할된 서브 블록 별로 예측 부호화 및 예측 복호화할 수도 있다.
도 11는 본 발명의 실시예에 따라 매크로블록을 레이어별로 분할한 서브블록을 나타낸 예시도이다.
도 11에 도시된 매크로블록의 크기는 N x N (N은 16 이상의 정수)이다. 최소 서브블록 크기는 4 x 4으로 가정한다. 다만, 이러한 가정은 본 발명의 실시예를 설명하기 위한 것일 뿐, 매크로블록의 가로와 세로의 크기는 동일하지 않을 수 있으며 최소 서브블록 크기는 4x4 이외의 다른 크기일 수 있다.
도 11에 도시한 바와 같이, 본 발명의 실시예에 따르면 매크로블록은 레이어별로 다양한 크기의 서브블록들로 분할될 수 있다. 매크로블록은 레이어 0 내지 레이어 log2(N/4)까지 각 레이어별로 4 개의 형태를 가지는 서브블록들로 분할될 수 있다. 이때, 레이어 K(단, 0≤K≤log2(N/4))에서 해당 레이어의 서브블록이 4개의 서브블록으로 분할된 경우에만 K+1 레이어의 서브블록들을 사용할 수 있다.
예를 들어, 매크로블록이 64x64 블록일 때, 매크로블록은 레이어 0 내지 레이어 3까지 4 개의 레이어로 분할될 수 있으며, 각 레이어는 4 개의 서로 다른 블록 크기를 가지는 서브블록을 포함할 수 있다. 따라서, 64x64 블록 크기의 서브블록, 64x32 블록 크기의 서브블록, 32x64 블록 크기의 서브블록, 32x32 블록 크기의 서브블록은 레이어 0에 속하고, 32x32 블록 크기의 서브블록, 32x16 블록 크기의 서브블록, 16x32 블록 크기의 서브블록, 16x16 블록 크기의 서브블록은 레이어 1에 속하며, 16x16 블록 크기의 서브블록, 16x8 블록 크기의 서브블록, 8x16 블록 크기의 서브블록, 8x8 블록 크기의 서브블록은 레이어 2에 속하며, 8x8 블록 크기의 서브블록, 8x4 블록 크기의 서브블록, 4x8 블록 크기의 서브블록, 4x4 블록 크기의 서브블록은 레이어 3에 속한다. 여기서, 64x64 블록 크기의 매크로블록이 레이어 0에서 32x32 블록 크기의 서브블록으로 분할된 경우에만 레이어 1에 속한 서브블록들을 사용할 수 있으며, 레이어 1의 32x32 블록 크기의 서브블록이 다시 16x16 블록 크기의 서브블록으로 분할된 경우에만 레이어 2에 속한 서브블록들을 사용할 수 있으며, 레이어 2의 16x16 블록 크기의 서브블록이 다시 8x8 블록 크기의 서브블록으로 분할된 경우에만 레이어 3에 속한 서브블록들을 사용할 수 있다. 여기서, 레이어 번호 K인 NxN블록이 4개의 서브블록으로 분할된 경우, 분할된 서브블록은 레이어 K에 속할 수도 있고 레이어 K+1에 속할 수도 있다. 즉, 매크로블록이 64x64 크기인 경우, 32x32크기의 서브블록은 레이어 0에 포함되는 서브블록 타입으로 판단될 수도 있고 레이어 1에 속하는 서브블록 타입으로 판단될 수도 있다.
이 경우, 분할된 서브블록에 레이어 번호를 할당하는 방법은 각 레이어의 사용 가능 여부에 따라 달라지게 된다. 만약 레이어 K+1이 사용 가능한 경우 서브블록에 레이어 번호 K+1을 할당하고 레이어 K+1이 사용 가능하지 않은 경우에는 서브블록의 레이어 번호에 레이어 번호 K를 할당한다.
예를 들면 매크로블록의 크기는 64x64이고 최대 분할 레이어가 4인 경우, 매크로블록이 64x64이 4개의 32x32서브블록으로 분할된 경우, 32x32 서브블록은 레이어 1에 속하게 된다. 매크로블록 내 하나의 32x32 서브블록이 4개의 16x16 서브블록으로 분할되면 각 16x16 서브블록은 레이어 2에 속하고 동일한 방법으로 16x16 서브블록이 4개의 8x8 서브블록으로 분할되면 8x8 서브블록은 레이어3에 속하게 된다. 만약 8x8 서브블록이 4개의 4x4 서브블록으로 분할된 경우 4x4 서브블록은 레이어 4는 사용 가능하지 않으므로 레이어 3에 속하게 된다.
또한, 레이어 K의 NxN블록이 4개의 서브블록으로 분할되었을 경우, 분할된 서브블록의 레이어 번호로 K를 할당할 수도 있다. 이 경우, 서브블록이 더 작은 서브블록으로 분할된 경우 레이어 번호 K+1을 할당하도록 한다.
예를 들면 매크로블록의 크기는 64x64이고 최대 분할 레이어가 4인 경우, 매크로블록이 64x64이 4개의 32x32서브블록으로 분할된 경우, 32x32 서브블록은 레이어 0에 속하게 된다. 매크로블록 내 하나의 32x32 서브블록이 4개의 16x16 서브블록으로 분할되면 각 16x16 서브블록은 레이어 1에 속하고 동일한 방법으로 16x16 서브블록이 4개의 8x8 서브블록으로 분할되면 8x8 서브블록은 레이어 2에 속하게 된다. 그리고 8x8 서브블록이 4개의 4x4 서브블록으로 분할된 경우 4x4 서브블록은 레이어 3에 속하게 된다. 또한, 도 12과 도 13에 도시한 것 같은 다양한 분할 타입을 이용하여 매크로블록을 분할할 수도 있다. 도 12과 도 13는 본 발명의 실시예에 따른 분할 타입을 나타낸 예시도이다.
도 12은 본 발명의 실시예에 따른 분할 타입을 나타낸 예시도이다.
도 12에서는 레이어별로 분할되는 서브블록의 블록 크기를 식별하기 위한 분할 타입 지시 정보(Partition Type Number)를 예시적으로 나타내었다.
도 12에 도시한 바와 같이, 매크로블록의 레이어 K의 서브블록 가 분할되지 않은 경우에는 분할 타입 지시 정보가 0으로 부여되고, 서브블록 가 두 개의 서브블록으로 분할된 경우 분할 타입 지시 정보가 1로 부여되며, 서브블록 가 두 개의 서브블록으로 분할된 경우 분할 타입 지시 정보가 2로 부여되며, 서브블록 가 네 개의 서브블록으로 분할된 경우 분할 타입 번호가 3으로 부여될 수 있다. 파티션 번호(Partition Number)는 분할 타입에 따라 분할된 각 서브블록을 식별하기 위해 부여되는 번호를 나타낸다. 예를 들어, 레이어 K의 서브블록 가 분할되지 않은 경우, 분할되지 않은 서브블록 의 파티션 번호는 0이 부여된다. 또한, 레이어 K의 서브블록 가 네 개의 서브블록으로 분할된 경우 각 서브블록들은 좌상단의 서브블록들로부터 래스터 스캔 방향으로 파티션 번호 0, 1, 2, 3으로 부여될 수 있다. 도 13는 본 발명의 일 실시예에 따른 분할 타입을 나타낸 예시도이다.
도 13에서는 레이어별로 분할되는 서브블록의 블록 크기를 식별하기 위한 분할 타입 지시 정보(Partition Type Number)를 예시적으로 나타내었다.
도 13에 도시한 바와 같이, 매크로블록의 레이어 K의 서브블록 가 분할되지 않은 경우에는 분할 타입 지시 정보 분할 타입 지시 정보 가 0으로 부여되고, 서브블록 가 네 개의 서브블록으로 분할된 경우 분할 타입 번호가 1로 부여될 수 있다. 파티션 번호(Partition Number)는 분할 타입에 따라 분할된 각 서브블록을 식별하기 위해 부여되는 번호를 나타낸다. 예를 들어, 레이어 K의 서브블록 가 분할되지 않은 경우, 분할되지 않은 서브블록 의 파티션 번호는 0이 부여된다. 또한, 레이어 K의 서브블록 가 네 개의 서브블록으로 분할된 경우 각 서브블록들은 좌상단의 서브블록들로부터 래스터 스캔 방향으로 파티션 번호 0, 1, 2, 3으로 부여될 수 있다.
또한 레이어 별로 다양한 분할 타입들을 결합하여 사용할 수도 있다. 예를 들어 레이어 0과 레이어 1에서는 도 13에 도시된 분할타입을 사용하고 레이어 1의 하위 레이어들은 도 12에 도시된 분할타입을 사용할 수도 있다.
A.1.5. 가변길이 부호화기
부호화기(620)는 매크로블록 분할기(605)로부터 입력받은 분할 정보와 각 서브블록이 인트라 모드인지 인터모드 인지를 나타내는 예측 타입과 예측 타입에 따른 예측 데이터를 부호화한다. 부호화기 (620)은 분할 정보를 먼저 부호화하여 매크로블록 내 서브블록들의 크기와 모양을 복호화기로 전송하고, 각 서브블록들의 예측 타입과 예측 데이터를 부호화한다.
A.1.5.1. 분할정보 부호화 방법
매크로블록 분할기(605)로부터 입력 받은 매크로블록 내 서브블록들의 크기와 모양을 나타내는 분할 정보를 부호화기(620)에서 부호화 한다.
본 발명의 분할정보 부호화 방법에 따르면, 매크로블록이 다양한 크기의 서브블록으로 분할되는 형태를 나타내는 블록의 분할 정보는 매크로블록의 분할 레이어별 분할 타입 지시 정보를 이용하여 나타낼 수 있다. 따라서, 매크로블록을 구성하는 복수 개의 서브블록은 분할 레이어별 분할 타입 지시 정보에 의해 식별될 수 있다. 부호화기(620)는 매크로블록의 레이어별 분할 타입 지시 정보를 이용하여 블록의 분할 정보를 부호화할 수 있는데, 후술하는 바와 같이 다양한 방식으로 블록의 분할 정보를 부호화할 수 있다.
일 예로, 부호화기(620)는 매크로블록의 분할 레이어별 분할 타입 지시 정보를 분할 타입 지시 정보 부호화 순서에 따라 순차적으로 부호화함으로써 현재 블록의 분할 정보를 부호화할 수 있다
이하에서는 도 14 내지 도 16을 통해 매크로블록의 분할 레이어별 분할 타입 지시 정보를 분할 타입 지시 정보 부호화 순서에 따라 순차적으로 부호화함으로써 현재 블록의 분할 정보를 부호화하는 방법에 대해 설명한다.
도 14은 본 발명의 실시예에 따라 다양한 블록 크기의 서브블록으로 분할된 매크로블록을 나타낸 예시도이다.
도 14에서는 매크로블록의 블록 크기가 64x64이고, 최대 분할 레이어가 4이며 도 10에 도시된 서브블록 타입을 이용하여 다양한 블록 크기의 서브블록으로 분할된 매크로블록을 나타내었다.
매크로블록이 도시한 바와 같이 분할되었을 때, 본 발명의 실시예에 따르면 분할 레이어별 분할 타입 지시 정보를 분할 타입 지시 정보 부호화 순서에 따라 순차적으로 부호화하여 매크로블록의 분할 정보를 부호화할 수 있다.
도 14에 도시한 매크로블록이 분할 레이어별로 분할되는 과정을 순차적으로 나타내면 도 15와 같이 나타낼 수 있다. 도 15를 참조하면, 레이어 0(L0)에서, 64x64 블록 크기의 서브블록은 4 개의 32x32 블록 크기의 서브블록으로 분할되며, 레이어 1(L1)에서, L1-P0(레이어 1의 파티션 번호 0)의 서브블록과 L1-P3(레이어 1의 파티션 번호 3)의 서브블록은 다시 4 개의 16x16 블록 크기의 서브블록으로 분할되고 L1-P1(레이어 1의 파티션 번호 1)의 서브블록과 L1-P2(레이어 1의 파티션 번호 2)의 서브블록은 각각 16x32 블록 크기의 서브블록과 32x16 블록 크기의 서브블록으로 분할된다. L1-P1과 L1-P2의 서브블록은 각각 2 개의 서브블록으로 분할된 후 더 이상 분할되지 않으므로 레이어별 파티션 번호를 나타내지 않았다. 레이어 2(L2)에서, L2-P0(레이어 2의 파티션 번호 0)의 서브블록은 다시 4 개의 8x8 블록 크기의 서브블록으로 분할되고 L2-P3(레이어 2의 파티션 번호 3)은 2 개의 16x2 블록 크기의 서브블록으로 분할된다. 다시, 레이어 3(L3)에서, L3-P0(레이어 3의 파티션 번호 0)의 서브블록과 L3-P1(레이어 3의 파티션 번호 1)의 서브블록은 각각 4 개의 4x4 블록 크기의 서브블록으로 분할된다.분할 타입 지시 정보를 부호화하는 순서는 다음과 같다.
먼저 매크로블록의 분할 타입을 나타내는 분할 타입 지시 정보를 부호화한 후, 매크로블록이 4개의 서브블록으로 분할되었을 경우, 분할된 각 서브블록의 분할 타입 지시 정보를 계속해서 부호화한다. 예를 들어 NxN블록이 4개의 서브블록으로 분할 되었을 경우 NxN블록내 첫번째 (N/2)x(N/2) 서브블록의 분할 타입 지시 정보를 부호화하고 첫번째 (N/2)x(N/2) 서브블록 다시 4개의 서브블록으로 분할된 경우 분할된 (N/4)x(N/4)블록의 분할 타입 지시정보를 부호화한다. 분할된 (N/4)x(N/4)블록이 최소 서브블록의 크기이거나 4개의 더 작은 서브블록으로 분할되지 않은 경우 래스터 스캔 순서로 다음 (N/4)x(N/4) 블록의 분할 타입 지시 정보를 부호화한다. 만약 (N/4)x(N/4)블록이 최소 서브블록의 최소 서브블록의 크기가 아니고 다시 4개의 (N/8)x(N/8) 크기의 서브블록으로 분할된 경우 해당 블록 내 첫번째 (N/8)x(N/8) 서브블록부터 분할 타입 지시 정보를 부호화한다. 매크로블록내 모든 서브블록들의 분할 타입 지시 정보를 부호화할때까지 분할 타입 지시 정보를 부호화를 수행한다.도 16은 매크로블록의 레이어별 분할 타입 지시 정보를 순차적으로 부호화하는 과정을 설명하기 위한 예시도이다.
도 14에 도시한 매크로블록의 각 서브블록의 분할 타입에 대한 정보를 부호화하면 도 16과 같이 부호화할 수 있다. 도 14에서, '□' 안에 기재된 숫자는 각 서브블록의 분할 타입 지시 정보를 부호화하는 순서를 나타낸다. 매크로블록의 레이어별 분할 타입 지시 정보를 분할 타입 지시 정보 부호화 순서에 따라 순차적으로 부호화하면, 도 14에 도시한 순서에 따라 레이어별 분할 타입 지시 정보를 순차적으로 부호화한다.
먼저, 레이어 0의 64x64 블록 크기의 서브블록(L0-P0)은 4 개의 32x32 블록 크기의 서브블록들로 분할되었으므로, 분할 타입 지시 정보 3을 부호화한다. 64x64 블록 크기의 서브블록 내 4 개의 32x32 블록 크기의 서브블록 중 첫 번째 32x32 블록 크기의 서브블록(L1-P0)도 4 개의 16x16 블록 크기의 서브블록으로 분할되었으므로 분할 타입 지시 정보 3을 부호화한다. 레이어 1의 첫 번째 32x32 블록 크기의 서브블록(L1-P0) 내 4 개의 16x16 블록 크기의 서브블록 중 첫 번째 16x16 블록 크기의 서브블록(L2-P0)도 4 개의 8x8 블록 크기의 서브블록으로 분할되었으므로 분할 타입 3을 부호화하고 해당 16x16 블록 크기의 서브블록(L2-P0) 내 4 개의 8x8블록(L3-P0, L3-P1, L3-P2, L3-P3)은 더 이상 작은 서브블록으로 분할되지 않으므로 분할 타입 지시 정보 {3, 3, 0, 0}을 각각 부호화한다. 레이어 3의 서브블록들은 더 작은 서브블록으로 분할될 수 없으므로 레이어 3에 속하는 서브블록들의 분할 타입 지시 정보 는 부호화하지 않는다.
레이어 3 내 서브블록들의 분할 타입 지시 정보를 모두 부호화했으므로 레이어 2의 두번째 16x16 블록 크기의 서브블록(L2-P1)과 세 번째 16x16 블록 크기의 서브블록(L2-P2)의 분할 타입 지시 정보를 부호화하는데, 모두 더 이상 작은 블록으로 분할되지 않았으므로 분할 타입 지시 정보 0을 부호화한다. 네 번째 16x16 블록 크기의 서브블록(L2-P3)은 16x8 블록 크기의 서브블록으로 분할되었지만 분할 타입 지시 정보가 3이 아니므로 분할 타입 지시 정보 1만을 부호화한다. 레이어 2 내의 4 개 서브블록들의 분할 타입 지시 정보를 모두 부호화했으므로 레이어 1의 두 번째 32x32 블록 크기의 서브블록(L1-P1)의 분할 타입 지시 정보를 부호화하는데, 레이어 1의 두 번째 32x32 블록 크기의 서브블록(L1-P1)은 16x32 블록 크기의 서브블록으로 분할되었고 분할된 각 서브블록은 더 이상 작은 서브블록으로 분할되지 않았으므로 분할 타입 지시 정보 2를 부호화한다. 이와 같은 방식으로 레이어 1의 세 번째 32x32 블록 크기의 서브블록(L1-P2)와 레이어 1의 네 번째 32x32 블록 크기의 서브블록(L1-P3) 및 그 하위의 4 개의 16x16 블록 크기의 서브블록(L2-P0, L2-P1, L2-P2, L2-P3)의 분할 타입 지시 정보를 차례로 부호화하면, {1, 3, 0, 0, 0, 0}을 부호화한다.
이와 같은 부호화 방식에 따라 도 14에 도시한 매크로블록의 분할 타입에 대한 정보를 부호화하면, 도 16에 도시한 바와 같이 분할 타입 지시 정보 {3, 3, 3, 3, 3, 0, 0, 0, 0, 1, 2, 1, 3, 0, 0, 0, 0}가 부호화 된다.
또한, 분할 타입 지시 정보 부호화는 다음과 같은 순서도 가능하다.
레이어 0의 분할 타입 지시 정보 {3}을 부호화하고 레이어 1의 4 개의 서브블록(L1-P0, L1-P1, L1-P2, L1-P3)의 분할 타입 지시 정보 {3, 2, 1, 3}을 부호화하고 레이어 2의 8 개의 서브블록(L1-P0에 속하는 4 개의 서브블록과 L1-P3에 속하는 4 개의 서브블록)의 분할 타입 지시 정보 {3, 0, 0, 1, 0, 0, 0, 0}을 부호화하고 레이어 3의 4 개의 서브블록(L1-P0 내 L2-P0에 속하는 4 개의 서브블록)의 분할 타입 지시 정보 {3, 3, 0, 0}을 부호화할 수 있다. 이 경우, 분할 타입 지시 정보 {3, 3, 2, 1, 3, 3, 0, 0, 1, 0, 0, 0, 0, 3, 3, 0, 0}가 부호화된다.
이때 분할 타입 지시 정보를 부호화하는 방법은 이진 산술 부호화(Binary Arithmetic Coding) 또는 허프만 부호화(Huffman Coding) 등과 같은 무손실 압축 부호화를 이용하여 이진 비트 스트링(Bit String)으로 부호화될 수 있다.
또한, 이진 산술 부호화를 이용하는 경우, 각 분할 타입 지시 정보는 현재 부호화할 분할 타입 지시 정보의 레이어 번호에 따라 다른 이진값(Binary Value)을 이용할 수 있다.
또한, 실제 분할 타입 지시 정보 값을 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 부호화할 수 있다.
또한 도 16에 도시된 본 발명의 실시예에 따른 분할 타입을 사용하여 매크로블록을 분할하는 경우, 분할 타입 지시 정보는 현재 블록을 4개의 서브블록으로 분할하는지 하지 않는지의 여부를 나타내는 1 비트 길이의 플래그일 수도 있다.
A.1.5.2. 예측정보 부호화 방법
매크로블록의 분할 정보를 부호화 한 후, 부호화기는 각 서브블록의 예측 타입과 예측 타입에 따른 예측 데이터를 부호화한다.
각 픽쳐 종류에 따라 예측 타입과 예측 데이터를 나타내는 신택스와 부호화/복호화 방법은 다음과 같을 수 있다.
먼저 인트라 픽쳐의 경우, 인트라 픽쳐 내 모든 매크로블록은 인트라 예측만을 이용하여 부호화하므로 예측 타입 정보는 부호화 하지 않고 각 서브블록의 인트라 예측 모드를 나타내는 예측 데이터 만을 부호화 한다.
인터 픽쳐인 경우 인트라 예측 또는 인터 예측을 선택하여 부호화하므로 각 서브블록 별로 인트라 예측이 수행되었는지 인터 예측이 수행되었는지를 나타내는 예측 타입 정보를 부호화한 후, 인트라 블록인 경우 인트라 예측 모드 정보와 인터 블록인 경우 움직임 정보를 부호화한다.
이하에서는, 인트라 예측기(616) 또는 움직임 추정기(612)로부터 입력 받은 각 서브블록들의 예측 데이터와 예측 타입을 부호화하는 방법을 설명한다.
A.1.5.2.1. 예측타입 부호화 방법
예측 타입 정보를 부호화하는 경우, 픽쳐 종류에 따른 사용 가능한 예측 타입이 달라질 수 있다.
P 픽쳐인 경우, 각 서브블록이 사용할 수 있는 사용 가능한 예측 타입의 종류는 SKIP모드, 인트라 예측, 또는 움직임 정보를 부호화하는 인터 예측일 수 있다. 또한, B 픽쳐인 경우, 각 서브블록이 사용할 수 있는 사용 가능한 예측 타입의 종류는 SKIP모드, 인트라 예측, 움직임 정보를 부호화하는 인터 예측 또는 Direct 모드 일 수 있다.
또한 서브블록의 크기와 모양에 따라 사용 가능한 예측 타입의 종류가 달라질 수도 있다. 표 1 내지 표 4는 블록의 크기와 모양에 따른 사용 가능한 예측 타입과 종류를 나타낸 일례이다. 단, 표 1 내지 표 4의 블록에 따른 예측 타입의 종류는 일례일 뿐 다를 수 있다. 왜냐하면, 인트라 모드와 인터 모드를 모두 사용 가능한 경우 배경과 같이 텍스쳐가 없는 영역은 인터 모드를 사용하는 것이 좋으며, 이 경우 블록의 크기는 대체적으로 크기 때문이다. 반면, 복잡한 영역은 인트라 모드와 인터 모드 중 하나를 선택하도록 하기 위함인데, 이러한 복잡한 영역은 주로 서브블록의 크기가 작기 때문이다. 이는 16x16 크기 이상의 매크로블록의 경우 매크로블록 내 다양한 영역이 존재할 수 있는데, 매크로블록 단위로 인터 예측 또는 인트라 예측을 선택적으로 이용하여 예측 부호화하는 경우 부호화 효율이 저하될 수 있기 때문이다.
서브블록의 크기와 모양에 따른 사용 가능한 예측 타입의 종류가 1가지인 경우, 예측 타입 정보는 부호화하지 않으며, 2가지 이상인 경우에만 예측 타입 정보를 부호화한다.
사용 가능한 예측 타입의 종류가 인트라 예측 또는 인터 예측의 두가지 인 경우, 1비트길이의 syntax를 이용하여 인트라 예측인지 인터 예측인지를 나타낼 수 있다.
만약 사용 가능한 예측 타입의 종류가 3가지인 경우 1비트 또는 2비트 길이의 syntax를 이용하여 예측 타입을 나타낼 수 있다. 예를 들어 사용 가능한 예측 타입의 종류가 SKIP, 인터 예측, 인트라 예측의 3가지인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 부호화한 후, SKIP 모드가 아닌 경우, 1 비트를 더 부호화하여 인터 예측된 서브블록인지 인트라 예측된 서브블록인지를 나타낼 수 있다. 또는 사용 가능한 예측 타입 종류가 Direct, 인터 예측, 인트라 예측인 경우에도 Direct 모드인지를 나타내는 1비트를 부호화한 후, Direct 모드가 아닌 경우, 인트라 예측인지 인터 예측인지를 나타내는 1비트를 더 부호화 할 수도 있다.
사용 가능한 예측 타입의 종류가 SKIP, Direct, 인터 예측의 3가지인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 부호화한 후, SKIP 모드가 아닌 경우, 1비트를 더 부호화하여 Direct 예측된 서브블록인지 인터 예측된 서브블록인지를 나타낼 수 있다.
만약 사용 가능한 예측 타입의 종류가 4가지인 경우, 1비트 내지 3비트 길이의 syntax를 이용하여 예측 타입을 부호화할 수도 있다. 예를 들어 사용 가능한 예측 타입의 종류가 SKIP, Direct, 인터 예측, 인트라 예측인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 부호화한 후, SKIP 모드가 아닌 경우, 1비트를 더 부호화하여 Direct 모드인지 아닌지를 나타낸다. 만약 SKIP 모드도 아니고 Direct모드도 아닌 경우, 1비트를 부호화하여 인터 예측된 서브블록인지 인트라 예측된 서브블록인지를 나타낼 수 있다.
또는 2비트의 고정 길이의 Syntax를 이용하여 예측 타입을 부호화할 수도 있다.
또는 약속된 Table을 이용하여 예측 타입을 부호화할 수도 있다.
이때, 예측 타입을 나타내는 Syntax를 가변길이 부호화하는 방법은 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 부호화할 수 있다.
또한, 현재 블록의 예측 타입을 부호화할 때 주변 블록의 예측 타입 정보를 이용하여 산술 부호화할 수도 있다.
여기서는 예측 타입을 나타내는 syntax를 한가지로 기술하였으나 복수개의 syntax를 이용하여 예측 타입을 부호화할 수도 있다. 예를 들어 SKIP모드인지 아닌지를 나타내기 위한 SKIP_flag와 direct 모드인지 아닌지를 나타내는 Direct_flag, 인트라 블록인지 인터 블록인지를 나타내기 위한 pred_type의 3가지 syntax가 사용될 수도 있다. 또한 각각의 syntax를 각각 다른 방법을 이용하여 부호화할 수도 있다.
A.1.5.2.2. 예측모드 정보 부호화 방법
예측 타입이 SKIP모드인 서브블록에 대해서는 현재 서브블록에 대해서는 더 이상 부호화할 데이터가 없으므로 다음 서브블록의 부호화 데이터를 부호화한다.
픽쳐의 종류가 B픽쳐이고 예측 타입이 DIRECT 모드인 서브블록인 경우, L0 예측, L1 예측, 양방향 예측인지를 나타내는 예측 중 예측 방향을 나타내는 정보인 Pred_dir를 부호화한다.
픽쳐의 종류가 P 픽쳐이고 예측 타입이 움직임 정보를 부호화하는 서브블록이 경우, 차이 움직임 벡터(MVD)와 참조픽쳐를 나타내는 참조픽쳐 인덱스(ref_idx)를 부호화한다. 픽쳐의 종류가 B픽쳐인 경우, Pred_dir를 부호화하고 Pred_dir에 따른 한 개 또는 두개의 움직임 벡터 정보와 참조픽쳐 인덱스를 부호한다. 단, 참조할 수 있는 참조 영상이 한장인 경우, 참조픽쳐 인덱스는 부호화하지 않는다.
인트라 픽쳐 내 서브블록 또는 인터 픽쳐 내 예측 타입 정보에 의해 식별되는 예측 타입이 인트라 예측된 서브블록에 대해서는 인트라 예측 모드 정보를 부호화한다. 예를 들어 서브블록의 크기가 4x4인 서브블록인 경우, 9가지 인트라 예측 모드들 중 선택된 예측 모드를 나타내는 예측 모드를 부호화한다.
A.2. 복호화 장치
도 7은 본 발명의 일 실시예에 따른 영상 복호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 영상 복호화 장치는 복호화기(710), 예측기(720), 복원기(730), 필터(740) 및 프레임 메모리(750)를 포함하여 구성될 수 있다.
복호화기(710)는 입력되는 비트스트림으로부터 매크로블록 복호화에 필요한 3가지 타입의 정보를 추출한다.
복호화기(710)는 첫번째로, 현재 복호화하고자 하는 매크로블록 내 각 서브블록들의 크기와 모양을 나타내는 분할정보를 비트스트림으로부터 추출하고 엔트로피 복호화한다. 그 후 복호화기(710)는 복원된 분할 정보를 이용하여 매크로블록이 어떠한 형태의 서브블록으로 분할되었는지를 식별할 수 있다. 두번째로 복호화기(710)는 각 서브블록들이 인트라 예측 되었는지 인터 예측 되었는지를 나타내는 예측 타입 정보와 인트라 또는 인터 예측에 필요한 예측 모드 정보를 엔트로피 복호화하여 추출한다. 이때 복호화 할 예측 데이터의 종류와 예측 데이터 복호화 방법은 각 블록이 인트라 블록인지 인터 블록인지에 따라 달라지게 되는데 복원할 블록이 인터 블록인 경우에는 비트스트림으로부터 각 서브블록들의 움직임 보상에 필요한 참조픽쳐 정보와 움직임 벡터 등과 같은 움직임에 대한 정보를 추출하여 복호화하고, 인트라 블록인 경우에는 비트스트림으로부터 휘도 성분과 색차성분의 인트라 예측 모드에 대한 정보를 추출하여 복호화한다.
마지막으로 복호화기(710)는 잔여신호 복호화에 필요한 정보들을 복호화한다. 먼저 각 서브블록에 0이 아닌 변환계수가 있는지를 나타내는 정보, 예컨대 CBP,를 복호화하고 0이 아닌 변환계수가 있는 블록들에 대해서는 변환의 종류를 나타내는 변환정보와 양자화된 변환계수를 복호화한다.
예측기(720)는 현재 복호화하고자 하는 현재 블록을 예측하는데, 움직임 보상기(722)와 인트라 예측기(724)를 포함하여 구성될 수 있다. 움직임 보상기(722)는 현재 블록이 인터 블록인 경우, 복호화기에 의해 복호화되어 복원된 움직임 벡터를 이용하여 프레임 메모리에 저장된 참조 픽처에서 현재 블록의 크기만큼의 화소를 가져와서 예측 블록을 생성한다. 인트라 예측기(724)는 현재 블록이 인트라 블록인 경우, 복호화기(710)에 의해 복호화되어 복원된 인트라 예측 모드에 따라 현재 블록을 예측하여 예측 블록을 생성한다.
복원기(730)는 복호화기(710)에 의해 복호화된 양자화된 변환계수를 역양자화하고 복호화기에서 추출하고 복원한 변환종류를 이용하여 역양자화된 변환계수를 역 변환하여 잔여 신호를 생성한 후, 생성된 잔여신호를 예측기에 의해 생성된 예측 블록을 더하여 복원 블록을 생성한다. 생성된 복원 블록은 필터(740)에서 필터링되어 프레임 메모리(750)에 저장되고, 다음 매크로블록이나 다음 픽처를 복원하는 데 이용된다.
이하에서는, 본 발명의 부호화 방법에 따른 복호화기의 구성 요소들 중 기존 복호화기와 다르게 동작하는 복호화 장치의 구성 요소들의 동작방법에 대해서 설명한다.
A.2.1. (가변길이) 복호화기
복호화기(710)에서 비트스트림으로부터 분할 정보를 추출하고 복호화한 후, 복원된 분할정보를 이용하여 매크로블록을 하나 이상의 서브블록으로 분할한다. 이후, 매크로블록 내 서브블록들의 크기와 모양 정보를 이용하여 각 서브블록들의 예측 타입과 예측 모드 정보를 비트스트림으로부터 추출하고 복호화한다.
A.2.1.1. 분할정보 복호화 방법
이하에서는, 매크로블록 내 예측 또는 변환을 위해 사용된 서브블록들의 크기와 모양을 나타내는 정보인 분할 정보를 복호화하는 본 발명의 실시예에 따른 방법을 설명한다.
부호화기와 약속된 레이어별 사용 가능한 서브블록 타입을 이용하여 분할 타입 지시 정보를 영상 부호화 장치와 약속된 순서로 복호화를 수행한다. 예를 들어 레이어별 사용 가능한 서브블록 타입은 도 15과 도 16에 도시된 서브블록 타입일 수 있으며 분할 타입 지시 정보를 복호화하는 순서는 도 14 또는 도 16에 도시된 순서에 따라 순차적으로 복호화할 수 있다.
분할 정보 부호화방법에 설명을 위해 사용한 예시와 동일한 조건에서의 복호화 방법을 설명하도록 한다. 도 15에 도시한 서브블록 타입을 이용하여 도 14에 도시된 순서를 이용하여 분할 정보를 복호화한다.
복호화기(710)는 비트스트림으로부터 첫번째 분할 타입 지시 정보를 추출하고 복호화하여 매크로블록 레이어 0의 분할 타입 지시 정보를 복원한다. 복원한 분할 타입 지시 정보값이 0인 경우 매크로블록은 서브블록으로 분할되지 않았음을 의미하므로 현재 매크로블록의 분할 타입 지시 정보 복호화를 끝낸다. 이후 매크로블록 NxN 크기로 예측 또는 역변환이 수행된다.
복원한 레이어 0의 분할 타입 지시 정보가 1인 경우 매크로블록을 두 개의 서브블록으로 분할하고 현재 매크로블록의 분할 타입 지시 정보 복호화를 마친다. 이후 매크로블록은 단위로 예측 또는 역변환이 수행된다.
복원한 레이어 0의 분할 타입 지시 정보값이 2인 경우 매크로블록을 두 개의 서브블록으로 분할하고 현재 매크로블록의 분할 타입 지시 정보 복호화를 마친다. 이후 매크로블록은 단위로 예측 또는 역변환이 수행된다.
복원한 레이어 0의 분할 타입 지시 정보값이 3인 경우 매크로블록을 네 개의 서브블록으로 첫번째 서브블록 (레이어 1의 파티션 번호 0인 서브블록)의 분할 타입 지시 정보를 복호화한다. 여기서 서브블록들의 레이어 번호는 상위 레이어 번호에서 1이 증가한 값으로 1이 된다.
비트스트림으로부터 추출하여 복호화한 레이어 1의 파티션 번호 0인 서브블록의 분할 타입 지시 정보가 3이 아닌 경우 매크로블록내 두번째 서브블록(레이어 1의 파티션 번호 1인 블록)의 분할 타입 지시 정보를 복호화한다.
비트스트림으로부터 추출하여 복호화한 레이어 1의 파티션 번호 0인 서브블록의 분할 타입 지시 정보가 3인 경우, 현재 서브블록은 4개의 서브블록으로 나뉘어지며 이때의 레이어 번호는 2가 된다. 이후 레어어 2의 파티션 번호 0에 해당하는 서브블록의 분할 타입 지시 정보를 비트스트림으로부터 추출하여 복호화한다.
만약 파티션 번호가 Y인 현재 서브블록의 레이어 번호 K가 레이어 번호가 가질 수 있는 최대값인 경우, 복호화 한 현재 서브블록(즉, 레이어 K-파티션 번호 Y)의 분할 타입 지시 정보가 3이면 현재 서브블록을 4개의 서브블록으로 분할한 후 래스터 스캔 순서로 다음 서브블록(레이어 K-파티션 번호 Y+1 인 서브블록)의 분할 타입 지시 정보를 복호화한다.
만약 현재 서브블록의 파티션 번호가 현재 레이어에 속하는 파티션 번호의 최대값인 경우, 상위 레이어의 아직 복호화하지 않은 서브블록들의 분할 타입 지시 정보를 복호화한다.
이하에서는 매크로블록의 크기가 64x64, 최대 분할 레이어가 4인 경우, 도 14의 실시예에 따른 복호화 방법을 설명한다. 도 14의 실시예에서 부호화기에서 분할 타입 지시 정보로 부호화한 값은 {3, 3, 3, 3, 3, 0, 0, 0, 0, 1, 2, 1, 3, 0, 0, 0, 0}이다.
먼저 레이어 0의 분할 타입 지시 정보를 복호화한다.
복호화한 분할 타입 지시 정보가 3이므로 64x64 매크로블록을 4개의 32x32블록(L1-P0, L1-P1, L1-P2, L1-P3)으로 분할한다.
각 32x32 서브블록은 더 작은 서브블록으로 분할될 수 있으므로 64x64 매크로블록 내 첫번째 32x32 서브블록 (L1-P0)의 분할 타입 지시 정보를 복호화한다.
두번째로 복호화한 분할 타입 지시 정보가 3이므로 L1-P0 서브블록을 4개의 16x16서브블록(L2-P0, L2-P1, L2-P2, L2-P3)으로 분할하고 L2-P0의 분할 타입 지시 정보를 비트스트림으로부터 추출하여 복호화한다.
세번째로 복호화한 분할 지시 정보가 3이므로 16x16크기의 L2-P0 서브블록을 4개의 8x8 서브블록 (L3-P0, L3-P1, L3-P2, L3-P3)으로 분할하고 L3-P0의 분할 타입 지시 정보를 비트스트림으로부터 추출하여 복호화한다.
네번째로 복호화한 분할 지시 정보가 3이므로 8x8크기의 L3-P0 서브블록을 4개의 4x4 서브블록으로 분할한다. 여기서 4x4 서브블록의 최대 분할 레이어가 4이므로 더 이상 작은 서브블록으로 분할될 수 없으므로 L3-P1의 분할 타입 지시 정보를 비트스트림으로부터 추출하여 복호화한다.
다섯번째로 복호화한 분할 지시 정보가 3이므로 8x8크기의 L3-P1 서브블록을 4개의 4x4 서브블록으로 분할하고 L3-P2의 분할 타입 지시 정보를 비트스트림으로부터 추출하여 복호화한다.
여섯번째로 복호화한 분할 지시 정보가 0이므로 8x8크기의 L3-P2 서브블록은 분할하지 않으며 다음 서브블록인 L3-P3의 분할 타입 지시 정보를 비트스트림으로부터 추출하여 복호화한다.
일곱번째로 복호화한 분할 지시 정보가 0이므로 8x8크기의 L3-P3 서브블록도 분할하지 않는다. 여기서 현재 서브블록의 파티션 번호가 현재 레이어어 속하는 파티션 번호의 최대값이므로 상위 레이어 L2-P1의 분할 타입 지시 정보를 비트스트림으로부터 추출하여 복호화한다.
여덟번째로 복호화한 분할 지시 정보가 0이므로 L2-P1의 블록크기는 16x16이 된다.
동일한 방식으로 L2-P2와 L2-P3의 분할 타입 지시 정보를 비트스트림으로부터 추출하여 복호화하여 각각의 서브블록 타입을 결정한다.
여덟번째로 복호화한 분할 지시 정보도 0이므로 L2-P2의 블록크기는 16x16이고 열번째로 복호화한 분할 지시 정보는 1이므로 L2-P3는 두개의 16x8 서브블록으로 분할한다.
레이어 2에 속하는 서브블록들의 분할 지시 정보를 모두 복호화했으므로 상위 레이어인 레이어 1의 두번째 32x32 크기의 서브블록 L1-P1의 분할 타입 지시 정보를 복호화한다.
열한번째로 복호화한 분할 지시 정보는 2이므로 L1-P1에 해당하는 32x32블록을 두개의 16x32 서브블록으로 분할하고 L1-P2의 분할 타입 지시 정보를 복호화한다.
열두번째로 복호화한 분할 지시 정보는 1이므로 L1-P2에 해당하는 32x32블록을 두개의 32x16 서브블록으로 분할하고 L1-P3의 분할 타입 지시 정보를 복호화한다.
열세번째로 복호화한 분할 지시 정보는 3이므로 L1-P3에 해당하는 32x32블록을 네개의 16x16서브블록(L2-P0, L2-P1, L2-P2, L2-P3)으로 분할하고 동일한 방법으로 각 서브블록들의 분할 타입 지시 정보를 복호화한다.
열네번째로 복호화한 분할 지시 정보는 0이므로 L2-P0의 서브블록 타입은 16x16이며 더 이상 분할되지 않았으므로 다음 서브블록인 L2-P1이 분할 타입 지시 정보를 복호화한다.
열다섯번째로 복호화한 분할 지시 정보는 0이므로 L2-P1의 서브블록 타입은 16x16이며 더 이상 분할되지 않았으므로 다음 서브블록인 L2-P2이 분할 타입 지시 정보를 복호화한다.
열여섯번째로 복호화한 분할 지시 정보는 0이므로 L2-P2의 서브블록 타입은 16x16이며 더 이상 분할되지 않았으므로 다음 서브블록인 L2-P3이 분할 타입 지시 정보를 복호화한다.
열일곱번째로 복호화한 분할 지시 정보는 0이므로 L2-P3의 서브블록 타입은 16x16이며 매크로블록 내 모드 서브블록들의 타입이 결정되었으므로 현재 매크로블록 복호화를 위한 분할 지시 정보 복호화를 마친다.
이하에서는 분할 타입 지시 정보 부호화 순서가 상위 레이어의 분할 타입 지시 정보를 모두 부호화하고 하위 레이어의 분할 지시 정보를 부호화할 때 분할 타입 지시 정보를 복호화하는 방법을 도 14의 실시예를 사용하여 설명하면 다음과 같다.
도 14의 실시예에서 부호화기에서 분할 타입 지시 정보로 부호화한 값은 {3, 3, 2, 1, 3, 3, 0, 0, 1, 0, 0, 0, 0, 3, 3, 0, 0}이다.
먼저 레이어 0의 분할 타입 지시 정보를 복호화한다.
레이어 0의 분할 타입 지시 정보가 3이므로 64x64 매크로블록을 4개의 32x32블록(L1-P0, L1-P1, L1-P2, L1-P3)으로 분할한다.
레이어 1에 속하는 서브블록은 4개이므로 4개의 분할 타입 지시 정보를 복호화한다. 비트스트림으로부터 복원한 서브블록(L1-P0, L1-P1, L1-P2, L1-P3)의 분할 타입 지시 정보 {3, 2, 1, 3}이므로 L1-P0와 L1-P3은 4개의 16x16으로 분할하고, L1-P1은 두개의 16x32블록, L1-P2은 두개의 32x16 블록으로 분할한다.
L1-P0와 L1-P3에 속하는 레이어2의 8개의 8x8 서브블록들의 분할 타입 지시 정보를 비트스트림으로부터 추출하고 복호화한다.
복원한 L1-P0에 속하는 4개의 서브블록 (L2-P0, L2-P1, L2-P2, L2-P3)의 분할 타입 지시 정보가 {3, 0, 0, 1}이고 L1-P3에 속하는 4개의 서브블록 (L2-P0, L2-P1, L2-P2, L2-P3)의 분할 타입 지시 정보가 {0, 0, 0, 0}이므로 L1-P0에 속하는 L2-P0은 4개의 4x4 서브블록으로 분할하고, L2-P3은 두개의 8x4 서브블록으로 분할한다.
L1-P0에 속하는 L2-P1, L2-P2과 L1-P3에 속하는 4개의 서브블록들은 분할 타입 지시 정보가 모두 0이므로 분할하지 않는다.
L1-P0에 속하는 서브블록 L2-P0은 4개의 서브블록으로 분할 되었지만 더 이상 작은 서브블록으로 분할될 수 없으므로 현재 매크로블록 복호화를 위한 분할 타입 지시 정보 복호화를 마친다.
이때 분할 타입 지시 정보를 엔트로피 복호화하는 방법은 이진 산술 부호화(Binary Arithmetic Coding) 또는 허프만 부호화(Huffman Coding) 등과 같은 무손실 압축 부호화/복호화 방법들 중 부호화기와 약속된 방법을 이용해서 엔트로피 복호화한다.
또한, 실제 분할 타입 지시 정보 값을 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 복호화할 수 있다.
또한, 부호화기에서 분할 타입 지시 정보를 부호화하는 방법으로 이진 산술 부호화를 이용하고 분할 타입 지시 정보의 레이어 번호에 따라 다른 이진 테이블을 이용한 경우, 복호화기도 부호화기와 약속된 레이어 번호에 따른 이진 테이블을 사용하여 엔트로피 복호화를 수행한다.
또한 도 16에 도시된 본 발명의 다른 실시예에 따른 분할 타입을 사용하도록 부호화기와 약속된 경우, 분할 타입 지시 정보 복호화를 위해 1비트를 엔트로피 복호화하여 현재 서브블록이 4개의 서브블록으로 분할되었는지의 여부를 판단할 수도 있다.
A.2.1.2. 예측정보 복호화 방법
복호화기에서는 매크로블록 내 각 서브블록의 예측 타입 정보와 예측 타입에 따른 예측 데이터를 복호화한다.
이때 예측 타입 정보 복호화 방법은 는 픽쳐의 종류에 따라 비트스트림으로부터 복호화하지 않을 수도 있다. 예를 들어 인트라 픽쳐인 경우, 예측 타입 정보를 비트스트림으로부터 추출하여 복호화하지 않고, 인트라 픽쳐 내 모든 매크로블록과 매크로블록 내 서브블록들은 모두 인트라 예측을 수행하도록 한다.
인터 픽쳐인 경우, 비트스트림으로부터 예측 타입 정보를 추출하여 복호화한 후, 각 블록들이 인트라 예측되었는지 인터 예측이 되었는지는 나타내는 예측 타입을 복원한다.
이후, 픽쳐의 종류 또는 비트스트림을 통해 전송받은 예측 타입 정보에 의해 결정되는 각 블록의 예측 타입에 따른 인트라 모드 정보 또는 움직임 정보를 비트스트림으로부터 추출하고 복호화한다.
A.2.1.2.1. 예측 타입 정보 복호화 방법
인터 픽쳐와 같이 비트스트림으로부터 전송받은 예측 타입 정보에 의해 서브블록들의 예측 타입이 결정되는 경우, 예측 타입 정보 복호화 과정을 수행한다. 이하에서는 예측 타입 정보 복호화 과정에 대하여 설명한다.
픽쳐의 종류와 서브블록의 크기와 모양에 따라 사용 가능한 예측 타입의 종류는 다르며, 사용가능한 예측 타입의 종류에 따라 예측 타입 정보 복호화 방법은 달라지게 된다.
예를 들어, P 픽쳐인 경우 각 서브블록이 사용할 수 있는 사용 가능한 예측 타입의 종류는 SKIP모드, 인트라 예측, 또는 움직임 정보를 부호화하는 인터 예측일 수 있다.
B 픽쳐인 경우, 각 서브블록이 사용할 수 있는 사용 가능한 예측 타입의 종류는 SKIP모드, 인트라 예측, 움직임 정보를 부호화하는 인터 예측 또는 Direct 모드 일 수 있다.
또한 서브블록의 크기와 모양에 따라 사용 가능한 예측 타입의 종류는 전술한 표 1 내지 표 4과 같이 달라질 수 있다.
픽쳐의 종류, 서브블록의 크기와 모양에 따른 사용 가능한 예측 타입의 종류가 1가지고 결정된 경우, 예측 타입 정보는 복호화하지 않으며, 2가지 이상인 서브블록들에 대해서만 예측 타입 정보 추출과 복호화 과정을 수행한다.
복호화 대상 서브블록의 사용 가능한 예측 타입의 종류가 2가지인 경우, 비트스트림으로부터 1 비트를 추출하고 엔트로피 복호화하여 인트라 예측과 인터 예측 중 선택된 예측 타입을 설정한다.
사용 가능한 예측 타입의 종류가 3가지인 경우, 비트스트림으로부터 1비트 또는 2비트를 추출하고 복호화한다. 예를 들어 사용가능한 예측 타입의 종류가 SKIP, 인터 예측, 인트라 예측의 3가지인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 복호화한 후, SKIP 모드가 아닌 경우, 1 비트를 더 비트스트림으로부터 추출하고 복호화하여 인터 예측된 서브블록인지 인트라 예측된 서브블록인지를 결정한다. 또는 사용 가능한 예측 타입 종류가 Direct, 인터 예측, 인트라 예측인 경우에도 Direct 모드인지를 나타내는 1비트를 비트스트림으로부터 추출하고 복호화한 후, Direct 모드가 아닌 경우, 인트라 예측인지 인터 예측인지를 나타내는 1비트를 더 추출하고 복호화 할 수도 있다.
사용 가능한 예측 타입의 종류가 SKIP, Direct, 인터 예측의 3가지인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 복호화한 후, SKIP 모드가 아닌 경우, 1비트를 더 복호화하여 Direct 예측된 서브블록인지 인터 예측된 서브블록인지를 결정할 수도 있다.
만약 사용 가능한 예측 타입의 종류가 4가지인 경우, 1비트 내지 3비트를 비트스트림으로부터 추출하고 복호화하여 예측 타입을 복호화할 수도 있다. 예를 들어 사용 가능한 예측 타입의 종류가 SKIP, Direct, 인터 예측, 인트라 예측인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 복호화한 후, SKIP 모드가 아닌 경우, 1비트를 더 복호화하여 Direct 모드인지 아닌지를 나타낸다. 만약 SKIP 모드도 아니고 Direct모드도 아닌 경우, 1비트를 복호화하여 인터 예측된 서브블록인지 인트라 예측된 서브블록인지를 결정할 수도 있다.
또는 비트스트림으로부터 2비트를 추출하고 복호화하여 예측 타입을 복호화할 수도 있다.
또는 부호화기와 약속된 Table을 이용하여 예측 타입을 복호화할 수도 있다.
이때, 예측 타입을 나타내는 Syntax를 가변길이 복호화하는 방법은 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 방법을 이용하여 복호화할 수 있다.
또한, 현재 블록의 예측 타입을 복호화할 때 주변 블록의 예측 타입 정보를 이용하여 산술 복호화할 수도 있다.
여기서는 예측 타입을 나타내는 syntax를 한가지로 기술하였으나 복수개의 syntax를 이용하여 예측 타입을 복호화할 수도 있다. 예를 들어 SKIP모드인지 아닌지를 나타내기 위한 SKIP_flag와 direct 모드인지 아닌지를 나타내는 Direct_flag, 인트라 블록인지 인터 블록인지를 나타내기 위한 pred_type의 3가지 syntax가 사용될 수도 있다. 또한 각각의 syntax를 각각 다른 방법을 이용하여 복호화할 수도 있다.
A.2.1.2.2. 예측 모드 정보 복호화 방법
예측 타입이 SKIP모드인 서브블록에 대해서는 현재 서브블록에 대해서는 더 이상 복호화할 데이터가 없으므로 다음 서브블록의 부호화 데이터를 복호화한다.
픽쳐의 종류가 B 픽쳐이고 예측 타입이 DIRECT 모드인 서브블록인 경우, L0 예측, L1 예측, 양방향 예측인지를 나타내는 예측 중 예측 방향을 나타내는 정보인 Pred_dir를 복호화한다.
픽쳐의 종류가 P 픽쳐이고 예측 타입이 움직임 정보를 복호화하는 서브블록이 경우, 차이 움직임 벡터(MVD)와 참조픽쳐를 나타내는 참조픽쳐 인덱스(ref_idx)를 복호화한다. 픽쳐의 종류가 B픽쳐인 경우, Pred_dir를 복호화하고 Pred_dir에 따른 한 개 또는 두개의 움직임 벡터 정보와 참조픽쳐 인덱스를 복호화한다. 단, 참조할 수 있는 참조 영상이 한장인 경우, 참조픽쳐 인덱스는 복호화하지 않는다.
인트라 픽쳐 내 서브블록 또는 인터 픽쳐 내 예측 타입 정보에 의해 식별되는 예측 타입이 인트라 예측된 서브블록에 대해서는 인트라 예측 모드 정보를 복호화한다. 예를 들어 서브블록의 크기가 4x4인 서브블록인 경우, 9가지 인트라 예측 모드들 중 선택된 예측 모드를 나타내는 예측 모드를 복호화한다.
이상에서 전술한 바와 같이, 본 발명의 일 실시예에 따른 영상 부호화 장치와 영상 복호화 장치는 임의의 크기의 블록을 이용하여 영상을 부호화하고 복호화할 수 있으며, 각 서브블록 별로 SKIP, DIRECT, 인트라 예측, 인터 예측 등의 다양한 예측 타입과 모드를 사용하여 부호화/복호화할 수 있다.
[실시예 2]
B. 예측 타입 정보에 소요되는 비트를 절약하면서 가변 크기의 매크로블록 내 서브블록에 대해 인트라 예측 또는 인터 예측을 선택적으로 이용하여 부호화/복호화 하는 장치 및 방법
이하에서는 본 발명의 다른 실시예로서, 예측 타입 정보에 소요되는 비트를 절약하면서 가변 크기의 매크로블록 내 서브블록에 대해 인트라 예측 또는 인터 예측을 선택적으로 이용하여 부호화하고 복호화하는 장치와 방법에 대해 예를 들어 설명한다.
본 발명의 다른 실시예에 따른 영상 부호화 방법은 매크로블록 크기와 타입에 따른 사용가능한 예측 타입만을 사용하여 매크로블록을 부호화한 후, 부호화 비용을 비교하여 매크로블록의 타입을 결정하고 선택된 매크로블록의 타입과 매크로블록의 타입에 따른 사용가능한 예측 타입과 예측 모드에 따라 각 서브블록을 예측 부호화하여 비트스트림을 생성한다.
예를 들어 임의의 크기의 매크로블록을 인트라 예측만을 사용했을 때의 부호화 비용, 인터예측만 사용했을 때의 부호화 비용, 인트라 예측과 인터 예측을 모두 사용했을 때의 부호화 비용을 비교하여 매크로블록의 타입을 결정하고 선택된 매크로블록의 타입과 각 서브블록의 선택된 예측방식에 따라 각 서브블록을 예측 부호화하여 비트스트림을 생성한다. 이때 결정된 매크로블록의 타입이 인트라 예측과 인터 예측을 모두 사용하는 매크로블록 타입인 경우에만 매크로블록 내 서브블록들에 대해서 예측 타입 정보와 예측 모드 정보를 부호화하고 그 외의 매크로블록 타입인 경우, 예측 모드 정보만을 부호화하여 비트스트림을 생성한다.
또한, 매크로블록의 크기에 따라 인터 예측과 인트라 예측 중 하나만을 이용하여 예측 부호화하거나 인터 예측 또는 인트라 예측을 선택적으로 이용하여 예측 부호화할 수 있다. 즉 매크로블록 크기에 따라 사용가능한 매크로블록의 타입이 다를 수 있다. 예를 들어, 매크로블록의 크기가 32x32 이상인 경우, 매크로블록 내 각 서브블록 단위로 인트라 예측 또는 인터 예측을 선택하여 사용할 수 있는 매크로블록 타입을 이용하여 예측 부호화할 수 있지만, 16x16 크기 또는 8x8 크기의 매크로블록인 경우, 매크로블록 단위로 인트라 예측 또는 인터 예측을 선택적으로 사용한다. 이때 매크로블록 내 서브블록 단위로 인트라 예측 또는 인터 예측을 선택하여 부호화할 수 있는 경우 매크로블록 타입인 경우에만, 서브블록 단위로 예측 타입 정보를 부호화한다.
이는, 매크로블록의 크기가 큰 경우 매크로블록 내 다양한 영역이 존재할 수 있다. 예를 들어 64x64 매크로블록인 경우 매크로블록 내 배경영역과 이전 픽쳐에 없던 새로운 영역이 매크로블록 내 포함될 수 있는데, 매크로블록 단위로 인트라 예측 또는 인터 예측을 선택하도록 하면 부호화 효율이 떨어질 수 있다. 그러므로 큰 매크로블록인 경우 매크로블록 내 다양한 예측 타입과 모드 사용 가능하게 하여 부호화 효율을 높이고, 작은 매크로블록인 경우 매크로블록 단위로 인트라 예측 또는 인터 예측을 선택하여 사용하도록 하여 예측 타입의 종류를 최소한으로 줄여 예측 타입 정보에 필요한 비트수 절약하도록 하기 위함이다.
B.1. 부호화 장치
이러한 본 발명의 또 다른 실시예에 따른 영상 부호화 장치는 도 6을 통해 전술한 본 발명의 일 실시예에 따른 영상 부호화 장치와 동일 또는 유사하게 구성될 수 있다.
다만, 본 발명의 또 다른 실시예에 따른 영상 부호화 장치는 매크로블록 타입에 따른 예측 타입만을 이용하여 매크로블록을 부호화하고, 부호화 비용을 비교하여 매크로블록 타입과 매크로블록 내 서브블록들의 예측 타입을 결정하고, 선택된 예측 방식에 따라 각 서브블록을 예측 부호화하여 비트스트림을 생성한다. 예를 들어 인트라 예측만을 사용했을 때의 부호화 비용, 인터 예측만 사용했을 때의 부호화 비용, 인트라 예측과 인터 예측을 모두 사용했을 때의 부호화 비용을 비교하여 매크로블록의 타입을 결정하고 선택된 예측 방식에 따라 각 서브블록을 예측 부호화하여 비트스트림을 생성한다.
본 발명의 또 다른 실시예에 따른 영상 부호화 장치는 매크로블록내 각 서브블록이 인트라 예측 또는 인터예측을 선택적으로 사용할 수 있는 매크로블록 타입인 경우, 각 서브블록에 대해 인터 예측을 이용하여 부호화하는지 또는 인트라 예측을 이용하여 부호화하는지 여부를 나타내는 예측 타입에 대한 정보를 부호화하여 비트스트림에 포함시킬 수 있다.
따라서, 본 발명의 또 다른 실시예에 따르면, 하나의 매크로블록 내에 모든 서브블록이 인터 예측을 이용하여 예측 부호화될 수도 있고, 모든 서브블록이 인트라 예측을 이용하여 예측 부호화될 수도 있으며, 일부 서브블록은 인터 예측 부호화되고 나머지 서브블록은 인트라 예측 부호화될 수 있으며 예측 타입 정보에 소요되는 비트를 절약할 수 있다.
이하에서는, 분할 정보 부호화 후, 매크로블록 타입과 예측 타입 및 예측 모드 정보를 포함하는 예측 정보를 부호화하는 방법에 대해서 설명한다.
B.1.1. 예측정보 부호화 방법
매크로블록 타입은 SKIP 매크로블록, 인트라 매크로블록, 인터 매크로블록, Mixed 인터/인트라 매크로블록이 있을 수 있다. SKIP 매크로블록은 매크로블록 내 모든 서브블록이 SKIP 모드만을 이용하여 부호화하며, 인트라 매크로블록은 매크로블록 내 모든 서브블록이 인트라 예측만을 이용하여 부호화한다. 인터 매크로블록은 매크로 블록 내 모든 서브블록이 움직임 정보 또는 잔여신호 정보를 전송하는 인터예측을 이용하여 부호화한다. Mixed-인터/인트라 매크로블록은 매크로블록내 서브블록 단위로 인트라 예측 또는 움직임 정보 또는 잔여신호 정보를 전송하는 인터예측을 이용하여 부호화한다.
또한, 전술한 매크로블록 타입들 중 매크로블록 타입으로 인트라 매크로블록과 인터 매크로블록만 있을 수 있다. 이 경우, 인트라 매크로블록내 모든 서브블록은 인트라 예측만을 이용하여 부호화하고 인터 매크로블록 내 모든 서브블록은 서브블록 단위로 인트라, 또는 움직임 추정 및 보상을 수행하는 인터 예측이 선택하여 부호화할 수 있다.
매크로블록의 분할 정보를 부호화 한 후, 부호화기는 매크로블록 타입을 부호화한다.
여기서 매크로블록의 타입은 픽쳐의 종류에 따라 고정되거나 부호화 비용을 비교하여 선택하여 결정할 수 있다.
예를 들어 인트라 픽쳐인 경우, 픽쳐 내 모든 매크로블록의 타입은 인트라 매크로블록으로 고정되고 이때 매크로블록 타입과 예측 타입은 부호화하지 않고 각 서브블록들의 인트라 예측 모드를 나타내는 예측 모드 데이터만을 부호화한다.
인터 픽쳐인 경우, 매크로블록 타입은 부호화 비용에 따라 결정되고 선택된 매크로블록 타입을 부호화한 후 매크로블록 타입에 따른 사용 가능한 예측 타입이 2가지 이상인 경우, 각 서브블록들의 예측 타입을 부호화한다. 예측 타입이 인트라 예측 타입인 서브블록에 대해서는 인트라 예측 모드 정보를 부호화하고 인터 서브블록인 경우, 움직임 정보를 부호화한다.
예측 모드 데이터를 부호화하는 방법은 전술한 실시예의 예측 모드 정보 부호화 방법을 이용하여 부호화한다.
이하에서는, 매크로블록 타입을 부호화하는 방법에 대해 설명한다.
B.1.1.1. 매크로블록 타입 부호화 방법
인터 픽쳐 내 매크로블록과 같이 매크로블록 타입을 부호화하는 경우, 픽쳐 종류에 따라 사용가능한 매크로블록 타입은 표 6내지 표 9와 같이 달라질 수 있다. 단, 표 6내지 표 8의 매크로블록의 타입과 매크로블록의 타입에 따른 서브블록의 사용가능한 예측 타입의 종류는 일례일 뿐 다를 수 있다.
표 6 와 같이 사용 가능한 매크로블록 타입이 3가지인 경우, 1비트 또는 2비트 부호화하여 매크로블록 타입을 나타낼 수 있다. 예를 들어, SKIP 매크로블록인지 아닌지를 나타내는 1비트 길이의 syntax를 부호화 후, SKIP 매크로블록이 아닌 경우, Mixed 인터-인트라 매크로블록인지 인터 매크로블록인지를 나타내는 추가의 1비트 길이의 syntax를 부호화한다.
만약 사용 가능한 매크로블록 타입이 4가지인 경우, 1비트 내지 3비트를 부호화하여 매크로블록 타입을 나타낼 수 있다. 예를 들어 표 7의 경우, SKIP 매크로블록인지 아닌지를 나타내는 1비트 길이의 syntax, 예컨대 skip_flag,를 부호화한 후, SKIP 매크로블록이 아닌 경우, 표 10의 이진 스트링을 이용하여 매크로블록 타입을 나타내는 syntax를 부호화할 수도 있다. 또는 현재 부호화대상 매크로블록의 이웃한 매크로블록들, 예컨대 위와 왼쪽 매크로블록의 매크로블록 타입을 이용하여 현재 부호화 대상 매크로블록의 매크로블록 타입을 부호화할 수도 있다. 또는 부호화기와 복호화기가 약속한 Code Word table을 이용하여 부호화할 수도 있다.
만약 사용 가능한 매크로블록 타입이 표 8과 같이 5가지인 경우, 1비트 또는 3비트를 부호화하여 매크로블록 타입을 나타낼 수 있다. 예를 들어 표 8의 경우, SKIP 매크로블록인지 아닌지를 나타내는 1비트 길이의 syntax, 예컨대 skip_flag,를 부호화한 후, SKIP 매크로블록이 아닌 경우, 표 11의 이진 스트링을 이용하여 매크로블록 타입을 나타내는 syntax를 부호화할 수도 있다. 또는 현재 부호화대상 매크로블록의 이웃한 매크로블록들, 예컨대 위와 왼쪽 매크로블록,의 매크로블록 타입을 이용하여 현재 부호화 대상 매크로블록의 매크로블록 타입을 부호화할 수도 있다. 또는 부호화기와 복호화기가 약속한 Code Word table을 이용하여 부호화할 수도 있다.
또한, 매크로블록 타입을 나타내는 Syntax를 가변길이 부호화하는 방법은 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 부호화할 수 있다.
또한, 블록의 예측 타입 정보를 이용하여 산술 부호화할 수도 있다.
여기서는 매크로블록 타입을 나타내기 위해 SKIP 매크로블록인지 아닌지를 나타내기 위한 신택스(skip_flag)와 SKIP 매크로블록이 아닌 경우, SKIP 매크로블록 타입을 제외한 매크로블록 타입을 나타내기 위한 신택스 (mb_type)의 두 가지의 syntax를 이용하였으나, 한가지 또는 세가지 이상의 syntax를 이용하여 매크로블록 타입을 부호화할 수도 있다.
B.1.1.2. 매크로블록 타입에 따른 예측 타입 부호화 방법
매크로블록 타입에 따른 사용 가능한 예측 타입이 2가지 이상인 경우, 매크로블록 내 각 서브블록들의 예측 타입 정보를 부호화한다. 표 6 내지 표 8 의 매크로블록의 타입에 따른 서브블록의 사용 가능한 예측 타입의 종류가 두 가지인 경우, 각 서브블록의 예측 타입을 나타내는 1비트 길이의 syntax를 부호화한다.
만약 사용 가능한 예측 타입의 종류가 3가지인 경우 1비트 또는 2비트 길이의 syntax를 이용하여 예측 타입을 나타낼 수 있다. 예를 들어 사용 가능한 예측 타입의 종류가 SKIP, 인터 예측, 인트라 예측의 3가지인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 부호화한 후, SKIP 모드가 아닌 경우, 1 비트를 더 부호화하여 인터 예측된 서브블록인지 인트라 예측된 서브블록인지를 나타낼 수 있다. 또는 사용 가능한 예측 타입 종류가 Direct, 인터 예측, 인트라 예측인 경우에도 Direct 모드인지를 나타내는 1비트를 부호화한 후, Direct 모드가 아닌 경우, 인트라 예측인지 인터 예측인지를 나타내는 1비트를 더 부호화 할 수도 있다.
사용 가능한 예측 타입의 종류가 SKIP, Direct, 인터 예측의 3가지인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 부호화한 후, SKIP 모드가 아닌 경우, 1비트를 더 부호화하여 Direct 예측된 서브블록인지 인터 예측된 서브블록인지를 나타낼 수 있다.
만약 사용 가능한 예측 타입의 종류가 4가지인 경우, 1비트 내지 3비트 길이의 syntax를 이용하여 예측 타입을 부호화할 수도 있다. 예를 들어 사용 가능한 예측 타입의 종류가 SKIP, Direct, 인터 예측, 인트라 예측인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 부호화한 후, SKIP 모드가 아닌 경우, 1비트를 더 부호화하여 Direct 모드인지 아닌지를 나타낸다. 만약 SKIP 모드도 아니고 Direct모드도 아닌 경우, 1비트를 부호화하여 인터 예측된 서브블록인지 인트라 예측된 서브블록인지를 나타낼 수 있다.
또는 2비트의 고정 길이의 Syntax를 이용하여 예측 타입을 부호화할 수도 있다.
또는 약속된 Table을 이용하여 예측 타입을 부호화할 수도 있다.
이때, 예측 타입을 나타내는 Syntax를 가변길이 부호화하는 방법은 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 부호화할 수 있다.
또한, 현재 블록의 예측 타입을 부호화할 때 주변 블록의 예측 타입 정보를 이용하여 산술 부호화할 수도 있다.
여기서는 예측 타입을 나타내는 syntax를 한가지로 기술하였으나 복수개의 syntax를 이용하여 예측 타입을 부호화할 수도 있다. 예를 들어 SKIP모드인지 아닌지를 나타내기 위한 SKIP_flag와 direct 모드인지 아닌지를 나타내는 Direct_flag, 인트라 블록인지 인터 블록인지를 나타내기 위한 pred_type의 3가지 syntax가 사용될 수도 있다. 또한 각각의 syntax를 각각 다른 방법을 이용하여 부호화할 수도 있다.
B.2. 복호화 장치
본 발명의 또 다른 실시예에 따른 영상 복호화 장치는 도 7을 통해 전술한 본 발명의 일 실시예에 따른 영상 복호화 장치와 동일 또는 유사하게 구성될 수 있다. 다만, 본 발명의 또 다른 실시예에 따른 영상 복호화 장치는 비트스트림으로부터 임의의 크기의 매크로블록의 매크로블록의 타입을 복호화하여 복원하고, 매크로블록 타입에 따른 매크로블록 내 서브블록들의 사용가능한 예측 타입이 2가지 이상인 경우에만 예측 타입 정보를 비트스트림으로부터 추출하고 복호화한다. 각 서브블록들의 예측 타입을 복원한 후, 서브블록의 예측 타입이 인트라 예측인 경우, 인트라 예측 모드 정보를 비트스트림으로부터 추출하고 복호화하고, 움직임 정보 또는 잔여신호 정보를 비트스트림에 포함하도록 하는 인터 예측인 경우, 비트스트림으로부터 움직임 정보 또는 잔여 신호 정보를 추출하고 복호화하여 각 서브블록을 복원한다.
이하에서는, 분할 정보 복호화 후, 매크로블록 타입과 예측 타입 및 예측 모드 정보를 포함하는 예측 정보를 복호화하는 방법에 대해서 설명한다.
B.2.1. 예측정보 복호화 방법
매크로블록의 분할 정보를 복호화 한 후, 복호화기는 픽쳐 타입 정보를 이용하여 매크로블록 타입 정보를 비트스트림으로부터 추출하여 복호화한다. 이때 픽쳐 종류에 따른 사용 가능한 매크로블록 타입이 고정된 경우, 비트스트림으로부터 매크로블록 타입 정보 복호화 과정은 수행하지 않는다.
예를 들어 인트라 픽쳐 내 매크로블록들은 인트라 예측만을 사용할 수 있으므로 매크로블록 타입 정보와 예측 타입 정보의 비트스트림으로부터 추출 및 복호화 과정은 수행하지 않으며 각 블록의 인트라 예측 모드 정보를 비트스트림으로 추출하고 복호화하여 복원한다.
인터 픽쳐 내 매크로블록인 경우, 매크로블록의 타입 정보를 비트스트림으로부터 추출하고 복호화한 후, 매크로블록 타입에 의해 결정되는 사용가능한 예측 타입의 종류가 2가지 이상인 경우에만 예측 타입 정보를 비트스트림으로부터 추출 및 복호화한다. 매크로블록 또는 서브블록의 예측 타입이 결정되면, 예측 타입에 따른 예측 모드 정보를 비트스트림으로부터 추출하고 복호하여 블록을 복원한다.
예측 모드 데이터를 복호화하는 방법은 전술한 실시예의 예측 모드 정보 복호화 방법을 이용하여 복호화한다.
이하에서는, 매크로블록 타입을 복호화하는 방법에 대해 설명한다.
B.2.1.1. 매크로블록 타입 복호화 방법
인터 픽쳐 내 매크로블록과 같이 매크로블록 타입을 복호화하는 경우, 픽쳐 종류에 따라 사용가능한 매크로블록 타입은 전술한 표 6 내지 표 8과 같이 달라질 수 있다.
표 6와 같이 사용 가능한 매크로블록 타입이 3가지인 경우, 1비트 또는 2비트 복호화하여 매크로블록 타입을 복호화할 수 있다. 예를 들어, SKIP 매크로블록인지 아닌지를 나타내는 1비트 길이의 syntax를 복호화 후, SKIP 매크로블록이 아닌 경우, 비트스트림으로부터 1비트를 더 추출하고 복호화하여 복호화 대상 매크로블록의 타입이 Mixed 인터-인트라 매크로블록인지 인터 매크로블록인지를 결정한다.
만약 사용 가능한 매크로블록 타입이 4가지인 경우, 1비트 내지 3비트를 복호화하여 매크로블록 타입을 나타낼 수 있다. 예를 들어 표 7의 경우, SKIP 매크로블록인지 아닌지를 나타내는 1비트 길이의 syntax, 예컨대 skip_flag,를 복호화한 후, SKIP 매크로블록이 아닌 경우, 추가로 1비트 또는 2비트를 더 추출하고 복호화하여 매크로블록 타입을 복원한다. SKIP 매크로블록이 아닌 매크로블록의 타입을 표 10를 이용하여 매크로블록 타입을 복호화할 경우, 비트스트림으로부터 1비트를 추출하고 복호화하여 복원된 코드워드가 1인 경우 인터 매크로블록으로 결정하고, 0인 경우 비트스트림으로부터 1비트를 더 추출하고 복호화하여 인트라 매크로블록인지 Mixed 인터-인트라 매크로블록인지 결정한다.
또는 현재 복호화 대상 매크로블록의 이웃한 매크로블록들, 예컨대 위와 왼쪽 매크로블록의 매크로블록 타입을 이용하여 현재 복호화 대상 매크로블록의 매크로블록 타입을 복호화할 수도 있다.
또는 부호화기와 복호화기가 약속한 Code Word table을 이용하여 복호화할 수도 있다.
만약 사용 가능한 매크로블록 타입이 표 8과 같이 5가지인 경우, 1비트 또는 3비트를 복호화하여 매크로블록 타입을 나타낼 수 있다. 예를 들어 표 8의 경우, SKIP 매크로블록인지 아닌지를 나타내는 1비트 길이의 syntax, 예컨대 skip_flag,를 복호화한 후, SKIP 매크로블록이 아닌 경우, 표 11의 이진 스트링을 이용하여 매크로블록 타입을 나타내는 syntax를 복호화할 수도 있다.
또는 현재 부호화대상 매크로블록의 이웃한 매크로블록들, 예컨대 위와 왼쪽 매크로블록,의 매크로블록 타입을 이용하여 현재 복호화 대상 매크로블록의 매크로블록 타입을 복호화할 수도 있다.
또는 부호화기와 복호화기가 약속한 Code Word table을 이용하여 복호화할 수도 있다.
또한, 매크로블록 타입을 나타내는 Syntax를 가변길이 복호화하는 방법은 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 복호화할 수 있다.
또한, 블록의 예측 타입 정보를 이용하여 산술 복호화할 수도 있다.
여기서는 매크로블록 타입을 나타내기 위해 SKIP 매크로블록인지 아닌지를 나타내기 위한 신택스(skip_flag)와 SKIP 매크로블록이 아닌 경우, SKIP 매크로블록 타입을 제외한 매크로블록 타입을 나타내기 위한 신택스 (mb_type)의 두 가지의 syntax를 이용하였으나, 한가지 또는 세가지 이상의 syntax를 이용하여 매크로블록 타입을 복호화할 수도 있다.
B.2.1.2. 매크로블록 타입에 따른 예측 타입 복호화 방법
매크로블록 타입에 따른 사용 가능한 예측 타입이 2가지 이상인 경우, 매크로블록 내 각 서브블록들의 예측 타입 정보를 복호화한다. 표 6 내지 표 8의 매크로블록의 타입에 따른 서브블록의 사용 가능한 예측 타입의 종류가 두 가지인 경우, 각 서브블록의 예측 타입을 나타내는 1비트 길이의 syntax를 복호화한다.
만약 사용 가능한 예측 타입의 종류가 3가지인 경우 1비트 또는 2비트 길이의 syntax를 이용하여 예측 타입을 복호화할 수도 있다. 예를 들어 사용 가능한 예측 타입의 종류가 SKIP, 인터 예측, 인트라 예측의 3가지인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 복호화한 후, SKIP 모드가 아닌 경우, 1 비트를 더 복호화하여 인터 예측된 서브블록인지 인트라 예측된 서브블록인지를 결정할 수 있다. 또는 사용 가능한 예측 타입 종류가 Direct, 인터 예측, 인트라 예측인 경우에도 Direct 모드인지를 나타내는 1비트를 복호화한 후, Direct 모드가 아닌 경우, 인트라 예측인지 인터 예측인지를 나타내는 1비트를 더 복호화 할 수도 있다.
사용 가능한 예측 타입의 종류가 SKIP, Direct, 인터 예측의 3가지인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 복호화한 후, SKIP 모드가 아닌 경우, 1비트를 더 복호화하여 Direct 예측된 서브블록인지 인터 예측된 서브블록인지를 결정할 수 있다.
만약 사용 가능한 예측 타입의 종류가 4가지인 경우, 1비트 내지 3비트 길이의 syntax를 이용하여 예측 타입을 복호화할 수도 있다. 예를 들어 사용 가능한 예측 타입의 종류가 SKIP, Direct, 인터 예측, 인트라 예측인 경우, 먼저 SKIP인지 아닌지를 나타내는 1비트를 복호화한 후, SKIP 모드가 아닌 경우, 1비트를 더 복호화하여 Direct 모드인지 아닌지를 결정한다. 만약 SKIP 모드도 아니고 Direct모드도 아닌 경우, 1비트를 복호화하여 인터 예측된 서브블록인지 인트라 예측된 서브블록인지를 결정할 수 있다
또는 2비트의 고정 길이의 Syntax를 이용하여 예측 타입을 복호화할 수도 있다.
또는 약속된 Table을 이용하여 예측 타입을 복호화할 수도 있다.
이때, 예측 타입을 나타내는 Syntax를 가변길이 복호화 방법은 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 복호화할 수 있다.
또한, 현재 블록의 예측 타입을 복호화할 때 주변 블록의 예측 타입 정보를 이용하여 산술 복호화할 수도 있다.
여기서는 예측 타입을 나타내는 syntax를 한가지로 기술하였으나 복수개의 syntax를 이용하여 예측 타입을 복호화할 수도 있다. 예를 들어 SKIP모드인지 아닌지를 나타내기 위한 SKIP_flag와 direct 모드인지 아닌지를 나타내는 Direct_flag, 인트라 블록인지 인터 블록인지를 나타내기 위한 pred_type의 3가지 syntax가 사용될 수도 있다. 또한 각각의 syntax를 각각 다른 방법을 이용하여 복호화할 수도 있다.
[실시예 3]
C. 예측기준 단위를 선택하여 부호화/복호화하는 장치 및 방법
한편, 전술한 바와 같이 매크로블록 단위 또는 매크로블록 내의 각 서브블록에 대해 인터 예측 또는 인트라 예측을 선택적으로 이용하여 예측할 수도 있지만, 예측 기준 단위를 선택하고 예측 기준 단위에 따라 인터 예측과 인트라 예측 중 하나만을 이용하여 예측 부호화하거나, 인터 예측 또는 인트라 예측을 선택적으로 이용하여 예측 부호화할 수 있다.
이하에서는 본 발명의 다른 실시예로서, 매크로블록 내 예측 기준 단위를 선택하고 예측 기준 단위로 인트라 예측 또는 인터 예측을 선택하여 부호화하고 복호화하는 장치와 방법에 대해 예를 들어 설명한다.
여기서, 예측 기준 단위란 매크로블록 내에서 인터 예측 또는 인트라 예측을 선택할 수 있는 블록의 크기를 말한다. 즉, 매크로블록은 인코딩 디코딩 처리의 기준 단위이며 예측 기준 단위는 예측 방법을 선택할 수 있는 단위를 말한다. 예를 들어 32x32 크기의 매크로블록에 대해서 예측 기준 단위는 32x32 또는 16x16일 수도 있으며, 16x16 보다 작은 크기의 블록일 수도 있다. 이 경우, 16x16 크기의 블록 단위로만 인트라 예측 또는 인터예측을 선택할 수 있으며, 기준 단위 내 서브블록들은 동일한 예측 타입을 사용한다.
C.1. 부호화 장치
도 8은 본 발명의 또 다른 실시예에 따른 영상 부호화 장치의 일례를 간략하게 나타낸 블록 구성도이다.
본 발명의 또 다른 실시예에 따른 영상 부호화 장치(800)의 일례는 후보 예측 기준 단위 설정기(Candidate Prediction Basic Unit Configuration, 810), 영상 부호화기(820) 및 예측 기준 단위 결정기(Prediction Basic Unit Determiner, 830)를 포함하여 구성될 수 있다.
후보 예측 기준 단위 설정기(810)는 임의의 크기의 매크로블록에 대한 예측 기준 단위의 후보를 설정한다. 예측 기준 단위의 후보는 사용자 등에 의해 입력되거나 기타 다른 장치로부터 입력되는 정해진 후보군(예를 들어, 16x16, 32x32 등)이거나, 영상의 특성에 따라 결정될 수 있다. 예측 기준 단위의 후보가 영상의 특성에 따라 결정되는 경우를 예를 들면, 영상의 크기와 가로와 세로 비율 등을 고려하여 다양한 후보군으로 결정될 수 있다.
영상 부호화기(820)는 도 6을 통해 전술한 본 발명의 일 실시예에 따른 영상 부호화 장치(600)로 구현될 수 있다.
다만, 본 발명의 또 다른 실시예에 따른 영상 부호화 장치는 후보 예측 기준 단위 설정기(810)에 의해 설정된 예측 기준 단위의 후보별로 해당 예측 기준 단위로 인터 예측 또는 인트라 예측을 선택적으로 이용하여 부호화한다. 매크로블록 내 예측 기준 단위는 매크로블록 단위로 분할 정보를 부호화하여 복호화기에 전송할 수도 있고 시퀀스 헤더 또는 픽쳐, 슬라이스 헤더에 한번만 전송할 수도 있다. 이후, 서브블록 단위가 아닌 예측 기준 단위로 예측 타입 정보를 부호화하고 예측 기준 단위 내 서브블록 단위로 예측 모드 정보를 부호화한다.
예측 타입 정보와 예측 타입에 따른 예측 모드 정보를 부호화하는 방법은 전술한 도 6의 부호화기에서의 부호화 방법을 이용하여 부호화한다.
C.1.1. 예측 기준단위 결정 방법
예측 기준 단위 결정기(830)는 영상 부호화기(820)가 예측 기준 단위의 후보별로 영상을 부호화했을 때의 부호화 비용(즉, 예측 기준 단위의 후보별로 부호화된 영상 데이터의 부호화 비용)을 계산하고 각 예측 기준 단위의 후보별로 부호화된 영상 데이터의 부호화 비용을 서로 비교하여 예측 기준 단위의 후보들 중 최적의 예측 기준 단위를 결정한다. 여기서, 최적의 예측 기준 단위는 각 예측 기준 단위의 후보들 중 해당 예측 기준 단위의 후보로 영상을 부호화했을 때의 부호화 비용이 최소인 예측 기준 단위의 후보가 될 수 있지만, 부호화 비용을 이용하는 경우라면 그를 이용하여 다양하게 결정될 수 있다.
다음은 예측의 기준단위를 결정하는 또 다른 방법이다 (예측 기준 단위 결정기를 사용하지 않는 경우임).
영상 부호화기(820)는 매크로블록을 각 블록에 대해 인트라예측 모드와 인터 예측모드들 중 픽쳐 타입에 따른 사용가능한 예측 타입을 사용하여 부호화하고 부호화 비용을 비교하여 각 블록의 최적의 예측타입과 예측모드를 결정한 후, 매크로블록 내 모든 서브블록이 인트라예측 모드 또는 인터예측 모드를 사용하는 경우에는 예측 기준 단위를 매크로블록 크기로 결정한다. 만약 매크로블록 내 서브블록들의 예측 타입이 인트라 예측과 인터 예측이 동시에 존재하는 경우, 인트라 예측이 선택된 서브블록의 최대크기를 예측의 기준단위로 설정한다.
또는 매크로블록 타입을 인트라 매크로블록을 나타내는 값으로 매크로블록 타입을 설정하여 부호화하고 매크로블록 내 모든 서브블록이 인터예측만 사용하는 경우에는 매크로블록 타입을 인터 매크로블록을 나타내는 값으로 매크로블록 타입을 설정하여 부호화한다. 만약 매크로블록내 인트라 예측과 인터예측 모드를 사용하는 블록이 있는 경우, 매크로블록 타입을 인트라/인터 매크로블록을 나타내는 값으로 설정하여 부호화하고, 인트라 예측이 선택된 서브블록의 최대크기를 예측의 기준단위로 설정할 수도 있다.
또한, 예측 기준 단위 결정기(830)는 예측 기준 단위가 결정되면, 해당 예측 기준 단위로 부호화된 영상 데이터를 비트스트림으로 생성하고 복호화기로 전송할 수도 있다.
C.1.2. 기준단위 부호화 방법
결정된 예측 기준 단위는 매크로블록 단위가 아닌 시퀀스 헤더 또는 각 픽쳐의 헤더 또는 슬라이스 헤더에서 한번만 부호화할 수도 있다. 이 경우, 임의의 크기의 매크로블록으로부터 예측 기준 단위까지의 분할 정보는 부호화하지 않을 수 있다.
C.1.2.1. 기준단위 부호화 방법 1
이하에서는 선택된 예측의 기준 단위를 시퀀스, 픽쳐 또는 슬라이스 헤더에서 한번만 부호화하는 본 발명에 따른 다양한 방법들을 설명한다. 먼저 예측의 기준 단위를 부호화하는 첫번째 방법을 설명한다.
시퀀스 헤더 또는 각 픽처 또는 슬라이스 헤더에 예측의 기준 단위의 크기를 보낼지에 대한 플래그(Set_predBlockSize_flag)로 예측의 기준 단위를 전송할 수도 있고 전송하지 않을 수도 있도록 한다.
전송하지 않는 경우에는 임의의 크기, 예컨대 16x16 크기,를 예측의 기준 단위로 사용할 수도 있고 매크로블록마다 분할 정보를 부호화하여 예측 기준단위를 부호화할 수도 있다.
만약, 예측의 기준 단위를 지정하는 경우에는 예측의 기준 단위에 대한 정보를 전송한다. 이때, 예측의 기준 단위의 가로 크기와 세로 크기를 따로 설정하도록 하여 임의의 크기의 예측의 기준 단위를 사용할 수도 있다.
또한, 특정 값으로 예측의 기준 단위를 지정할 수도 있고 소정의 크기로부터 몇 배를 키울지 또는 축소 시킬지에 대한 값을 보낼 수도 있다.
또한, 예측 기준 단위의 크기값을 그대로 부호화하는 대신 예측 기준 단위의 크기값에 로그 함수를 적용함으로써 적은 비트를 이용하여 예측 기준 단위의 크기값을 나타낼 수 있다.예컨대, log2(선택된 예측의 기준단위/X) (X는 2의 배수인 임의의 양의 정수)의 값을 부호화하는데, 예를 들어 X의 값이 16인 경우,선택된 예측의 기준 단위가 16x16인 경우 0을 부호화하고 32x32인 경우 1을 부호화한다.
또한, 가로와 세로에 대한 비율을 따로 부호화 할 수도 있다.
또는 부호화기와 복호화기가 약속한 Table의 인덱스 값일 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 부호화할 수 있다.
아래는 전술한 예측 기준 단위 부호화에 관한 첫번째 방법에 따른 신택스의 일 예를 나타낸다.
Set_ predBlockSize _flag
if(Set_ predBlockSize _flag == 1)
{
predBlockSize
}
또는
Set_ predBlockSize _flag
if(Set_ predBlockSize _flag == 1)
{
predBlockSize _Width
predBlockSize _height
}
이하에서는 가로와 세로의 크기를 각각 설정하는 것에 대한 내용은 기술하지 않지만, 가로와 세로의 크기를 각각 설정하는 것도 적용 가능하다. 또한, 시퀀스 헤더와 픽처 헤더 상에서 데이터를 부호화하는 것으로 예를 들었지만, 슬라이스 헤더에서 부호화할 수도 있다.
C.1.2.2. 기준단위 부호화 방법 2
이하에서는 예측 기준 단위를 부호화하는 두번째 방법을 설명한다.
두 번째 방법에 따르면, MxN 크기를 default 예측 기준 단위로 설정하고 각 픽처 헤더마다 default 예측 기준 단위를 사용할지를 나타내는 플래그를 부호화하고 default 예측 기준 단위를 사용하지 않을 경우, 선택된 예측의 기준 단위를 부호화한다. 또는 시퀀스 헤더에서 default 예측 기준 단위를 설정할지를 나타내는 플래그를 부호화한 후 default 예측 기준 단위를 설정하지 않는 경우 소정 사이즈, 예컨대 16x16 크기를 default 예측의 기준 단위로 사용하고 default 예측의 기준 단위를 설정하는 경우에는 default 예측의 기준 단위를 부호화할 수도 있다.
여기서 default 예측 기준 단위의 크기를 나타내는 정보인 defalt_ predBlockSize 또는 현재 예측 기준 단위의 크기를 나타내는 정보인 predBlockSize 값을 부호화하는 방법은 실제 예측 기준 단위의 크기를 지정할 수도 있고 소정의 크기로부터 몇 배를 키울지 또는 축소 시킬지에 대한 값을 보낼 수도 있다. 또는 전술한 첫번째 방법에서 설명한 바와 같이, 예측 기준 단위 크기값을 그대로 부호화하는 대신, 예측 기준 단위 크기값에 로그 함수를 적용함으로써 보다 적은 비트를 이용하여 매크로블록 크기값을 나타낼 수 있다.
또한, 가로와 세로에 대한 비율을 따로 부호화 할 수도 있다.
또는 부호화기와 복호화기가 약속한 Table의 인덱스 값일 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 부호화할 수 있다.
아래는 전술한 예측 기준 단위의 크기 부호화에 관한 두번째 방법에 따른 신택스의 일 예를 나타낸다.
시퀀스 헤더:
Set_default predBlockSize _Flag
if(Set_ default predBlockSize _Flag == 1)
{
defalt_ predBlockSize
}
픽처헤더:
use_defalt_ predBlockSize _flag
if(use_defalt_ predBlockSize e_flag == 0)
{
predBlockSize
}
C.1.2.3. 기준단위 부호화 방법 3
이하에서는 예측 기준 단위를 부호화하는 세번째 방법을 설명한다.
세 번째 방법에 따르면 첫 번째 픽처에서 default 예측 기준 단위를 사용할지에 대한 플래그와 default 예측 기준 단위를 사용하지 않는 경우 선택된 예측의 기준 단위를 부호화한 후, 두 번째 픽처부터는 이전 픽처의 예측의 기준 단위를 사용할지에 대한 플래그와 이전 픽처의 예측의 기준 단위를 사용하지 않을 경우 현재 픽처의 예측의 기준 단위를 부호화할 수도 있다.
여기서 현재 예측 기준 단위의 크기를 나타내는 정보인 predBlockSize 값을 부호화하는 방법은 실제 예측 기준 단위의 크기를 지정할 수도 있고 소정의 크기로부터 몇 배를 키울지 또는 축소 시킬지에 대한 값을 보낼 수도 있다. 또는 전술한 첫번째 방법에서 설명한 바와 같이, 예측 기준 단위 크기값을 그대로 부호화하는 대신, 예측 기준 단위 크기값에 로그 함수를 적용함으로써 보다 적은 비트를 이용하여 매크로블록 크기값을 나타낼 수 있다.
또한, 가로와 세로에 대한 비율을 따로 부호화 할 수도 있다.
또는 부호화기와 복호화기가 약속한 Table의 인덱스 값일 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 부호화할 수 있다.
아래는 전술한 예측 기준 단위의 크기 부호화에 관한 두번째 방법에 따른 신택스의 일 예를 나타낸다.
첫 번째 픽처의 픽처 헤더
use_defalt_ predBlockSize _flag
if(use_defalt_ predBlockSize _flag == 0)
{
predBlockSize
}
두 번째 픽처부터
use_prevPic_ predBlockSize _flag
if(use_prevPic_ predBlockSize e_flag == 0)
{
predBlockSize
}
C.1.3. (부호화) 방법
도 9는 본 발명의 또 다른 실시예에 따른 영상 부호화 방법의 일 예를 설명하기 위한 순서도이다.
영상 부호화 장치는 예측 기준 단위의 후보를 설정하고, 예측 기준 단위의 후보별로 입력 영상을 부호화하여, 예측 기준 단위의 후보별 영상 데이터의 부호화 비용에 따라 예측 기준 단위를 결정하며, 결정된 예측 기준 단위에 따라 매크로블록의 각 서브블록에 대해 인터 예측 또는 인트라 예측을 선택적으로 이용하여 부호화된 영상 데이터 및 결정된 예측 기준 단위에 대한 정보를 포함하는 비트스트림을 생성한다. 영상 부호화 장치가 예측 기준 단위의 후보를 설정하고, 예측 기준 단위의 후보별로 영상을 부호화하며, 예측 기준 단위의 후보별로 부호화된 영상 데이터의 부호화 비용에 따라 예측 기준 단위를 결정하는 것에 대해서는 도 8을 통해 전술하였으므로, 상세한 설명은 생략한다.
C.2. 복호화 장치
도 10은 본 발명의 다른 실시예에 따른 영상 복호화 장치의 구현 예를 나타낸 블록 구성도이다.
본 발명의 또 다른 실시예에 따른 영상 복호화 장치의 일 예는 도 7을 통해 전술한 본 발명의 일 실시예에 따른 영상 복호화 장치(700)와 동일 또는 유사하게 구성될 수 있다.
다만, 본 발명의 또 다른 실시예에 따른 영상 복호화 장치는 예측 기준단위 설정기와 영상 복호화기를 포함하여 구성될 수 있다.
본 발명의 또 다른 실시예에 따른 영상 복호화 장치의 일 예는 비트스트림으로부터 부호화된 영상 데이터뿐만 아니라 비트스트림으로부터 임의의 크기의 매크로블록에 대해 인터 예측 또는 인트라 예측을 선택적으로 이용하기 위한 예측 기준 단위에 대한 정보를 추출하고, 추출된 예측 기준 단위에 대한 정보에 의해 식별되는 예측 기준 단위(또는 필요에 따라서는 추출된 예측 기준 단위에 대한 정보를 복호화하여 식별되는 예측 기준 단위) 크기 이하의 매크로블록 내의 각 서브블록들에 대해서는 인터 예측 또는 인트라 예측을 선택적으로 이용하여 부호화된 영상 데이터를 복호화함으로써 복원 영상을 생성한다.
예측 기준 단위 설정기는 비트스트림으로부터 예측 기준 단위 정보를 추출하여 매크로블록 내 예측 기준 단위를 설정한다. 만약 예측 기준 단위 정보는 비트스트림에 한번만 포함하기로 부호화기와 약속된 경우 전제 영상에 대한 비트스트림에 한번만 복호화하여 전체 영상 복호화에 추출한 예측 기준 단위를 이용하여 영상을 복원할 수도 있고 픽쳐마다 예측 기준 단위를 부호화/복호화 하기로 약속된 경우 비트스트림으로부터 각 픽쳐마다 예측 기준 단위 정보를 추출하여 각 픽쳐마다 다른 예측 기준 단위를 사용하여 영상을 복원할 수도 있다. 또한 본 발명에 따른 다른 실시예에 의하면 상기 정보는 픽쳐, 슬라이스 또는 매크로블록 계층마다 추출하도록 하여 선택된 예측 기준 단위를 이용하여 영상을 복원할 수도 있다.
예측 기준 단위 설정기에서 예측 기준 단위가 설정되면 복호화기에서는 예측 기준 단위로 예측 타입 정보를 비트스트림으로부터 추출하고 예측 타입에 따른 서브블록 별 예측 모드 정보를 비트스트림으로부터 추출하고 복호화하여 매크로블록을 복원한다.
C.2.1. 예측 기준단위 복호화 방법
이하에서는 선택된 예측 기준 단위를 복호화하는 본 발명에 따른 다양한 방법들을 설명한다.
C.2.1.1. 예측 기준단위 복호화 방법 1
먼저 예측 기준 단위를 부호화하는 첫번째 방법에 따른 복호화 방법을 설명한다.
예측 기준 단위의 크기에 대한 정보를 보낼지에 대한 플래그(Set_ predBlockSize _flag)가 포함된 경우, 시퀀스 헤더 또는 각 픽쳐의 헤더 또는 슬라이스 헤더 등의 약속된 위치에서 예측 기준 단위의 크기에 대한 정보를 보낼지에 대한 플래그(Set_ predBlockSize _flag)를 엔트로피 복호화한다. 복호화한 플래그가 예측 기준 단위의 크기가 전송되지 않았음을 나타내는 값인 경우, 부호화기와 약속된 소정 크기의 예측 기준 단위, 예컨대 16x16블록을 예측 기준 단위로 사용한다.
만약 복호화한 예측 기준 단위 크기 지정 플래그(Set_ predBlockSize _flag)가 예측 기준 단위의 크기가 지정되었음을 의미하는 경우, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary-Code), 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 엔트로피 복호화 방법들 중 부호화기와 약속된 방법으로 예측 기준 단위의 크기를 엔트로피 복호화하여 추출한다.
만약 예측 기준 단위의 가로 크기와 세로크기가 따로 설정되어 전송된 경우 가로크기와 세로크기를 각각 엔트로피 복호화하여 구할 수도 있고, 또는 정사각형 예측 기준 단위를 사용하는 경우 한 변의 길이를 나타내는 정보만을 엔트로피 복호화할 수도 있다.
복호화 한 값을 실제 예측 기준 단위의 크기로 지정할 수도 있고 복호화 한 값을 부호화기와 약속한 소정의 크기로부터 몇 배를 키우거나 축소시킨 값을 예측 기준 단위의 크기로 지정할 수도 있다. 또한 부호화기에서 예측 기준 단위의 크기값에 로그함수를 적용한 값을 부호화한 경우 엔트로피 복호화한 값을 지수함수를 적용하여 예측 기준 단위의 크기를 설정할 수도 있다 예컨대, 부호화기에서 log2(부호화기에서 선택된 PredBlockSize/X) (X는 2의 배수인 임의의 양의 정수)의 값인 y를 부호화한 경우 복호화기에서는 y값을 엔트로피 복호화하고 X의 값에 2y 를 곱하여 부호화기에 선택된 예측 기준 단위의 크기를 구할 수 있다. 여기서 X의 값은 부호화기와 복호화기가 약속한 값이거나 비트스트림으로부터 예측 기준 단위 크기를 복호화 하기 전 추출한 값일 수도 있다. 만약 X의 값이 8인 경우, 복호화 한 y의 값이 0이면 예측 기준 단위의 크기를 8x8로 설정하고 복호화 한 y의 값이 1이면 예측 기준 단위의 크기를 16x16으로 설정한다.
또한 부호화기에서 가로와 세로에 대한 비율을 따로 복호화 한 경우 가로에 대한 비율과 세로에 대한 비율을 각각 엔트로피 복호화하여 예측 기준 단위의 크기를 얻을 수도 있다.
또한 부호화기와 복호화기가 약속한 표의 인덱스값을 부호화한 경우, 복호화한 값을 표의 인덱스값으로 사용하여 예측 기준 단위의 크기를 구할 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 복호화(Binary Coding) 방법을 이용하여 전송할 예측 기준 단위 크기를 복호화 할 수 있다.
이하에서는 설명의 편의를 위해, 가로와 세로의 크기를 각각 복호화하여 추출하는 것에 대한 내용은 기술하지 않지만, 가로와 세로의 크기를 각각 추출하는 것도 적용 가능하다. 또한 시퀀스 헤더와 픽쳐 헤더 상에서 데이터를 복호화하는 것으로 예를 들었지만 부호화기에서 슬라이스 헤더 또는 매크로블록 헤더에서 예측 기준 단위의 크기를 부호화한 경우 슬라이스 헤더에서 예측 기준 단위의 크기를 복호화 할 수도 있다.
C.2.1.2. 예측 기준단위 복호화 방법 2
이하에서는 예측 기준 단위의 크기를 부호화하는 두번째 방법에 따른 복호화 방법을 설명한다.
두번째 방법에 따르면, 부호화기와 약속된 NxN 크기를 기준 예측 기준 단위 크기로 설정하고 각 픽쳐 또는 슬라이스, 매크로블록 헤더로부터 기준 예측 기준 단위 크기를 사용할지를 나타내는 플래그를 엔트로피 복호화한다. 복호화한 플래그 값이 기준 예측 기준 단위 크기를 사용하지 않음을 뜻하는 경우, 예측 기준 단위 크기 정보를 엔트로피 복호화하여 예측 기준 단위의 관련 정보를 추출하고 예측 기준 단위의 크기를 설정한다. 복호화한 플래그 값이 기준 예측 기준 단위 크기 사용함을 뜻하는 경우, 예측 기준 단위 크기 정보는 비트스트림에 포함되지 않았음을 뜻하므로 사전에 설정된 기준 예측 기준 단위의 크기를 예측 기준 단위의 크기로 설정하여 일련의 복호화 과정을 진행한다.
기준 예측 기준 단위의 크기는 부호화기에서 시퀀스 헤더 등에 포함되어 복호화기로 전송된 경우, 비트스트림 내 시퀀스 헤더 등의 약속된 위치에서 기준 예측 기준 단위의 크기를 추출할 수도 있다. 여기서 기준 예측 기준 단위의 크기 또는 현재 예측 기준 단위의 크기는 엔트로피 복호화 한 값을 할당할 수도 있고 엔트로피 복호화 한 값으로 소정의 크기를 스케일링 (축소 또는 확대)하여 예측 기준 단위의 크기를 얻을 수도 있다. 또는 전술한 첫번째 복호화 방법에서 설명한 바와 같이, 부호화기에서 예측 기준 단위의 크기값에 로그함수를 적용한 값을 부호화한 경우 지수함수를 이용하여 예측 기준 단위의 크기값을 얻을 수도 있다.
또한 부호화기에서 가로와 세로에 대한 비율을 따로 복호화 한 경우 가로에 대한 비율과 세로에 대한 비율을 각각 엔트로피 복호화하여 예측 기준 단위의 크기를 얻을 수도 있다.
또한 부호화기와 복호화기가 약속한 표의 인덱스값을 부호화한 경우, 복호화한 값을 표의 인덱스값으로 사용하여 예측 기준 단위의 크기를 구할 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 복호화(Binary Coding) 방법을 이용하여 전송할 예측 기준 단위 크기를 복호화 할 수 있다.
C.2.1.3. 예측 기준단위 복호화 방법 3
이하에서는 예측 기준 단위의 크기를 부호화하는 세번째 방법에 따른 복호화 방법을 설명한다.
세번째 방법에 따르면, 첫 번째 픽쳐에서 기준 예측 기준 단위의 크기를 사용할지에 대한 플래그와 기준 예측 기준 단위 크기를 사용하지 않는 경우 예측 기준 단위의 크기 정보를 엔트로피 복호화한 후, 복호화된 예측 기준 단위의 크기 정보를 이용하여 첫번째 픽쳐 복호화에 필요한 예측 기준 단위 크기를 구한다.
기준 예측 기준 단위의 크기를 사용할지에 대한 플래그가 기준 예측 기준 단위 크기를 사용함을 의미하는 경우 예측 기준 단위의 크기를 기준 예측 기준 단위의 크기와 동일하게 설정한 후 첫번째 픽쳐를 복호화한다.
두번째 픽쳐부터는 이전 픽쳐의 예측 기준 단위의 크기를 현재 예측 기준 단위의 크기로 사용할지에 대한 플래그를 복호화한 후, 이전 픽쳐의 예측 기준 단위의 크기를 사용하지 않을 경우 현재 픽쳐 복호화를 위한 예측 기준 단위의 크기 정보를 복호화한다. 이전 픽쳐의 예측 기준 단위의 크기를 현재 픽쳐 복호화에 사용하는 경우 예측 기준 단위의 크기를 이전 픽쳐의 예측 기준 단위의 크기와 동일한 값으로 설정하여 두번째 픽쳐를 복호화한다.
현재 픽쳐의 예측 기준 단위의 크기를 나타내는 정보인 PredBlockSize를 복호화하는 방법은 엔트로피 복호화한 값을 예측 기준 단위의 크기로 사용할 수도 있고 엔트로피 복호화한 값을 확대 비율 또는 축소 비율로 사용하여 소정의 크기로부터 확대 또는 축소하여 예측 기준 단위의 크기를 얻을 수도 있다. 또는 전술한 첫번째 복호화 방법에서 설명한 바와 같이, 부호화기에서 예측 기준 단위의 크기값에 로그함수를 적용한 값을 부호화한 경우 지수함수를 이용하여 예측 기준 단위의 크기값을 얻을 수도 있다.
또한 부호화기에서 가로와 세로에 대한 비율을 따로 복호화 한 경우 가로에 대한 비율과 세로에 대한 비율을 각각 엔트로피 복호화하여 기준 예측 기준 단위 크기를 얻을 수도 있다.
또한 부호화기와 복호화기가 약속한 표의 인덱스값을 부호화한 경우, 복호화한 값을 표의 인덱스값으로 사용하여 기준 예측 기준 단위의 크기를 구할 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 복호화(Binary Coding) 방법을 이용하여 기준 예측 기준 단위 크기를 복호화 할 수 있다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재할 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
이상에서 설명한 바와 같이 본 발명의 실시예는, 다양한 예측 모드를 이용하여 가변 크기의 매크로블록 내 서브블록 또는 예측기준단위를 부호화 및 복호화함으로써 고해상도 영상을 효율적으로 부호화/복호화할 수 있는 효과를 발생하는 매우 유용한 발명이다.
605: 매크로블록 분할기 610, 720: 예측기
612: 움직임 추정기 614, 722: 움직임 보상기
616, 724: 인트라 예측기 630, 730: 복원기
640, 740: 필터 650, 750: 프레임 메모리
810: 후보 예측 기준단위 설정기
820: 영상 부호화기
830: 예측 기준단위 결정기
1010: 예측 기준단위 설정기
1020: 영상 복호화기
612: 움직임 추정기 614, 722: 움직임 보상기
616, 724: 인트라 예측기 630, 730: 복원기
640, 740: 필터 650, 750: 프레임 메모리
810: 후보 예측 기준단위 설정기
820: 영상 부호화기
830: 예측 기준단위 결정기
1010: 예측 기준단위 설정기
1020: 영상 복호화기
Claims (14)
- 트리 구조를 이용한 영상 복호화 방법에 있어서,
상기 트리 구조의 최상위 레이어에 해당하는 블록으로부터 각 블록이 하위 레이어의 블록으로 분할되는지 여부를 나타내는 분할 플래그를 비트스트림으로부터 복호화하고 상기 분할 플래그에 따라 상기 각 블록을 하위 레이어의 4개의 블록으로 분할함으로써, 상기 최상위 레이어 블록으로부터 최종 분할되는 하나 이상의 복원 대상 블록을 식별하는 단계; 및
상기 식별된 복원 대상 블록 각각에 대한 예측 타입 정보를 상기 비트스트림으로부터 추출하고, 상기 예측 타입 정보에 의해 지시되는 예측 모드를 이용하여 상기 식별된 복원 대상 블록 각각을 복원하는 단계를 포함하고,
상기 블록 식별 단계는,
제1레이어에 속하는 블록이 제2레이어-상기 제1레이어의 하위 레이어임-의 4개의 블록으로 분할되면, 상기 제2레이어의 4개의 블록 각각에 대한 분할 플래그를 좌상단 블록, 우상단 블록, 좌하단 블록 및 우하단 블록의 순서로 복호화하되,
상기 제2레이어의 4개의 블록 중 어느 한 블록이 제3레이어-상기 제2 레이어의 하위 레이어임-의 4개의 블록으로 분할되면, 상기 제2레이어의 다음 순서 블록의 분할 플래그를 복호화하기에 앞서 상기 제3레이어의 4개의 블록의 분할 플래그를 먼저 복호화하는 것을 특징으로 하는 복호화 방법. - 제1항에 있어서, 상기 블록 식별 단계는
상기 각 블록의 크기가 기 결정된 최소 서브블록의 크기와 동일하면, 상기 각 블록에 대한 분할 플래그를 더 이상 복호화하지 않는 것을 특징으로 하는 복호화 방법. - 제1항에 있어서,
상기 최상위 레이어 블록의 크기는 16x16, 32x32 및 64x64 중에서 결정되는 것을 특징으로 하는 복호화 방법. - 제1항에 있어서,
상기 식별된 복원 대상 블록 각각의 크기는 상기 최상위 레이어 블록의 크기 및 상기 분할 플래그에 근거하여 가변적으로 결정되는 것을 특징으로 하는 복호화 방법. - 영상의 블록 분할 정보 부호화 방법에 있어서,
부호화 대상 블록에 대하여, 서브블록 분할 여부를 지시하는 분할 정보를 비트스트림에 순차적으로 부호화하는 분할 정보 부호화 단계; 및
상기 분할 정보에 따라 최종 분할되는 각 서브블록의 예측 타입에 대한 정보를 비트스트림에 부호화하는 예측 타입 부호화 단계;
를 포함하고,
상기 분할 정보 부호화 단계는
최소 서브블록 크기보다 큰 서브블록에 대하여, 해당 서브블록이 하위 레이어의 제1 내지 제4 서브블록으로 분할되는지 여부를 지시하는 분할 플래그를 상기 부호화 정보로서 상기 비트스트림에 부호화하는 제1 단계; 및
상기 제1 단계에 후속하는 단계로서, 상기 제1 단계에서 부호화되는 분할 플래그가 분할을 지시하는 경우에, 상기 제1 서브블록에 대한 상기 분할 정보 부호화 단계를 상기 제1 단계부터 수행하고, 이어서 상기 제2 서브블록에 대한 상기 분할 정보 부호화 단계를 상기 제1 단계부터 수행하며, 이어서 상기 제3 서브블록에 상기 분할 정보 부호화 단계를 상기 제1 단계부터 수행하며, 마지막으로 상기 제4 서브블록에 대한 상기 분할 정보 부호화 단계를 상기 제1 단계부터 수행하는 제2 단계;
를 포함하며,
상기 제1 내지 제4 서브블록의 위치는 좌상단, 우상단, 좌하단 및 우하단 순으로 지정되는 것을 특징으로 하는 영상의 블록 분할 정보 부호화 방법. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2010/006740 WO2011040796A2 (ko) | 2009-10-01 | 2010-10-01 | 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치 |
US13/499,406 US9549190B2 (en) | 2009-10-01 | 2010-10-01 | Method and apparatus for encoding/decoding image using variable-size macroblocks |
US14/745,152 US9609334B2 (en) | 2009-10-01 | 2015-06-19 | Method and apparatus for encoding/decoding image using variable-size macroblocks |
US14/745,181 US9609335B2 (en) | 2009-10-01 | 2015-06-19 | Method and apparatus for encoding/decoding image using variable-size macroblocks |
US14/745,093 US9565444B2 (en) | 2009-10-01 | 2015-06-19 | Method and apparatus for encoding/decoding image using variable-size macroblocks |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090093987 | 2009-10-01 | ||
KR1020090093982 | 2009-10-01 | ||
KR20090093987 | 2009-10-01 | ||
KR20090093982 | 2009-10-01 | ||
KR1020090100443 | 2009-10-21 | ||
KR20090100443 | 2009-10-21 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130056074A Division KR20130054981A (ko) | 2013-05-16 | 2013-05-16 | 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110036521A KR20110036521A (ko) | 2011-04-07 |
KR101479129B1 true KR101479129B1 (ko) | 2015-01-06 |
Family
ID=44044436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20100096035A KR101479129B1 (ko) | 2009-10-01 | 2010-10-01 | 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (4) | US9549190B2 (ko) |
KR (1) | KR101479129B1 (ko) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100095992A (ko) | 2009-02-23 | 2010-09-01 | 한국과학기술원 | 비디오 부호화에서의 분할 블록 부호화 방법, 비디오 복호화에서의 분할 블록 복호화 방법 및 이를 구현하는 기록매체 |
KR101479129B1 (ko) * | 2009-10-01 | 2015-01-06 | 에스케이텔레콤 주식회사 | 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치 |
CA2796203C (en) | 2010-04-13 | 2016-05-31 | Samsung Electronics Co., Ltd. | Video-encoding method and video-encoding apparatus using prediction units based on encoding units determined in accordance with a tree structure, and video-decoding method and video-decoding apparatus using prediction units based on encoding units determined in accordance with a tree structure |
CN103548353B (zh) | 2011-04-15 | 2015-08-19 | Sk普兰尼特有限公司 | 使用多轨视频的高速可伸缩视频编码装置和方法 |
US20140185948A1 (en) * | 2011-05-31 | 2014-07-03 | Humax Co., Ltd. | Method for storing motion prediction-related information in inter prediction method, and method for obtaining motion prediction-related information in inter prediction method |
CN106982373B (zh) | 2011-06-27 | 2018-06-15 | 三星电子株式会社 | 对图像进行解码的设备 |
US9456212B2 (en) * | 2011-09-30 | 2016-09-27 | Broadcom Corporation | Video coding sub-block sizing based on infrastructure capabilities and current conditions |
WO2015037922A1 (ko) | 2013-09-10 | 2015-03-19 | 주식회사 케이티 | 스케일러블 비디오 신호 인코딩/디코딩 방법 및 장치 |
US9473778B2 (en) | 2013-09-27 | 2016-10-18 | Apple Inc. | Skip thresholding in pipelined video encoders |
EP3069514B1 (en) * | 2013-11-14 | 2021-01-06 | HFI Innovation Inc. | Method of video coding using prediction based on intra picture block copy |
US9807410B2 (en) | 2014-07-02 | 2017-10-31 | Apple Inc. | Late-stage mode conversions in pipelined video encoders |
US20160127731A1 (en) * | 2014-11-03 | 2016-05-05 | National Chung Cheng University | Macroblock skip mode judgement method for encoder |
US10250912B2 (en) * | 2015-02-17 | 2019-04-02 | Mediatek Inc. | Method and apparatus for entropy decoding with arithmetic decoding decoupled from variable-length decoding |
US10972731B2 (en) * | 2015-11-10 | 2021-04-06 | Interdigital Madison Patent Holdings, Sas | Systems and methods for coding in super-block based video coding framework |
CN106878751B (zh) * | 2015-12-11 | 2022-01-14 | 北京三星通信技术研究有限公司 | 视频帧内编码模式的标识方法、处理方法和装置 |
CN116506602A (zh) * | 2016-03-11 | 2023-07-28 | 数字洞察力有限公司 | 视频编码方法以及装置 |
CN117412037A (zh) | 2016-08-31 | 2024-01-16 | 株式会社Kt | 用于处理视频信号的方法和设备 |
US20190215521A1 (en) * | 2016-09-22 | 2019-07-11 | Mediatek Inc. | Method and apparatus for video coding using decoder side intra prediction derivation |
KR20190052128A (ko) * | 2016-10-04 | 2019-05-15 | 김기백 | 영상 데이터 부호화/복호화 방법 및 장치 |
CN116744023A (zh) | 2016-11-25 | 2023-09-12 | 株式会社Kt | 用于对视频进行编码和解码的方法 |
WO2020084473A1 (en) | 2018-10-22 | 2020-04-30 | Beijing Bytedance Network Technology Co., Ltd. | Multi- iteration motion vector refinement |
WO2020098643A1 (en) | 2018-11-12 | 2020-05-22 | Beijing Bytedance Network Technology Co., Ltd. | Simplification of combined inter-intra prediction |
CN113056914B (zh) | 2018-11-20 | 2024-03-01 | 北京字节跳动网络技术有限公司 | 基于部分位置的差计算 |
KR102635518B1 (ko) | 2019-03-06 | 2024-02-07 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 변환된 단예측 후보의 사용 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3824678B2 (ja) * | 1995-05-09 | 2006-09-20 | 株式会社ルネサステクノロジ | 画像復号表示装置 |
US7336720B2 (en) * | 2002-09-27 | 2008-02-26 | Vanguard Software Solutions, Inc. | Real-time video coding/decoding |
KR101037855B1 (ko) | 2005-07-22 | 2011-05-31 | 미쓰비시덴키 가부시키가이샤 | 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법 및 화상 복호 방법 |
KR101215614B1 (ko) | 2005-09-09 | 2012-12-26 | 삼성전자주식회사 | 영상의 부호화 및 복호화 장치와, 그 방법, 및 이를수행하기 위한 프로그램이 기록된 기록 매체 |
JP5044415B2 (ja) * | 2005-11-30 | 2012-10-10 | 株式会社東芝 | 画像符号化/画像復号化方法及び画像符号化/画像復号化装置 |
JP4666255B2 (ja) | 2005-12-27 | 2011-04-06 | 日本電気株式会社 | 符号化データ選定、符号化データ設定、再符号化データ生成及び再符号化の方法及び装置 |
KR100856064B1 (ko) | 2006-06-12 | 2008-09-02 | 경희대학교 산학협력단 | Fgs코딩에서 우선적인 인코딩/디코딩 방법 및 장치 |
US8254455B2 (en) * | 2007-06-30 | 2012-08-28 | Microsoft Corporation | Computing collocated macroblock information for direct mode macroblocks |
US8432970B1 (en) * | 2007-12-14 | 2013-04-30 | Marvell International Ltd. | Block type selection |
US8477847B2 (en) * | 2007-12-17 | 2013-07-02 | Vixs Systems, Inc. | Motion compensation module with fast intra pulse code modulation mode decisions and methods for use therewith |
US8503527B2 (en) * | 2008-10-03 | 2013-08-06 | Qualcomm Incorporated | Video coding with large macroblocks |
US20100086031A1 (en) * | 2008-10-03 | 2010-04-08 | Qualcomm Incorporated | Video coding with large macroblocks |
US8619856B2 (en) * | 2008-10-03 | 2013-12-31 | Qualcomm Incorporated | Video coding with large macroblocks |
US9357219B2 (en) * | 2009-04-08 | 2016-05-31 | Sharp Kabushiki Kaisha | Video encoding apparatus and video decoding apparatus |
EA029414B1 (ru) * | 2009-04-08 | 2018-03-30 | Шарп Кабусики Кайся | Устройство кодирования видеокадров и устройство декодирования видеокадров |
KR101456498B1 (ko) * | 2009-08-14 | 2014-10-31 | 삼성전자주식회사 | 계층적 부호화 단위의 스캔 순서를 고려한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치 |
HUE034567T2 (en) * | 2009-10-01 | 2018-02-28 | Sk Telecom Co Ltd | Equipment for encoding an image using a split layer |
KR101479129B1 (ko) * | 2009-10-01 | 2015-01-06 | 에스케이텔레콤 주식회사 | 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치 |
CN102098519B (zh) * | 2009-12-09 | 2013-04-17 | 浙江大学 | 视频编码方法、解码方法、编码及解码装置 |
KR101479141B1 (ko) * | 2009-12-10 | 2015-01-07 | 에스케이텔레콤 주식회사 | 트리 구조를 이용한 부호화/복호화 방법 및 장치 |
KR101791078B1 (ko) * | 2010-04-16 | 2017-10-30 | 에스케이텔레콤 주식회사 | 영상 부호화/복호화 장치 및 방법 |
PL2924995T3 (pl) * | 2010-07-09 | 2018-11-30 | Samsung Electronics Co., Ltd | Sposób dekodowania wideo wykorzystujący łączenie bloków |
BR122019025407B8 (pt) * | 2011-01-13 | 2023-05-02 | Canon Kk | Aparelho de codificação de imagem, método de codificação de imagem, aparelho de decodificação de imagem, método de decodificação de imagem e meio de armazenamento |
AU2012295044B2 (en) * | 2011-08-09 | 2016-06-16 | Samsung Electronics Co., Ltd. | Method and device for encoding a depth map of multi viewpoint video data, and method and device for decoding the encoded depth map |
-
2010
- 2010-10-01 KR KR20100096035A patent/KR101479129B1/ko active IP Right Grant
- 2010-10-01 US US13/499,406 patent/US9549190B2/en active Active
-
2015
- 2015-06-19 US US14/745,152 patent/US9609334B2/en active Active
- 2015-06-19 US US14/745,093 patent/US9565444B2/en active Active
- 2015-06-19 US US14/745,181 patent/US9609335B2/en active Active
Non-Patent Citations (4)
Title |
---|
J. Kim, et al. Enlarging MB size for high fidelity video coding beyond HD. VCEG-AJ21. 36th Meeting: San Diego. USA. Oct. 8-10, 2008, pp.1-6 * |
J. Kim, et al. Enlarging MB size for high fidelity video coding beyond HD. VCEG-AJ21. 36th Meeting: San Diego. USA. Oct. 8-10, 2008, pp.1-6* |
이재출 외 3인. 비디오 코딩을 위한 계층 구조의 블록 모드 확장. 대한전자공학회 2008년도 하계종합학술대회. Jun. 2008, pp.73-74 * |
이재출 외 3인. 비디오 코딩을 위한 계층 구조의 블록 모드 확장. 대한전자공학회 2008년도 하계종합학술대회. Jun. 2008, pp.73-74* |
Also Published As
Publication number | Publication date |
---|---|
US20150288987A1 (en) | 2015-10-08 |
US9609335B2 (en) | 2017-03-28 |
US20130136179A1 (en) | 2013-05-30 |
US9549190B2 (en) | 2017-01-17 |
KR20110036521A (ko) | 2011-04-07 |
US20150288972A1 (en) | 2015-10-08 |
US20150288971A1 (en) | 2015-10-08 |
US9565444B2 (en) | 2017-02-07 |
US9609334B2 (en) | 2017-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101479129B1 (ko) | 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치 | |
KR101698509B1 (ko) | 분할 레이어를 이용한 영상 부호화/복호화 방법 및 장치 | |
KR101874840B1 (ko) | 영상 부호화/복호화 장치 및 방법 | |
KR101543319B1 (ko) | 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치 | |
KR101868290B1 (ko) | 영상 부호화/복호화 장치 및 방법 | |
KR101947657B1 (ko) | 인트라 예측 정보 부호화 방법 및 장치 | |
US9215462B2 (en) | Image encoding/decoding method and device | |
KR101673028B1 (ko) | 영상 부호화/복호화 장치 및 방법 | |
KR101947658B1 (ko) | 영상 복호화 방법 및 장치 | |
KR101791242B1 (ko) | 영상 부호화/복호화 장치 및 방법 | |
KR101939699B1 (ko) | 영상 부호화/복호화 장치 및 방법 | |
KR101379185B1 (ko) | 예측 모드 선택 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 | |
KR101691978B1 (ko) | 영상 부호화/복호화 방법 및 장치 | |
KR101484058B1 (ko) | 영상 복호화 방법 | |
KR20130054981A (ko) | 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치 | |
KR20170111477A (ko) | 화면 간 예측을 이용한 비디오 부호화/복호화 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A107 | Divisional application of patent | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20171204 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20181203 Year of fee payment: 5 |