KR101984764B1 - 영상 부호화/복호화 장치 및 방법 - Google Patents
영상 부호화/복호화 장치 및 방법 Download PDFInfo
- Publication number
- KR101984764B1 KR101984764B1 KR1020180106599A KR20180106599A KR101984764B1 KR 101984764 B1 KR101984764 B1 KR 101984764B1 KR 1020180106599 A KR1020180106599 A KR 1020180106599A KR 20180106599 A KR20180106599 A KR 20180106599A KR 101984764 B1 KR101984764 B1 KR 101984764B1
- Authority
- KR
- South Korea
- Prior art keywords
- block
- current block
- pixel
- quantization parameter
- information
- 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/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/124—Quantisation
-
- 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/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- 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/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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- 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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- 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/184—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 bits, e.g. of the compressed video stream
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 영상 부호화/복호화에 관한 것으로, 현재 블록이 스킵 블록일 때, 비트스트림으로부터 현재블록의 움직임 정보만을 복호화하고 잔차 신호에 대한 정보를 복호화함 없이 상기 현재블록의 움직임정보를 이용하여 예측된 예측 블록을 상기 현재블록으로서 복원하고, 현재블록이 스킵 블록이 아닐 때 현재블록의 잔차 신호에 대한 정보, 예측정보 및 양자화 파라미터 정보를 이용하여 현재블록을 복원한다.
Description
본 발명은 영상 부호화/복호화 장치 및 방법에 관한 것이다. 더욱 상세하게는, 고해상도의 영상에 대하여 종래의 매크로블록보다 큰 블록단위로 영상의 부호화 및 복호화를 수행하는 경우에, 적용되는 확장된 매크로블록의 크기 및 분할된 서브블록의 크기에 따라 적응적으로 양자화 파라미터의 부호화 및 복호화를 수행할 수 있는 영상 부호화/복호화 장치 및 방법에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 발명의 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
동영상 데이터를 압축하기 위한 표준화된 기술로는 현재 H.261, H.263, H.264, MPEG-2, MPEG-4 등이 있다. 이러한 기존의 동영상 압축 기술에 따르면, 각 영상을 휘도 성분의 16x16 크기의 화소들과 색차 성분의 8x8 크기의 화소들의 사각 영역으로 이루어진 고정된 크기의 매크로블록(Macroblock)들로 나누어 부호화한다. 각 매크로블록의 모든 휘도 성분(Luma Component)과 색차 성분(Chroma Component)들은 공간적으로나 시간적으로 예측되고, 예측 잔여(Predicted Residual)는 변환(Transform) 및 양자화(Quantization), 엔트로피 부호화(Entropy Coding) 등의 과정을 거치면서 압축된다.
H.264/AVC 압축 표준에 따른 부호화 장치는 각 매크로블록을 16x16 크기, 8x8 크기, 4x4 크기의 더 작은 블록으로 분할하여 인트라 예측 부호화(Intra Prediction Encoding)할 수 있으며, 16x16 화소 블록에 대해서는 4 가지의 예측 모드 중 하나를 사용하고, 8x8 화소 블록과 4x4 화소 블록에 대해서는 9 가지의 예측 모드 중 하나를 사용하여 인트라 예측 부호화한다. 인터 예측 부호화(Inter Prediction Encoding)의 경우, 각 매크로블록은 16x16 크기, 16x8 크기, 8x16 크기, 8x8 크기, 8x4 크기, 4x8 크기, 4x4 화소 블록으로 분할되어 인터 예측 부호화될 수 있다. 변환은 8x8 크기 또는 4x4 화소 블록 단위로 적용되고, 변환 계수(Transform Coefficient)의 양자화로는 스칼라(Scalar) 양자화가 사용된다.
H.264/AVC는 슬라이스(Slice) 및 매크로블록(Macroblock) 단위로 양자화 파라미터(QP: Quantization Parameter)를 전송한다. 슬라이스 단위의 양자화 파라미터는 수학식 1을 사용하여 계산된 차분 양자화 파라미터를 전송한다.
[수학식 1]
여기서, 은 현재 슬라이스에서 사용된 양자화 파라미터이고, 은 PPS(Picture Parameter Set)에 전송되는 차분 양자화 파라미터이다. 이는 수학식 2와 같이 부호화시 사용자에 의해 입력된 양자화 파라미터 값에서 26을 뺀 차분값이다.
[수학식 2]
매크로블록 단위로 전송되는 양자화 파라미터는 수학식 3과 같이 이전에 부호화된 매크로블록의 양자화 파라미터 값과 현재 매크로블록의 양자화 파라미터 값의 차분 값을 부호화한다.
[수학식 3]
매크로블록단위로 전송되는 양자화 파라미터는 블록 타입과 CBP(Coded Block Pattern)에 따라 적응적으로 부호화된다. 인트라(Intra) 블록의 경우 모든 매크로블록에 대하여 수학식 3으로 계산한 양자화 파라미터의 차분값을 부호화한다. 인터(Inter) 블록에 대해서는 CBP값을 확인하여 양자화 파라미터의 부호화 여부를 결정한다. 현재 매크로블록에 복호화 할 양자화된 변환 계수 데이터가 없으면 양자화 파라미터를 전송하지 않는다. CBP가 존재하는 경우는 수학식 3을 이용하여 양자화 파라미터를 전송한다.
그런데, H.264/AVC의 양자화 파라미터 전송 방법은 기본 부호화 단위가 매크로블록인 경우만 고려하여 고안되었다. 최근 부호화에 사용되는 영상의 해상도가 커짐에 따라 기본 부호화 단위도 매크로블록에 한정되지 않고 확장된 매크로블록의 사용이 고려되고 있다. 따라서, 이에 적합한 최적화된 양자화 파라미터 부호화 방법이 필요하다.
본 발명의 실시예는 전술한 문제점을 해결하기 위한 것으로서, 고해상도의 영상에 대하여 종래의 매크로블록보다 큰 블록단위로 영상의 부호화 및 복호화를 수행하는 경우에, 적용되는 확장된 매크로블록의 크기 및 분할된 서브블록의 크기에 따라 적응적으로 양자화 파라미터의 부호화 및 복호화를 수행할 수 있는 영상 부호화/복호화 장치 및 방법을 제공하는 것을 목적으로 한다.
본 발명의 일 측면에 따르면, 영상 복호화 방법에 있어서,
복호화할 현재블록이 스킵 블록(skip block)인지 여부를 지시하는 스킵 정보를 비트스트림으로부터 복호화하는 단계; 상기 현재 블록이 스킵 블록일 때, 상기 비트스트림으로부터 상기 현재블록의 움직임 정보를 복호화함으로써 상기 현재블록의 움직임벡터를 결정하고, 상기 현재블록의 잔차 신호에 대한 정보를 복호화함 없이 상기 현재블록의 움직임벡터를 이용하여 예측된 예측 블록을 상기 현재블록으로서 복원하는 단계; 및 상기 현재블록이 스킵 블록이 아닐 때, 상기 비트스트림으로부터 상기 현재블록의 예측정보를 복호화하고, 상기 현재블록에 대응하는 양자화된 변환 계수 중 적어도 하나가 0이 아닐 때, 상기 현재블록에 대응하는 양자화된 변환 계수를 상기 비트스트림으로부터 복호화하며, 양자화 파라미터를 이용하여 상기 양자화된 변환 계수로부터 잔차 신호를 복원하고, 상기 예측정보와 상기 복원된 잔차 신호를 이용하여 상기 현재블록을 복원하는 단계를 포함하는 것을 특징으로 하는 영상 복호화 방법을 제공한다.
여기서, 상기 현재블록의 움직임 정보는 상기 현재블록의 주변블록으로부터 유도되는 예측 움직임벡터에 대한 정보이고, 상기 현재블록이 스킵 블록일 때 상기 예측 움직임벡터가 상기 현재블록의 움직임벡터로서 결정된다.
또한, 본 발명의 일 측면에 따른 영상 복호화 방법은 상기 양자화 파라미터 정보가 복호화되는 최소 블록 단위의 크기를 결정하는 단계를 추가로 더 포함하되,상기 현재블록의 크기가 상기 최소 블록 단위의 크기보다 크거나 같을 때, 상기 양자화 파라미터는 상기 비트스트림으로부터 상기 현재블록의 양자화 파라미터 정보를 복호화하여 획득한다.
여기서, 상기 비트스트림으로부터 상기 최소 블록 단위의 크기에 대한 정보를 복호화하는 단계를 더 포함하고, 상기 최소 블록 단위의 크기는 상기 최소 블록 크기에 대한 정보를 이용하여 결정될 수 있다.
한편, 상기 현재블록의 크기가 상기 최소 블록 단위의 크기보다 작을 때, 상기 양자화 파라미터는 상기 비트스트림으로부터 상기 현재블록이 포함된 최소 블록 단위 내의 모든 블록들에 적용되는 양자화 파라미터 정보를 복호화하여 획득될 수 있다.
상기 현재블록의 크기가 상기 최소 블록 단위의 크기보다 작을 때, 상기 현재블록이 상기 최소 블록 단위 내에 포함된 블록들 중 복호화 순서에서 첫 번째 블록인 경우에만 상기 양자화 파라미터에 대한 정보가 복호화될 수 있다.
본 발명의 실시예에 따르면, 부호화 또는 복호화 대상의 확장된 매크로블록에 대하여 한 개 또는 다수 개의 양자화 파라미터를 적응적으로 사용할 수 있도록 함으로써 각 하위 블록의 부호화 효율 및 복호화 효율을 최대화할 수 있게 된다.
또한, 본 발명의 실시예에 따르면, 비디오 코딩의 필수 기술인 비트 할당 및 제어 기술 개발 시, 보다 효율적이고 정교한 알고리즘의 개발이 용이하게 이루어질 수 있다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
도 2는 본 발명의 실시예에 이용되는 확장된 매크로블록의 예, 및 인트라 예측 부호화와 인터 예측 부호화를 위하여 확장된 매크로블록을 분할하는 과정의 예를 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 4x4 및 8x8 블록의 휘도 성분의 인트라 예측 모드에 따른 9 가지의 예측 방향과 예측 모드 번호를 나타낸 도면이다.
도 4는 본 발명의 다른 실시예에 따른 16x16 블록의 휘도 성분의 인트라 예측 모드에 따른 4 가지의 예측 방향과 예측 모드 번호를 나타낸 도면이다.
도 5는 본 발명의 또 다른 실시예에 따른 4x4, 8x8 및 16x16을 제외한 블록의 휘도 성분의 인트라 예측 모드에 따른 3 가지의 예측 방향과 예측 모드 번호를 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 N/2 x N/2 블록의 색차 성분의 인트라 예측 모드에 따른 4 가지의 예측 방향과 모드 번호를 나타낸 도면이다.
도 7은 본 발명의 일 실시예에 따라 부호화기에 의한 양자화 파라미터의 부호화방법을 나타낸 흐름도이다.
도 8은 32x32 화소 블록의 부호화 모드 및 CBP의 예를 나타낸 도면이다.
도 9는 도 1의 영상 부호화 장치에 의한 영상 부호화 방법을 나타낸 흐름도이다.
도 10은 본 발명의 실시예에 따른 영상 복호화 장치를 개략적으로 도시한 도면이다.
도 11은 도 10의 영상 복호화 장치에 의한 영상 복호화 방법을 나타낸 흐름도이다.
도 2는 본 발명의 실시예에 이용되는 확장된 매크로블록의 예, 및 인트라 예측 부호화와 인터 예측 부호화를 위하여 확장된 매크로블록을 분할하는 과정의 예를 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 4x4 및 8x8 블록의 휘도 성분의 인트라 예측 모드에 따른 9 가지의 예측 방향과 예측 모드 번호를 나타낸 도면이다.
도 4는 본 발명의 다른 실시예에 따른 16x16 블록의 휘도 성분의 인트라 예측 모드에 따른 4 가지의 예측 방향과 예측 모드 번호를 나타낸 도면이다.
도 5는 본 발명의 또 다른 실시예에 따른 4x4, 8x8 및 16x16을 제외한 블록의 휘도 성분의 인트라 예측 모드에 따른 3 가지의 예측 방향과 예측 모드 번호를 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 N/2 x N/2 블록의 색차 성분의 인트라 예측 모드에 따른 4 가지의 예측 방향과 모드 번호를 나타낸 도면이다.
도 7은 본 발명의 일 실시예에 따라 부호화기에 의한 양자화 파라미터의 부호화방법을 나타낸 흐름도이다.
도 8은 32x32 화소 블록의 부호화 모드 및 CBP의 예를 나타낸 도면이다.
도 9는 도 1의 영상 부호화 장치에 의한 영상 부호화 방법을 나타낸 흐름도이다.
도 10은 본 발명의 실시예에 따른 영상 복호화 장치를 개략적으로 도시한 도면이다.
도 11은 도 10의 영상 복호화 장치에 의한 영상 복호화 방법을 나타낸 흐름도이다.
후술할 본 발명의 일 실시예에 따른 영상 부호화 장치(Video Encoding Apparatus)와 영상 복호화 장치(Video Decoding Apparatus)는 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선통신 단말기(Wireless Communication Terminal), 스마트 폰(Smart Phone) 등일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하거나 복호화하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.
또한, 영상 부호화 장치에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망, 유선 전화망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등의 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 영상 복호화 장치에서 복호화되어 영상으로 복원되고 재생될 수 있다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 영상부호화 장치(100)는 예측기(110), 감산기(120), 변환기 및 양자화기(130), 부호화기(140), 역양자화기 및 역변환기(150), 가산기(160), 필터(170) 및 픽처 버퍼(180)를 포함하여 구성될 수 있다.
예측기(110)는 인트라 예측기(112)와 인터 예측기(114)를 포함할 수 있으며, 인터 예측기(114)는 다시 움직임 추정기(116)와 움직임 보상기(118)를 포함할 수 있다.
입력 영상은 프레임 단위 또는 필드 단위로 도 1의 영상 부호화 장치(100)에 입력되거나, NxN(단, N은 16이상의 정수) 화소를 가지는 매크로블록들로 분할되어 영상 부호화 장치(100)에 입력될 수 있다. 여기서, N이 16보다 큰 정수로 이루어진 매크로블록을 확장된 매크로블록(EMB: Extended Macroback)이라고도 한다. 예를 들어, 확장된 매크로블록은 64x64, 32x32 등과 같은 크기의 정방형의 화소 블록으로 이루어질 수 있다. 즉, 입력 영상이 4Kx2K 영상과 같은 고해상도 영상인 경우, N이 16보다 큰 정수로 이루어진 확장된 매크로블록으로 분할하여 부호화를 수행함으로써 영상 압축의 효율 향상을 꾀할 수 있다. 이하에서 설명하는 매크로블록은 N과 M이 모두 16 이상인 NxM 화소 블록을 일컬으며(N과 M은 다를 수 있다), N과 M이 16보다 큰 매크로블록을 지칭할 경우에는 확장된 매크로블록이라는 용어를 사용한다. 즉, 이하의 설명에서 매크로블록과 확장된 매크로블록은 혼용되어 사용되며, 이 두 개념 모두는 16x16 크기 블록을 한정하는 것이 아니다.
고해상도의 입력 영상이 4:2:0 포맷(Format)의 영상의 경우, 매크로블록은 NxN 화소를 가지는 휘도 블록과 두 개의 N/2 x N/2 화소를 가지는 색차 블록으로 이루어진다. 확장된 매크로블록에 의한 고해상도 영상의 압축 효율 향상은, 이하에서 설명하는 구체적인 실시예에 의해 달성될 수 있다.
도 2는 본 발명의 실시예에 이용되는 확장된 매크로블록의 예, 및 인트라 예측 부호화와 인터 예측 부호화를 위하여 확장된 매크로블록을 분할하는 과정의 예를 나타낸 도면이다.
고해상도의 입력 영상에 대하여 확장된 매크로블록 단위로 부호화 및 복호화를 수행하며, 확장된 매크로블록은 서브블록으로 분할하여 인트라 예측 부호화 또는 인터 예측 부호화를 수행할 수 있다. 예를 들어, 확장된 매크로블록이 도 2에 도시한 바와 같이 32x32 화소 블록인 경우, 확장된 매크로블록은 16x16의 서브 블록으로 분할하여 부호화를 수행할 수 있으며, 16x16의 서브 블록은 16x8, 8x16, 8x8, 8x4, 4x8, 4x4 등의 더 작은 서브블록으로 분할하여 부호화를 수행할 수 있다. 도 2에는 확장된 매크로블록이 32x32 화소 블록인 경우를 도시하였지만, 확장된 매크로블록의 크기는 도시한 도면에 한정되지 않으며, 더 큰 화소 블록이 사용될 수도 있다. 또한, 도 2에는 확장된 매크로블록을 16x16와 같은 정방형의 서브 블록으로 분할하여 부호화를 수행하는 것으로 도시하였지만, 확장된 매크로블록은 직사각형의 서브블록으로 분할하여 부호화를 수행할 수도 있다. 예를 들면, 32x32 블록의 확장된 매크로블록은 2 개의 16x8 서브블록이나 2 개의 8x16 서브블록으로 분할하여 부호화를 수행할 수도 있다.
도 1의 영상 부호화 장치(100)에서 예측기(110) 중의 인트라 예측기(112)는 현재 부호화하고자 하는 블록(이하, '현재 블록'이라 칭함)의 주변 화소를 이용하여 참조 블록을 생성하고 참조 블록과 현재 블록을 비교하여 인트라 예측 모드를 결정한다. 여기서, 주변 화소란 현재 블록 주위에 있는 블록 내에 있는 화소들을 말하며, 현재 블록과 인접한 블록들 내에서 현재 블록과 인접한 인접 화소를 포함하는 개념이다.
확장된 매크로블록을 휘도 성분에 대한 4x4 화소 단위의 서브 블록으로 분할하여 인트라 예측을 수행하는 경우, 도 3에 도시한 바와 같은 휘도 성분의 인트라 예측 모드에 따른 9 가지의 예측 방향(예측 모드 0 내지 예측 모드 8에 따른 예측 방향) 중 가장 적절한 예측 방향을 4x4 화소 단위의 현재 블록마다 1 개씩 선택하고, 선택된 예측 방향을 이용하여 현재 블록을 인트라 예측 부호화한다. 예측 모드 2가 의미하는 평균값은 현재 블록의 왼쪽 블록의 4 개의 인접 화소와 현재 블록의 위쪽 블록의 4 개 인접 화소의 총 8 개의 인접 화소의 평균값을 구해 현재 블록의 4x4 화소 모두를 예측하는 방법이다.
픽처의 좌측 경계에 위치하는 블록과 픽처의 윗쪽 경계에 위치하는 블록의 경우 왼쪽 블록과 윗쪽 블록이 각각 픽처 바깥쪽에 위치하게 된다. 이 경우, 픽처 경계를 벗어난 블록을 참조할 수 없기 때문에 예측 방향의 이용이 제한된다. 예를 들어, 픽처의 제일 위쪽에 위치한 블록에서는 윗쪽 블록의 화소를 참조하는 예측 모드 0, 예측 모드 3, 예측 모드 4, 예측 모드 5, 예측 모드 6, 예측 모드 7의 예측 방향을 이용할 수 없다. 예외적으로 DC 모드의 경우, 픽처의 경계를 벗어나지 않는 화소만을 참조해서 현재 블록의 예측을 수행한다. 만약, 현재 블록과 이웃한 왼쪽 블록과 윗쪽 블록을 이용할 수 없는 경우, DC 값은 128을 사용한다.
선택된 현재 블록의 예측 방향과 현재 블록의 왼쪽 블록과 위쪽 블록 중 더 작은 예측 모드 번호를 가지는 블록의 예측 방향을 비교하여 두 예측 방향이 동일한 경우, 주변 블록으로부터 추정한 현재 블록의 예측 방향과 선택된 현재 블록의 예측 방향이 동일한지 여부를 나타내는 예측 모드 플래그(예를 들어, 1 비트로 표시될 수 있음)를 추정한 예측 방향과 같은 예측 방향임을 나타내도록 부호화한다.
만약, 주변 블록으로부터 추정한 현재 블록의 예측 방향과 선택된 현재 블록의 예측 방향이 다른 경우, 예측 모드 플래그를 선택된 현재 블록의 예측 방향이 추정한 현재 블록의 예측 방향과 다른 예측 방향임을 나타내도록 부호화하고 9 가지의 예측 모드에서 추정한 현재 블록의 예측 방향에 해당하는 예측 모드를 뺀 나머지 8 가지의 예측 모드 중 어떠한 예측 모드가 선택된 현재 블록의 예측 방향인지를 나타내기 위한 예측 모드 정보(예를 들어, 3 비트로 표시될 수 있음)를 부호화한다.
확장된 매크로블록을 휘도 성분에 대한 8x8 화소 단위의 서브 블록으로 분할하여 인트라 예측을 수행하는 경우, 휘도 성분에 대한 8x8 화소 단위의 인트라 예측은 4x4 화소 단위의 인트라 예측과 같이 도 3에 도시한 바와 같은 9 가지 예측 방향을 이용하며, 예측 화소를 계산하는 방법도 블록의 크기(4x4 화소와 8x8 화소)의 차이를 제외하면 4x4 화소 단위의 인트라 예측 부호화의 경우와 동일하다.
확장된 매크로블록을 휘도 성분에 대한 16x16 화소 단위의 서브 블록으로 분할하여 인트라 예측을 수행하는 경우, 도 4에 도시한 바와 같은 4 가지의 예측 방향 중에서 부호화 효율이 가장 좋은 예측 방향을 선택하고, 선택된 예측 방향에 따라 16x16 크기의 현재 블록의 위쪽에 위치한 16x16 화소 블록 내의 16 개의 인접 화소와 현재 블록의 왼쪽에 위치한 16x16 화소 블록 내의 16 개의 인접 화소의 총 32 개의 인접 화소로부터 16x16 화소 블록을 예측 부호화한다.
도 4에서, 예측 모드 3인 평면(Plane) 예측의 경우, 현재 블록의 위쪽 블록 내의 인접 화소와 현재 블록의 왼쪽 블록 내의 인접 화소를 대각선 방향으로 보간(Interpolation)하여 예측한다. 예측 모드 2에 해당하는 평균값 예측의 경우, 평균값은 현재 블록의 윗쪽 블록 내의 16 개의 인접 화소와 왼쪽 블록의 16 개의 인접 화소의 평균값을 현재 블록의 16x16 화소 모두로 예측한다. 단, 현재 블록이 픽처 내에서 제일 위쪽에 위치하는 경우, 현재 블록의 왼쪽 블록 내의 16 개의 인접 화소의 평균값을 예측값으로 이용하며, 현재 블록이 픽처 내에서 가장 왼쪽에 위치하는 경우, 현재 블록의 위쪽 블록 내의 16 개 인접 화소의 평균값을 예측값으로 이용한다. 현재 블록의 왼쪽 블록과 윗쪽 블록을 이용할 수 없는 경우, 예측값으로 128을 사용한다. 16x16 화소 블록의 예측 모드는 예측 부호화되지 않고, 단순히 선택된 예측 모드의 번호가 예측 모드 정보(예를 들어, 2 비트로 표시됨)로서 부호화된다.
확장된 매크로블록을 전술한 4x4 화소 블록, 8x8 화소 블록 또는 16x16 화소 블록을 제외한 서브 블록으로 분할하여 인트라 예측을 수행하는 경우, 휘도 성분의 인트라 예측 모드는 도 5와 같이 3가지의 예측 방향과 예측 모드 번호로 나타낼 수 있다. 4x4 화소 블록, 8x8 화소 블록 또는 16x16 화소 블록을 제외한 나머지 서브 블록으로 분할하여 인트라 예측을 수행하는 경우에 해당 서브 블록의 크기가 m x n(m 및 n은 N보다 작은 정수이며, N은 16 이상의 정수)라고 하면, 도 5에 도시한 바와 같은 3 가지의 예측 방향 중에서 선택되는 부호화 효율이 가장 좋은 예측 방향에 따라 현재 블록의 위쪽 블록 내의 m 개의 인접 화소와 왼쪽 블록 내의 n 개의 인접 화소로부터 m x n 화소 블록을 인트라 예측 부호화한다.
예측 모드 2에 해당하는 평균값 예측의 경우, 현재 블록의 위쪽 블록 내의 m 개의 인접 화소와 왼쪽 블록 내의 n 개 인접 화소의 평균값을 이용해서 현재 블록을 예측 부호화한다. 단, 현재 블록이 픽처 내에서 제일 위쪽에 위치하는 경우, 현재 블록의 왼쪽 블록의 n 개의 인접 화소의 평균값을 현재 블록의 예측값으로 이용하며, 현재 블록이 픽처 내의 제일 왼쪽에 위치하는 경우, 위쪽 블록 내의 m 개의 인접 화소의 평균값을 현재 블록의 예측값으로 이용한다. 현재 블록의 왼쪽 블록과 위쪽 블록을 이용할 수 없는 경우, 현재 블록의 예측값으로 128이 사용된다.
선택된 현재 블록의 예측 방향과 현재 블록의 왼쪽 블록과 위쪽 블록 중 더 작은 예측 모드의 번호를 가지는 블록의 예측 방향이 같은 방향인 경우, 현재 블록의 주변 블록으로부터 추정한 현재 블록의 예측 방향과 선택된 현재 블록의 예측 방향이 동일한지 여부를 나타내는 예측 모드 플래그(예를 들어, 1 비트로 표시될 수 있다)를 추정한 현재 블록의 예측 방향과 같은 예측 방향이라는 정보를 부호화한다. m x n 화소 블록이 가질 수 있는 예측 모드의 번호는 0 내지 2이므로, 현재 블록의 왼쪽 블록과 위쪽 블록을 이용하여 예측한 현재 블록의 예측 모드 번호가 3 이상인 경우에는 현재 블록의 예측 방향은 예측 모드 번호 2(DC 모드)를 사용할 수 있다. 예를 들어, 주변 블록으로부터 예측한 현재 블록의 예측 모드 번호가 4인 경우, 현재 블록의 예측 모드 번호를 2로 하여 선택된 현재 블록의 예측 방향과 동일한지를 나타내는 예측 모드 플래그(예를 들어, 1 비트로 표시됨)를 부호화한다.
여기서, 확장된 매크로블록에 대한 인트라 예측은 16x16 이하의 화소 블록 단위 즉, 4x4 화소 블록, 8x8 화소 블록, 16x16 화소 블록 또는 mxn(여기서, m≠n이며, m 및 n은 16보다 작은 수) 화소 블록 단위로 수행되는 것이 바람직하다.
색차 성분의 인트라 예측은 N/2 x N/2 화소 블록 단위로 수행될 수 있다. 예측 방향은 도 6에 나타낸 바와 같이, 평균치 예측, 수평 예측, 수직 예측, 평면 예측 4 가지의 예측 방향이 사용될 수 있다. 바람직하게는, 색차 성분의 인트라 예측은 8x8 화소 블록 단위로 수행된다.
본 발명의 일 실시예에 따른 색차 성분의 4 가지의 인트라 예측 모드에 따른 예측 방향과 예측 모드 번호를 예시적으로 나타낸 도 6을 참조하면, 예측 모드 3에 해당하는 평면 예측과 예측 모드 0에 해당하는 평균값 예측을 위한 예측값 계산 방법도 블록의 크기(16x16 화소와 8x8 화소)의 차이를 제외하고 휘도 성분의 16x16 화소 단위의 인트라 예측 부호화 방법과 동일하다. 색차 신호의 예측 모드는 휘도 신호의 예측 모드와는 독립적으로 선택할 수 있다. 색차 신호는 U, V의 두 종류가 있지만 예측 방법은 같다. 색차 신호의 예측 모드는 U, V 각각 1 개씩이며 각 색차 신호의 예측 모드는 예측 부호화하지 않고 단순히 선택된 예측 모드 번호를 2 비트를 사용하여 나타낸다.
전술한 방법으로 결정되는 인트라 예측 모드에 따라, 인트라 예측기(112)는 현재 블록을 예측하여 예측 블록(Predicted Block)을 생성하고, 감산기(120)는 현재 블록과 예측 블록을 감산하여 잔여 블록(Residual Block)을 생성한다. 변환기 및 양자화기(130)는 잔여 블록을 변환 및 양자화하여 양자화된 변환 계수를 생성하고, 부호화기(140)는 양자화된 변환 계수를 엔트로피 부호화하여 부호화 데이터를 생성한다.
변환기 및 양자화기(130)는 휘도 성분의 4x4, 4x8, 8x4 화소 단위의 인트라 예측이 선택된 현재 블록의 잔여 블록에 대해서는 4x4 변환을 수행하고, 8x8, 8x16, 16x8 화소 단위의 인트라 예측이 선택된 현재 블록의 잔여 블록에 대해서는 8x8 변환을 수행할 수 있다. 또한, 변환기 및 양자화기(130)는 16x16 화소 단위 이상의 인트라 예측이 선택된 현재 블록의 잔여 블록에 대해서는 16x16 변환을 수행할 수 있다. 이 경우, 인트라 예측의 단위와 서브블록의 크기가 동일하므로, 변환의 종류는 서브블록의 블록 크기에 따라 결정할 수 있다.
여기서, 각 16x16 변환이 수행되는 16x16 화소를 가지는 잔여 블록(이하 '16x16 화소 잔여 블록'이라 칭함)은 다시 16 개의 4x4 화소를 가지는 잔여 블록(이하 '4x4 화소 잔여 블록'이라 칭함)으로 분할되고, 각 4x4 화소 잔여 블록에 대해 4x4 변환이 수행될 수 있다. 이후, 각 4x4 화소 잔여 블록이 4x4 변환되어 생성되는 각 4x4 화소를 가지는 변환 블록(이하 '4x4 화소 변환 블록'이라 칭함)의 16 개 DC 성분들만이 모여 4x4 변환 계수를 가지는 변환 블록(이하 'DC 성분 블록'이라 칭함)이 구성되고, DC 성분 블록은 4x4 변환이 한번 더 수행된다. 이때, DC 성분 블록을 변환하는 데에는 잔여 블록을 변환할 때의 변환과 다른 종류의 변환이 사용될 수 있다. 즉, 4x4 화소 잔여 블록에 대해서는 4x4 이산 코사인 변환(DCT: Discrete Cosine Transform)이 수행되고, DC 성분 블록에 대해서는 4x4 하다마드 변환이 사용될 수 있다. 예를 들어, 16x32 화소 단위의 인트라 예측이 선택된 현재 블록에 대한 16x32 화소 잔여 블록은 두 개의 16x16 화소 잔여 블록으로 분할되고 분할된 각 16x16 화소 잔여 블록에 대해 4x4 화소 단위로 4x4 변환이 수행된다. 이후 16x16 크기의 화소 잔여 블록 내 각 4x4 변환 블록들의 DC 성분들이 모여 DC 성분 블록이 구성되고 DC 성분 블록에 대해서 4x4 변환이 한번 더 수행된다.
색차 신호의 경우, 16x16 화소 단위 이상의 인트라 예측의 경우와 마찬가지로 4x4변환을 수행한 후, DC 성분 블록에 대하여 4x4 변환을 한 번 더 수행할 수 있다. 단, 색차 성분의 매크로블록의 잔여 블록은 8x8 화소를 가지는 잔여 블록(이하 '8x8 화소 잔여 블록'이라 칭함)으로 분할하고 각 8x8 화소 잔여 블록 내의 4 개의 4x4 화소 잔여 블록에 대해서는 4x4 변환을 수행한다. 8x8 화소 잔여 블록 내 4 개의 4x4 변환 블록의 DC 성분들을 모아 2x2 변환 계수를 가지는 DC 성분 블록을 구성하고 DC 성분 블록에 대해 2x2 변환을 수행할 수 있다. 이 경우에도 마찬가지로, 8x8 화소 잔여 블록에 대한 4x4 변환과 DC 성분 블록에 대한 2x2 변환의 종류는 다를 수 있다.
또는, 확장된 매크로블록에 대하여 최적의 블록 타입이 결정된 후 전술한 변환 타입에 따라 변환을 수행하는 대신에, 16x16 화소 블록의 단위로 인트라 예측에 사용된 서브 블록의 크기에 따라 효율이 좋은 변환 타입을 선택하여 사용할 수도 있다. 즉, 변환기 및 양자화기(130)는 16x16 화소 블록의 단위로 하나 이상의 변환 및 양자화를 수행한 후 가장 효율이 좋은 변환의 종류를 선택하고, 선택된 변환의 종류에 따라 변환 및 양자화된 변환 계수를 생성할 수 있다. 이 경우, 부호화기(140)는 각 블록마다 선택된 변환의 종류를 식별하기 위한 변환 타입을 생성하고 부호화하여 변환 타입 데이터를 생성하는 것이 바람직하다. 변환 타입 데이터는 부호화 데이터에 포함된다. 단, 16x16 화소 블록 내에서는 서로 다른 변환을 사용할 수 없다.
이에 대하여 보다 상세하게 설명하면, 16x16 화소 블록이 8x8 화소 블록으로 분할되고 4 개의 8x8 화소 블록들 중 한 개 이상의 8x8 화소 블록이 8x8 화소보다 작은 서브블록으로 분할된 경우에는 16x16 화소 블록에 대해서 4x4 변환만이 사용될 수 있으며, 이 경우 변환 타입은 부호화되지 않는다. 또한, 16x16 화소 블록이 4 개의 8x8 화소 블록으로 분할된 경우에는 16x16 화소 블록에 대해서는 4x4 변환과 8x8 변환이 수행되어 부호화 비용이 작은 변환이 선택되며, 선택된 변환의 종류를 나타내는 변환 타입(예를 들어, 1 비트로 표시될 수 있다)이 부호화될 수 있다. 또한, 16x16 화소 블록이 2 개의 8x16 화소 서브블록으로 분할된 경우에는 16x16 화소 서브블록의 잔여 블록에 대해서는 4x4 변환, 8x8 변환과 8x16 변환이 수행되어 부호화 비용이 가장 작은 변환의 종류가 선택되고, 16x16 화소 서브블록이 2 개의 16x8 화소 서브블록으로 분할된 경우에는 16x16 화소 서브블록의 잔여 블록에 대해서는 4x4 변환, 8x8 변환과 16x8 변환이 수행되어 부호화 비용이 가장 작은 변환의 종류가 선택되며, 선택된 변환의 종류를 나타내는 변환 타입(예를 들어, 1 비트 또는 2 비트로 표시될 수 있다)이 부호화될 수 있다. 16x16 화소 이상의 서브블록에 대해서는 4x4 변환, 8x8 변환과 16x16 변환이 수행되어 부호화 비용이 가장 작은 변환이 선택되며, 선택된 변환의 종류를 나타내는 변환 타입(예를 들어, 1 비트 또는 2 비트로 표시됨)이 부호화될 수 있다.
다시 도 1을 참조하면, 예측기(110)의 인터 예측기(114)에서 움직임 추정기(116)는 현재 픽처 내 현재 부호화 대상인 현재 블록과 가장 유사한 블록, 즉 참조 블록을 참조 픽처 내에서 찾아 현재 블록에 대한 참조 블록의 상대적인 위치를 나타내는 움직임 벡터(MV: Motion Vector)를 출력한다. 이러한 과정을 움직임 추정(Motion Estimation)이라 하는데, 움직임 추정은 매크로블록 내 서브블록을 픽처 버퍼(180)에 있는 하나 이상의 참조 픽처와 비교하여 움직임 벡터를 생성한다. 8x8 화소 블록은 서로 다른 참조 픽처를 이용할 수 있으나 8x8 화소 블록 내 서브블록들은 같은 참조 픽처를 이용한다.
움직임 벡터는 부호화기(140)에 의해 부호화되어 부호화 데이터에 포함되는데, 부호화기(140)는 현재 블록의 주변 블록의 움직임 벡터들의 중앙값(Mean Value)을 예측 움직임 벡터(PMV: Predicted Motion Vector)로 이용하고 예측 움직임 벡터와 현재 블록의 움직임 벡터의 차이 벡터인 차분 움직임 벡터(DMV: Differential Motion Vector)만을 부호화하여 움직임 정보 데이터를 생성한다. 이때, 부호화기(140)는 차분 움직임 벡터뿐만 아니라 참조 픽처 인덱스(Reference Picture Index)를 추가로 부호화할 수 있다. 즉, 움직임 정보는 차분 움직임 벡터와 참조 픽처 인덱스를 포함할 수 있으며, 부호화기(140)는 움직임 정보를 부호화하여 움직임 정보 데이터를 생성하고 움직임 정보 데이터를 부호화 데이터에 포함시킬 수 있다.
본 발명의 실시예에서는, 16x16 이상의 화소 블록인 확장된 매크로블록에 대하여 SKIP 모드를 사용한다. SKIP 모드란 블록 타입 정보, 움직임 정보 또는 변환계수와 같은 특정 정보들을 부호화하지 않는 모드를 의미한다. 현재 부호화하고자 하는 블록이 SKIP 모드인 경우, 현재 블록이 SKIP 모드임을 나타내는 정보만을 부호화하고 그 외의 블록 타입, 움직임 정보, 변환계수 등은 부호화하지 않을 수 있다. 또는, 현재 블록의 움직임 정보만을 부호화하고 타입정보, 변환계수와 같은 정보는 부호화하지 않을 수 있다. 또는, 현재 블록의 변환 타입과 변환계수만을 부호화하고 타입정보, 움직임 정보는 부호화하지 않을 수도 있다.
16x16 이상의 화소 블록인 확장된 매크로블록이 SKIP 매크로블록인 경우에는 예측 움직임 벡터를 이용해서 움직임 추정 및 보상이 수행된다. 단, 예측 움직임 벡터를 결정하는 데 이용되는 움직임 벡터들 중 한 개 이상이 0인 경우 예측 움직임 벡터를 0으로 결정한다. 예를 들어, 주변 블록 A, B, C의 움직임 벡터가 각각 mvA (0,10)이고, mvB (1, 10)이며, mvC (2, 10)인 경우, 현재 블록의 예측 움직임 벡터는 (0, 10)이 된다.
감산기(120)는 움직임 추정기(116)에서 추정한 현재 블록의 움직임 벡터가 가리키는 참조 블록과 현재 블록을 감산하여 잔여 블록을 생성하고, 변환기 및 양자화기(130)는 감산기(120)에 의해 생성된 잔여 블록을 변환 및 양자화하며, 부호화기(140)는 양자화된 변환 계수를 엔트로피 부호화하여 부호화 데이터를 생성한다. 여기서, 변환기 및 양자화기(130)는 현재 블록의 크기에 따라 하나 이상의 변환 및 양자화를 수행한 후 가장 효율이 좋은 변환의 종류를 선택하고, 선택된 변환의 종류에 따라 변환 및 양자화된 변환 계수를 생성한다. 부호화기(140)에서는 각 블록마다 선택된 변환의 종류를 식별하기 위한 변환 타입을 생성하고 부호화하여 변환 타입 데이터를 생성한다. 변환 타입 데이터는 부호화 데이터에 포함된다. 단, 16x16 화소 블록 내에서는 서로 다른 변환을 사용할 수 없다.
인트라 예측 블록에서 설명한 변환 방법과 마찬가지로, 16x16 화소 서브블록이 8x8 화소 블록으로 분할되고 4 개의 8x8 화소 서브블록들 중 한 개 이상의 8x8 화소 서브블록이 8x8 화소보다 작은 서브블록으로 분할된 경우에는 16x16 화소 서브블록의 잔여 블록에 대해서는 4x4 변환만이 사용될 수 있으며, 이 경우 변환 타입은 부호화되지 않는다. 16x16 화소 서브블록이 4 개의 8x8 화소 서브블록으로 분할된 경우에는 16x16 화소 서브블록의 잔여 블록에 대해서는 4x4 변환과 8x8 변환이 수행되어 부호화 비용이 작은 변환이 선택되며, 선택된 변환의 종류를 나타내는 변환 타입(예를 들어, 1 비트로 표시됨)이 부호화된다.
16x16 화소 서브블록이 2 개의 8x16 화소 서브블록으로 분할된 경우에는 16x16 화소 서브블록의 잔여 블록에 대해서는 4x4 변환, 8x8 변환과 8x16 변환이 수행되어 부호화 비용이 가장 작은 변환의 종류가 선택되고, 16x16 화소 서브블록이 2 개의 16x8 화소 서브블록으로 분할된 경우에는 16x16 화소 서브블록의 잔여 블록에 대해서는 4x4 변환, 8x8 변환과 16x8 변환이 수행되어 부호화 비용이 가장 작은 변환의 종류가 선택되며, 선택된 변환의 종류를 나타내는 변환 타입(예를 들어, 1 비트 또는 2 비트로 표시될 수 있다)이 부호화된다. 16x16 화소 이상의 서브블록에 대해서는 4x4 변환, 8x8 변환과 16x16 변환이 수행되어 부호화 비용이 가장 작은 변환이 선택되며, 선택된 변환의 종류를 나타내는 변환 타입(예를 들어, 1 비트 또는 2 비트로 표시됨)이 부호화된다.
변환기 및 양자화기(130)에 의해 변환 및 양자화된 잔여 블록은 역양자화기 및 역변환기(150)에 의해 역양자화 및 역변환되어 잔여 블록이 복원되고, 가산기(160)는 복원된 잔여 블록과 예측기(110)에 의해 예측된 예측 블록을 가산하여 현재 블록을 복원한다. 부화화기(140)는 변환기 및 양자화기(130)에 의해 양자화된 변환 계수를 엔트로피 부호화하여 부호화 데이터를 생성한다.
직교 변환된 성분을 양자화 단계로 나누고, 그 결과를 정수 대표값으로 근사화하는 처리를 양자화라고 하며, 그 대표가 되는 정수값을 양자화값이라고 부른다. 반대로 양자화값에 양자화 단계를 곱해 직교 변환한 성분으로 되돌리는 과정을 역양자화라고 한다.
양자화 과정을 적용하게 되면, 직교 변환한 성분을 보다 작은 정수값으로 표현할 수 있고 양자화를 거치지 않은 성분을 부호화하는 것에 비해 적은 비트수로 부호화할 수 있기 때문에 효율이 높아진다. 또한, 양자화 단계의 크기를 바꿈으로써 압축률을 조절할 수 있다.
양자화는 단순히 정보의 양을 줄이기 위한 것이 아니라, 데이터 전송을 위한 채널이나 다른 물리적 매체들이 제공하는 대역폭(bandwidth)을 고려하여 주어진 범위 내에서 가장 좋은 화질을 끌어낼 수 있도록 고려되어야 한다. 즉, 어떠한 양자화 파라미터 값을 적용하느냐에 따라 같은 채널을 대역폭을 통해 얻을 수 있는 화질이 달라지기 때문이다.
확장된 매크로블록이 32x32 화소 블록인 경우, 32x32 화소 블록 단위로 부호화를 수행할지 또는 16x16 화소 블록 단위로 부호화를 수행할지는 확장된 매크로블록 플래그(extended_mb_flag)를 통해 나타낼 수 있다. 예를 들어, 확장된 매크로블록 플래그가 1인 경우에는 32x32 화소블록 단위로 부호화를 수행함을 의미하며, 확장된 매크로블록 플래그가 0인 경우에는 16x16 화소블록 단위로 분할하여 부호화를 수행함을 의미할 수 있다. 또한, 확장된 매크로블록 플래그가 0인 경우, 확장된 매크로블록 내의 분할된 각각의 16x16 화소 블록에 대해서 인트라 예측 부호화 또는 인터 예측 부호화를 수행할 수 있다. 또한, 각각의 16x16 화소블록 단위는 더 작은 서브블록으로 분할되어 부호화가 수행될 수 있다.
확장된 매크로블록이 인터 모드인 경우, 확장된 매크로블록은 16x16 화소 블록 단위로 분할하여 인트라 예측 부호화 또는 인터 예측 부호화될 수 있다. 즉, 확장된 매크로블록이 인터 예측 부호화되는 경우, 확장된 매크로블록 내의 각각의 16x16 화소 블록들은 인트라 예측 부호화 모드와 인터 예측 부호화 모드가 혼재하여 존재할 수 있다. 또한, 확장된 매크로블록이 인트라 예측 부호화되는 경우, 확장된 매크로블록 내의 각각의 16x16 화소 블록들은 모두 인트라 예측 부호화 모드로 부호화될 수 있다.
본 발명의 실시예에서는 부호화 시에 적용되는 기본 부호화 블록단위에서부터 임의 크기의 최소 블록단위까지 적응적으로 양자화 파라미터를 부호화하는 방법을 제안한다.
도 7은 본 발명의 일 실시예에 따라 변환기 및 양자화기(130)에 의한 양자화 파라미터의 부호화방법을 나타낸 흐름도이다. 여기서, 확장된 매크로블록의 크기는 32x32 블록이며 양자화 파라미터를 전송하는 최소 블록 단위가 16x16 블록이고, 해당 블록의 부호화 모드 및 CBP(Coded Block Pattern)가 도 8과 같이 결정되었다고 가정한다. 여기서, CBP는 해당 블록 내에 0이 아닌 양자화된 변환 계수를 포함하는지 여부를 나타내는 정보로서, 32x32 또는 16x16 화소 블록 등 임의의 크기 블록 단위로 부호화될 수 있다.
도 8에 도시한 바와 같은 인터 예측 부호화 모드의 확장된 매크로블록에 대한 양자화 파라미터의 부호화는 부호화하고자 하는 블록의 SKIP 모드 및/또는 CBP 정보에 기초하여 결정될 수 있다. SKIP 모드는 블록 타입 정보, 움직임 정보 또는 변환 계수와 같은 특정 정보들을 부호화하지 않는 모드를 의미한다. CBP는 16x16 화소 블록 단위로 부호화되며, 16x16 화소 블록 내 각 8x8 화소 블록 당 0이 아닌 변환 계수가 있는지 여부를 8x8 화소 블록 당 1비트를 이용하여 나타내고, 색차 성분에 대해서는 두 개의 2x2 색차 성분 DC 블록 내 0이 아닌 변환 계수가 있는지 여부를 1 비트를 이용하여 나타내며, 두 개의 8x8 색차 성분 AC 블록 내 0이 아닌 변환 계수가 있는지 여부를 1 비트를 이용하여 나타낼 수 있다.
확장된 매크로블록을 16x16 보다 큰 블록으로 분할하여 부호화를 수행하는 경우 예를 들면, 확장된 매크로블록이 64x64 화소 블록이며, 확장된 매크로블록을 4개의 32x32 화소 블록으로 분할하여 부호화를 수행하는 경우 등에는 부호화하고자 하는 블록에 대하여 서브 블록 내에 0이 아닌 부호화할 계수의 존재 여부를 나타내는 CBPX 플래그가 사용될 수도 있다. 여기서, X는 부호화할 대상의 크기를 나타내는 정수로서 64x64 화소 블록의 경우는 CBP64 플래그로 나타내며, 32x32 화소 블록은 CBP32 플래그로 나타낼 수 있다. 또한, CBPX 플래그는 0 또는 1과 같이 1 비트를 사용하여 표시할 수 있다. 예를 들어, 32x32 화소 블록 내에 0이 아닌 변환계수가 있는 경우에는 CBP32 플래그를 1로 표시하여 부호화할 수 있다.
서브블록의 크기가 32x32, 32x16 및 16x32 중 하나가 아닌 경우에는 CBP를 부호화할 수 있다. 이때, 서브 블록의 크기가 32x32, 32x16 또는 16x32 화소 블록이 아닌 경우에 서브 블록의 크기가 16x16, 16x8 또는 8x16 화소 블록인지를 판단할 수 있다. 서브 블록이 16x16, 16x8 또는 8x16 화소 블록인 경우, 해당 서브 블록 내에 0이 아닌 부호화할 계수가 있는 경우에는 CBP16 플래그(예를 들어, '1'과 같이 1 비트로 표시될 수 있음)를 부호화하며, 그 외의 경우에는 CBP 플래그를 사용하지 않고 16x16 화소 블록 단위로 CBP를 부호화할 수 있다.
CBP 플래그를 부호화하는 경우에 대하여, CBP 플래그가 0이 아닌 경우에 변환 타입을 부호화할 수 있다. 예외적으로, 16x16 화소 블록이 네 개의 8x8 화소 블록으로 분할된 경우에는 CBP를 부호화한 후 CBP가 0이 아닌 경우에 16x16 화소 블록 단위로 적용되는 변환 타입을 부호화할 수 있다.
변환 타입을 부호화한 후에는 변환 타입에 따라 CBP를 부호화한다. 16x16 변환이 사용된 경우에는 색차 성분의 CBP 2비트만 부호화하며, 8x16 또는 16x8 변환이 사용된 경우에는 16x16 화소 블록 내의 두 개의 8x16 또는 16x8 화소 블록이 0이 아닌 변환 계수를 가지는지를 나타내는 CBP 2비트를 부호화한다. 다만, 예외적으로 두 개의 분할블록 중 첫 번째 분할블록의 CBP 비트가 0인 경우에는 두 번째 분할 블록의 CBP 비트는 부호화하지 않을 수 있다.
32x32 화소 블록의 확장된 매크로블록이 인터 블록인 경우(S701), 도 8에 도시한 바와 같이 확장된 매크로블록 내에는 인터 블록과 인트라 블록이 혼재될 수 있다. 인터 예측 부호화 모드의 확장된 매크로블록의 CBP가 0이 아니면서 32x32 화소 블록이 SKIP 모드가 아닌 경우(S703), 부호화기(140)는 32x32 화소 블록 단위로 양자화 파라미터를 부호화한다(S705). 만일, 확장된 매크로블록이 인트라 블록이면 인트라 예측 부호화 모드의 확장된 매크로블록의 CBP가 0이 아닌 경우(S707), 부호화기(140)는 32x32 화소 블록 단위로 양자화 파라미터를 부호화한다(S705). 이때, 부호화기(140)는 수학식 4와 같이 이전에 부호화 된 32x32 블록의 양자화 파라미터 값과의 차분 값을 부호화 한다.
[수학식 4]
도 7에서 ext_mb_cbp은 확장된 매크로블록인 32x32 화소 블록 단위의 CBP를 의미하며, ext_skip_flag는 확장된 매크로블록인 32x32 화소 블록의 SKIP 모드 여부를 나타내는 플래그로서 SKIP 모드가 아닌 경우에 0으로 나타낼 수 있다.
수학식 4와 같이 산출된 값을 부호화 한 후, 현재의 부호화 대상 블록 즉, 32x32 화소 블록 내 첫 16x16 서브블록의 순번에 0을 부여하고, 32x32 화소 블록 내의 분할된 16x16 서브 블록들에 대한 양자화 파라미터 부호화 과정을 시작한다(S709). 도 7에서는 32x32 화소 블록의 확장된 매크로블록에 대하여 16x16 크기의 i번째 서브 블록의 부호화 타입을 mb_type[i]로 표시하였다. 그러나, 서브 블록의 크기는 16x16 화소 블록에 한정되지 않는다. 예를 들어, 확장된 매크로블록이 64x64 화소 블록인 경우에는 확장된 매크로블록 내의 서브 블록은 32x32 화소 블록이 될 수도 있다.
확장된 매크로블록 내의 i번째 서브 블록의 부호화 모드가 인터 예측 모드인 경우(S711), 부호화기(140)는 32x32 화소 블록 내의 각각의 i번째 16x16 화소 블록의 SKIP 모드 여부를 판단하며(S713), SKIP 모드가 아닌 i번째 16x16 화소 블록에 대하여 해당 블록 내에 0이 아닌 양자화된 변환 계수가 포함되는지의 여부를 판단한다(S715).
skip_flag[i]는 32x32 화소 블록 내의 i번째 16x16 화소 블록의 SKIP 모드 여부를 나타내는 신택스(Syntax)이며, mb_cbp[i]는 32x32 화소 블록 내의 i번째 16x16 화소 블록 단위의 CBP를 나타낸다.
단계 S713 및 단계 S715를 통해 32x32 화소 블록 내의 i번째 16x16 화소 블록이 SKIP 모드가 아니며 양자화된 변환계수를 포함하는 경우 즉, CBP가 0보다 큰 것으로 판단되면, 부호화기(140)는 해당 i번째 16x16 화소 블록 단위로 양자화 파라미터를 부호화한다(S717). 즉, 부호화 할 해당 16x16 블록이 SKIP 모드이거나, CBP 값이 0이면, 해당 블록에 대한 양자화 파라미터는 부호화 되지 않는다. 해당 블록이 SKIP 모드도 아니고, CBP 값이 0이 아닌 경우는 수학식 5와 같이 16x16 블록에 대한 양자화 파라미터를 32x32 블록의 양자화 파라미터와 차분하여 부호화한다. 이때, 확장된 매크로블록 내의 서브 블록이 인트라 블록인 경우, 해당 i번째 16x16 서브 블록의 CBP 값이 0이 아닌 경우에 해당 서브 블록에 대한 양자화 파라미터를 32x32 블록의 양자화 파라미터와 차분하여 부호화한다.
[수학식 5]
수학식 5에서 은 현재 32x32 블록 내부의 i번째 16x16 블록의 차분 양자화 파라미터 값이고, 은 현재 32x32 블록 내부의 i번째 16x16 블록의 양자화 파라미터 값을 의미한다.
이와 같은 방식으로 32x32 화소 블록 내의 각각의 16x16 화소 블록에 대하여 순차적으로 양자화 파라미터를 부호화하며, 32x32 화소 블록 내의 마지막 16x16 화소 블록에 대한 양자화 파라미터의 부호화가 수행된 후에 해당 확장된 매크로블록에 대한 양자화 파라미터의 부호화를 종료한다(S719).
도 7에는 확장된 매크로블록이 32x32 화소 블록인 것으로 가정하여 설명하였으나, 확장된 매크로블록의 크기는 32x32 화소 블록에 한정되지 않는다. 예를 들어, 확장된 매크로블록은 64x64 화소 블록, 128x128 화소 블록 또는 그 이상의 화소 블록일 수도 있다. 이와 같은 확장된 매크로블록에 대하여, 양자화 파라미터의 부호화는 확장된 매크로블록의 양자화 파라미터와 분할된 블록의 양자화 파라미터를 차분하여 수행될 수 있다. 예를 들어, 확장된 매크로블록이 64x64 화소 블록인 경우, 확장된 매크로블록의 CBP가 0이 아니면서 64x64 화소 블록이 SKIP 모드가 아니면, 부호화기(140)는 64x64 화소 블록 단위로 양자화 파라미터를 부호화한다. 이때, 확장된 매크로블록에 대해서는 수학식 6과 같이 이전에 부호화 된 64x64 블록의 양자화 파라미터 값과의 차분 값을 부호화할 수 있다. 본 예에서는 확장된 매크로 블록의 양자화 파라미터를 부호화하는 경우에 대하여 설명하였지만, 확장된 매크로 블록의 서브 블록에 대해서 이전에 부호화된 상위, 좌측, 또는 부호화 순서가 이전인 서브 블록의 양자화 파라미터를 이용하여 현재 서브 블록의 양자화 파라미터를 예측할 수도 있다.
[수학식 6]
수학식 6과 같이 산출된 값을 부호화 한 후, 64x64 화소 블록 내의 분할된 32x32 서브 블록들에 대한 양자화 파라미터 부호화 과정을 시작한다. 이때 첫 32x32 서브블록에 순번 0을 부여한다. 이 경우, 만약 시퀀스 헤더나 슬라이스 헤더에 부호화 하거나 또는 약속된 최소 양자화 부호화 블록 크기가 64x64라면 양자화 파라미터는 더 이상 부호화하지 않는다.
부호화기(140)는 64x64 화소 블록 내의 각각의 i번째 32x32 화소 블록의 SKIP 모드 여부를 판단하며, SKIP 모드가 아닌 i번째 32x32 화소 블록에 대하여 해당 블록 내에 0이 아닌 양자화된 변환 계수가 포함되는지의 여부를 판단한다. 64x64 화소 블록 내의 i번째 32x32 화소 블록의 SKIP 모드가 아니며 양자화된 변환계수를 포함하는 경우 즉, CBP가 0보다 큰 것으로 판단되면, 부호화기(140)는 해당 i번째 32x32 화소 블록 단위로 양자화 파라미터를 부호화한다. 즉, 부호화 할 해당 32x32 블록이 SKIP 모드이거나, CBP 값이 0이면, 해당 블록에 대한 양자화 파라미터는 부호화 되지 않는다. 해당 블록이 SKIP 모드도 아니고, CBP 값이 0이 아닌 경우는 수학식 7과 같이 32x32 블록에 대한 양자화 파라미터를 64x64 블록의 양자화 파라미터와 차분하여 부호화한다. 이때, 상위 블록의 양자화 파라미터를 이용하여 현재 양자화 파라미터를 예측하는 기술은 제안하는 기술의 한가지 예로써, 이미 부호화된 좌측, 상단, 또는 부호화 순서가 이전인 블록의 양자화 파라미터를 차분하여 현재 블록의 양자화 파라미터를 부호화하는 방법을 사용할 수도 있다.
[수학식 7]
수학식 7에서 은 현재 64x64 블록 내부의 i번째 32x32 블록의 차분 양자화 파라미터 값이고, 은 현재 64x64 블록 내부의 i번째 32x32 블록의 양자화 파라미터 값을 의미한다. 이때, 각각의 i번째 32x32 화소 블록보다 더 작은 서브블록에 대한 양자화 파라미터의 부호화 과정은 도 7에서 설명한 바와 같다.
이와 같은 방식으로 64x64 화소 블록 내의 각각의 32x32 화소 블록에 대하여 순차적으로 양자화 파라미터를 부호화한다. 특정 32x32 서브블록이 더 작은 크기의 서브블록으로 부호화 될 경우, 도 7의 방법을 32x32 블록에 적용시켜 양자화 파라미터를 부호화한다. 도 7의 과정을 특정 크기 서브블록이 더 작은 크기의 서브블록으로 나뉘어 부호화 할 때 재귀적으로 적용된다. 64x64 화소 블록 내의 마지막 32x32 화소 블록에 대한 양자화 파라미터의 부호화가 수행된 후에 해당 확장된 매크로블록에 대한 양자화 파라미터의 부호화를 종료한다.
여기서, 양자화 파라미터의 부호화는 확장된 매크로블록의 양자화 파라미터 값과 1차 분할된 블록의 양자화 파라미터 값과의 차분 값 즉, 확장된 매크로블록의 크기가 64x64 화소 블록인 경우 확장된 매크로블록의 양자화 파라미터 값과 1차 분할된 32x32 화소 블록의 양자화 파라미터 값의 차분 값을 부호화하는 것으로 설명하였지만, 양자화 파라미터의 차분 값의 부호화는 설명한 것에 한정되는 것이 아니다. 예를 들어, 64x64 화소 블록의 양자화 파라미터의 값과 32x32 화소 블록 내의 서브 블록인 16x16 화소 블록의 양자화 파라미터 값의 차분 값을 부호화할 수도 있다. 또한 주변의 서브 블록을 이용한 양자화 파라미터 예측을 사용할 수도 있다.
이와 같이 본 발명의 실시예는 다양한 크기의 확장된 매크로블록에 대하여 적용이 가능하다. 예를 들면, 확장된 매크로블록의 크기가 64x64 블록인 경우, 전술한 바와 같이 64x64 화소 블록이 SKIP 모드가 아니고 CBP가 0이 아니면 해당 64x64 화소 블록의 양자화 파라미터를 부호화한 후, 64x64 화소 블록 내의 분할된 각각의 32x32 화소 블록에 대하여 전술한 방법으로 양자화 파라미터를 부호화를 수행할 수 있다. 이 경우, 16x16 화소 블록을 최소 단위로 하여 CBP 정보에 기초한 양자화 파라미터의 부호화를 수행할 수 있다. 그러나, 양자화 파라미터의 부호화를 위한 최소 블록단위는 16x16 블록에 한정되는 것이 아니며, 경우에 따라서는 8x8 화소 블록 또는 4x4 화소 블록이 될 수도 있다. 양자화 파라미터를 부호화 할 수 있는 최소 블록단위는 시퀀스 헤더 또는 슬라이스 헤더에 부호화 될 수 있으며, 부호화기와 복호화기가 약속된 크기를 사용할 수도 있다. 또한, 도 7에서는 32x32 화소 블록을 4 개의 16x16 화소 블록으로 분할하여 양자화 파라미터를 부호화하는 것으로 설명하였지만, 분할된 블록의 개수는 이에 한정되는 것이 아니다. 예를 들면, 32x32 화소 블록을 2 개의 32x16 화소 블록이나 2 개의 16x32 화소 블록으로 분할하여 양자화 파라미터의 부호화를 수행할 수 있으며, 32x32 화소 블록 내의 각각의 16x16 화소 블록은 16x8 화소 블록, 8x16 화소 블록, 8x8 화소 블록 등과 같은 더 작은 화소 블록으로 분할하여 양자화 파라미터의 부호화를 수행할 수도 있다.
또한, 도 7에서는 32x32 화소 블록을 4 개의 16x16 화소 블록으로 분할하여 양자화 파라미터를 부호화하는 것으로 설명하였지만, 확장된 매크로블록의 분할 정도에 따라 부호화 계층 및 부호화 되는 화소 블록에 해당하는 임의 크기의 NxM(N와 M은 같거나 또는 같지 않을 수 있다) 화소 블록의 양자화 파라미터의 부호화를 수행할 수도 있다.
또한, 도 7에서는 부호화 대상 블록에 대한 SKIP 모드 여부 및 CBP 정보에 기초하여 양자화 파라미터의 부호화 여부를 결정하는 것으로 설명하였지만, 양자화 파라미터의 부호화 여부는 SKIP 모드 여부 및 CBP 정보에 한정하여 결정되는 것이 아니며, 임의의 다른 신택스나 변수에 의해 결정될 수도 있다.
또한, 도 7에서는 최상위 블록의 양자화 파라미터를 이전 블록의 양자화 파라미터와 차분하여 부호화하는 것으로 설명하였지만, 양자화 파라미터의 부호화는 이에 한정되는 것이 아니며 차분을 포함한 임의의 다른 연산을 통하여 부호화될 수 있으며, 슬라이스 단위 또는 그 외의 양자화 파라미터 값과 차분을 포함하는 임의의 연산을 통하여 최상위 블록의 양자화 파라미터를 부호화할 수도 있다.
필터(170)는 가산기(160)에 의해 복원된 현재 블록들이 누적되어 만들어지는 픽처를 디블록킹 필터 등을 사용하여 필터링을 수행하고, 필터링된 픽처는 픽처 버퍼(180)에 저장되어 다음 픽처의 참조 픽처로서 이용된다.
도 9는 도 1의 영상 부호화 장치에 의한 영상 부호화 방법을 나타낸 흐름도이다.
도 9를 참조하면, 예측기(110)는 확장된 매크로블록을 분할한 서브블록을 예측하여 예측 서브블록을 생성한다(S901). 감산기(120)는 예측기(110)에 의해 분할된 서브블록과 생성된 예측 서브블록을 감산하여 잔여 서브블록을 생성한다(S903). 변환기 및 양자화기(130)는 잔여 서브블록을 서브블록의 크기에 대응하여 변환하고 양자화하여 양자화된 변환계수를 생성하며, 확장된 매크로블록 및 서브블록에 대한 부가정보에 기초하여 양자화 파라미터를 결정한다(S905).
부호화기(140)는, 확장된 매크로블록 및 서브블록에 대한 SKIP 모드 정보, 부호화 블록 패턴(Coded Block Pattern: CBP) 정보, CBPX 플래그 정보 중의 적어도 하나를 포함하는 부가정보를 이용하여 양자화 파라미터를 부호화할 수 있다. 또한, 부호화기(140)는, 현재블록의 부호화 블록 패턴이 0이 아닌 경우에 현재블록 단위로 양자화 파라미터를 부호화할 수 있다. 또한, 부호화기(140)는, 현재블록의 부호화 블록 패턴이 0이 아닌 경우에 현재블록 내의 서브블록들의 각각의 부가정보에 기초하여 각각의 서브블록 단위로 양자화 파라미터를 부호화할 수 있다. 또한, 부호화기(140)는, 현재블록 내의 서브블록들에 대하여 순차적으로 양자화 파라미터를 부호화할 수 있다. 또한, 부호화기(140)는, 확장된 매크로블록 내의 분할된 서브블록들의 부호화 모드가 서로 다른 경우, 각각의 부호화 모드에 대한 적어도 하나의 양자화 파라미터를 부호화할 수 있다. 또한, 부호화기(140)는, 확장된 매크로블록이 서브블록으로 분할되고 서브블록이 하위 서브블록으로 분할되어 부호화가 수행되는 경우, 서브블록의 하위 서브블록들에 대한 양자화 파라미터의 대표값을 부호화할 수 있다.
부호화기(140)는 양자화된 변환계수를 엔트로피 부호하하여 부호화 데이터를 생성한다(S907). 또한, 부호화기(140)는, 현재블록의 부호화 블록 패턴이 0이 아닌 경우에 현재블록 단위로 양자화 파라미터를 부호화할 수 있다. 또한, 현재블록이 인터 예측 부호화 모드인 경우, 부호화기(140)는 현재블록이 SKIP 모드이면 양자화 파라미터의 결정 또는 부호화를 생략할 수 있다.
또한, 부호화기(140)는, 현재블록의 부호화 블록 패턴이 0이 아니고, 현재블록 내의 i번째 서브블록의 부호화 블록 패턴이 0이 아닌 경우에 i번째 서브블록 단위로 양자화 파라미터를 부호화할 수 있다.
도 10은 본 발명의 일 실시예에 따른 영상 복호화 장치를 개략적으로 나타낸 도면이며, 도 11은 도 10에 의한 영상 복호화 방법을 나타낸 흐름도이다.
본 발명의 실시예에 따른 영상 복호화 장치(1000)는 복호화기(1010), 역양자화기 및 역변환기(1020), 예측기(1030) 및 가산기(1040)를 포함할 수 있다. 또한, 영상 복호화 장치(1000)는 필터(1050) 및 픽처 버퍼(1060)를 더 포함할 수 있다.
복호화기(1010)는 부호화된 데이터를 복호화하여 부가정보 및 양자화된 변환계수를 복원하며, 현재블록의 부가정보에 기초하여 적응적으로 결정되어 부호화된 양자화 파라미터의 차분 값을 복원한다(S1101). 양자화 파라미터의 차분 값은, 영상 부호화 장치(100)에 의해 부호화된 확장된 매크로블록의 양자화 파라미터 값과 확장된 매크로블록 내의 서브블록의 양자화 파라미터 값의 차분 값을 의미한다. 여기서, 복호화기(1010)는, 현재블록의 부호화 블록 패턴이 0이 아닌 경우에 현재블록 단위로 양자화 파라미터의 차분 값을 복호화할 수 있다. 또한, 현재블록이 인터 예측 부호화 모드인 경우, 현재블록이 SKIP 모드이면 양자화 파라미터의 복호화를 생략할 수 있다. 또한, 현재블록의 부호화 블록 패턴이 0이 아니고, 현재블록 내의 i번째 서브블록의 부호화 블록 패턴이 0이 아닌 경우에 i번째 서브블록 단위로 양자화 파라미터의 차분 값을 복호화할 수 있다.
이때, 복호화기(1010)는, 시퀀스 헤더 또는 슬라이스 헤더로부터 양자화 파라미터를 복원하기 위한 최소 서브블록의 크기를 복호화하도록 구현될 수 있다.
또한, 복호화기(1010)는, 현재블록의 좌측, 상단의 이미 복호화된 블록, 또는 복호화 순서가 이전인 블록의 양자화 파라미터를 이용하여 현재블록의 양자화 파라미터를 예측하도록 구현될 수도 있다.
역양자화기 및 역변환기(1020)는 양자화된 변환계수를 역양자화 및 역변환하여 잔여블록을 복원한다(S1103).
예측기(1030)는 현재블록을 복원되는 부가정보를 이용하여 예측블록을 생성한다(S1105). 예측기(1030)에 의한 예측블록의 생성방법은 영상 부호화 장치(100)의 예측기(110)와 동일하다.
가산기(1040)는 예측블록과 잔여블록을 가산하여 현재블록을 복원한다(S1107).
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 또한, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 따라서, 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 영상 부호화 장치
110: 예측기 120: 감산기
130: 변환기 및 양자화기 140: 부호화기
150: 역양자화기 및 역변환기 160: 가산기
170: 필터 180: 픽처 버퍼
110: 예측기 120: 감산기
130: 변환기 및 양자화기 140: 부호화기
150: 역양자화기 및 역변환기 160: 가산기
170: 필터 180: 픽처 버퍼
Claims (9)
- 영상 복호화 방법에 있어서,
양자화 파라미터 정보가 복호화되는 최소 블록 단위의 크기를 결정하는 단계;
복호화할 현재블록이 스킵 블록(skip block)인지 여부를 지시하는 스킵 정보를 비트스트림으로부터 복호화하는 단계;
상기 현재 블록이 스킵 블록일 때,
상기 비트스트림으로부터 상기 현재블록의 움직임 정보를 복호화함으로써 상기 현재블록의 움직임벡터를 결정하고,
상기 현재블록의 잔차 신호에 대한 정보를 복호화함 없이 상기 현재블록의 움직임벡터를 이용하여 예측된 예측 블록을 상기 현재블록으로서 복원하는 단계; 및
상기 현재블록이 스킵 블록이 아닐 때,
상기 비트스트림으로부터 상기 현재블록의 예측정보를 복호화하고,
상기 현재블록에 대응하는 양자화된 변환 계수 중 적어도 하나가 0이 아닐 때, 상기 현재블록에 대응하는 양자화된 변환 계수를 상기 비트스트림으로부터 복호화하며,
양자화 파라미터를 이용하여 상기 양자화된 변환 계수로부터 잔차 신호를 복원하고,
상기 예측정보와 상기 복원된 잔차 신호를 이용하여 상기 현재블록을 복원하는 단계를 포함하되,
상기 현재블록의 크기가 상기 최소 블록 단위의 크기보다 크거나 같을 때, 상기 양자화 파라미터는 상기 비트스트림으로부터 상기 현재블록의 양자화 파라미터 정보를 복호화하여 획득하고,
상기 현재블록의 크기가 상기 최소 블록 단위의 크기보다 작을 때, 상기 양자화 파라미터는 상기 비트스트림으로부터 상기 현재블록이 포함된 상기 최소 블록 단위 내의 모든 블록들에 적용되는 양자화 파라미터 정보를 복호화하여 획득하는 것을 특징으로 하는 영상 복호화 방법. - 제1항에 있어서,
상기 현재블록의 움직임 정보는 상기 현재블록의 주변블록으로부터 유도되는 예측 움직임벡터에 대한 정보이고,
상기 현재블록이 스킵 블록일 때 상기 예측 움직임벡터가 상기 현재블록의 움직임벡터로서 결정되는 것을 특징으로 하는 영상 복호화 방법. - 삭제
- 제1항에 있어서,
상기 비트스트림으로부터 상기 최소 블록 단위의 크기에 대한 정보를 복호화하는 단계를 더 포함하고,
상기 최소 블록 단위의 크기는 상기 최소 블록 크기에 대한 정보를 이용하여 결정되는 것을 특징으로 하는 영상 복호화 방법. - 제4항에 있어서,
상기 최소 블록 단위의 크기에 대한 정보는 상기 현재블록이 위치하는 픽처와 관련된 정보를 포함하는 헤더 정보로부터 복호화되는 것을 특징으로 하는 영상 복호화 방법. - 제5항에 있어서,
상기 최소 블록 단위의 크기에 대한 정보는 시퀀스 또는 슬라이스 단위로 복호화되는 것을 특징으로 하는 영상 복호화 방법. - 삭제
- 제1항에 있어서,
상기 현재블록의 크기가 상기 최소 블록 단위의 크기보다 작을 때, 상기 현재블록이 상기 최소 블록 단위 내에 포함된 블록들 중 복호화 순서에서 첫 번째 블록인 경우에만 상기 양자화 파라미터에 대한 정보가 복호화되는 것을 특징으로 하는 영상 복호화 방법. - 제1항에 있어서,
상기 현재블록의 크기는 8x8부터 64x64까지의 블록 크기 중에서 결정되는 것을 특징으로 하는 영상 복호화 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20100046828 | 2010-05-19 | ||
KR1020100046828 | 2010-05-19 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110041832A Division KR101939699B1 (ko) | 2010-05-19 | 2011-05-03 | 영상 부호화/복호화 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180101314A KR20180101314A (ko) | 2018-09-12 |
KR101984764B1 true KR101984764B1 (ko) | 2019-05-31 |
Family
ID=45396206
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110041832A KR101939699B1 (ko) | 2010-05-19 | 2011-05-03 | 영상 부호화/복호화 장치 및 방법 |
KR1020180106599A KR101984764B1 (ko) | 2010-05-19 | 2018-09-06 | 영상 부호화/복호화 장치 및 방법 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110041832A KR101939699B1 (ko) | 2010-05-19 | 2011-05-03 | 영상 부호화/복호화 장치 및 방법 |
Country Status (5)
Country | Link |
---|---|
US (3) | US9706204B2 (ko) |
EP (1) | EP2574056A4 (ko) |
KR (2) | KR101939699B1 (ko) |
CN (2) | CN103004194B (ko) |
WO (1) | WO2011145819A2 (ko) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101703327B1 (ko) * | 2010-01-14 | 2017-02-06 | 삼성전자 주식회사 | 계층적 데이터 단위의 패턴 정보를 이용하는 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치 |
KR101675118B1 (ko) | 2010-01-14 | 2016-11-10 | 삼성전자 주식회사 | 스킵 및 분할 순서를 고려한 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치 |
CN103004194B (zh) * | 2010-05-19 | 2016-08-17 | Sk电信有限公司 | 图像编码/解码设备和方法 |
US20120114034A1 (en) * | 2010-11-08 | 2012-05-10 | Mediatek Inc. | Method and Apparatus of Delta Quantization Parameter Processing for High Efficiency Video Coding |
WO2012096150A1 (ja) * | 2011-01-12 | 2012-07-19 | 三菱電機株式会社 | 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法 |
US9654785B2 (en) * | 2011-06-09 | 2017-05-16 | Qualcomm Incorporated | Enhanced intra-prediction mode signaling for video coding using neighboring mode |
WO2013105622A1 (ja) * | 2012-01-13 | 2013-07-18 | シャープ株式会社 | 画像復号装置、画像符号化装置、および符号化データのデータ構造 |
KR102161741B1 (ko) * | 2013-05-02 | 2020-10-06 | 삼성전자주식회사 | HEVC(high efficiency video coding)에서 코딩 유닛에 대한 양자화 파라미터를 변화시키는 방법과 장치, 및 시스템 |
US9998739B2 (en) * | 2015-03-06 | 2018-06-12 | Qualcomm Incorporated | Optimization for encoding video data using non-square partitions |
US10123045B2 (en) * | 2015-07-24 | 2018-11-06 | Qualcomm Incorporated | Modification to block size for transform mode in display stream compression |
US10531102B2 (en) * | 2015-09-10 | 2020-01-07 | Samsung Electronics Co., Ltd. | Encoding device, decoding device, and encoding and decoding method thereof |
CN106534859B (zh) * | 2015-09-11 | 2021-01-15 | 中兴通讯股份有限公司 | 基于spice协议的图像传输方法及装置 |
ES2710807B1 (es) * | 2016-03-28 | 2020-03-27 | Kt Corp | Metodo y aparato para procesar senales de video |
US11758136B2 (en) * | 2016-06-24 | 2023-09-12 | Electronics And Telecommunications Research Institute | Method and apparatus for transform-based image encoding/decoding |
US10470149B2 (en) * | 2016-07-27 | 2019-11-05 | Lg Electronics Inc. | Method and apparatus for performing MM attach and service request procedure for network slice based new radio access technology in wireless communication system |
CN116170584A (zh) * | 2017-01-16 | 2023-05-26 | 世宗大学校产学协力团 | 影像编码/解码方法 |
CN106851274B (zh) * | 2017-03-31 | 2019-08-06 | 北京奇艺世纪科技有限公司 | 差分量化参数的确定方法、确定系统及视频编码器 |
EP4283991A3 (en) * | 2017-09-28 | 2024-02-28 | Samsung Electronics Co., Ltd. | Encoding method and device, and decoding method and device |
RU2752011C1 (ru) * | 2018-04-01 | 2021-07-21 | Б1 Инститьют Оф Имидж Текнолоджи, Инк. | Способ и оборудование для кодирования/декодирования изображения |
CN117793346A (zh) * | 2019-01-31 | 2024-03-29 | 北京字节跳动网络技术有限公司 | 视频编解码中的细化量化步骤 |
WO2020182207A1 (en) * | 2019-03-13 | 2020-09-17 | Beijing Bytedance Network Technology Co., Ltd. | Partitions on sub-block transform mode |
WO2021005349A1 (en) * | 2019-07-05 | 2021-01-14 | V-Nova International Ltd | Quantization of residuals in video coding |
WO2021030788A1 (en) | 2019-08-15 | 2021-02-18 | Bytedance Inc. | Entropy coding for palette escape symbol |
JP7494289B2 (ja) | 2019-08-15 | 2024-06-03 | バイトダンス インコーポレイテッド | 異なるパーティション構造をもつパレット・モード |
CN114424545B (zh) * | 2019-09-19 | 2024-07-16 | 字节跳动有限公司 | 用于调色板模式的量化参数推导 |
CN110677647B (zh) * | 2019-09-27 | 2024-02-09 | 腾讯科技(深圳)有限公司 | 视频解码、编码方法和装置、存储介质与解码器、编码器 |
EP4068784A4 (en) | 2019-11-27 | 2024-01-17 | LG Electronics Inc. | METHOD AND APPARATUS FOR SIGNALING IMAGE PARTITIONING INFORMATION |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050190977A1 (en) * | 2003-12-02 | 2005-09-01 | Samsung Electronics Co., Ltd. | Method and apparatus for video encoding |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020021758A1 (en) * | 2000-03-15 | 2002-02-21 | Chui Charles K. | System and method for efficient transmission and display of image details by re-usage of compressed data |
KR100364748B1 (ko) | 2001-01-05 | 2002-12-16 | 엘지전자 주식회사 | 영상 변환 부호화 장치 |
EP2373035B1 (en) * | 2001-11-30 | 2015-11-25 | NTT DoCoMo, Inc. | Moving picture encoding device, moving picture decoding device, moving picture encoding method, moving picture decoding method, program, and computer readable recording medium storing program |
US7003035B2 (en) * | 2002-01-25 | 2006-02-21 | Microsoft Corporation | Video coding methods and apparatuses |
ES2355656T3 (es) * | 2002-04-18 | 2011-03-29 | Kabushiki Kaisha Toshiba | Procedimiento y aparato para decodificación de vídeo . |
CN1589023A (zh) * | 2004-08-06 | 2005-03-02 | 联合信源数字音视频技术(北京)有限公司 | 一种基于上下文的多码表变长编解码方法及编解码装置 |
KR20060016947A (ko) * | 2004-08-19 | 2006-02-23 | 엘지전자 주식회사 | Mpeg 비디오 부호화 시스템 및 부호화 방법 |
CN101023674B (zh) * | 2004-09-16 | 2010-08-18 | 汤姆森特许公司 | 用于中间帧的快速模式判定的方法和装置 |
JP2006140758A (ja) * | 2004-11-12 | 2006-06-01 | Toshiba Corp | 動画像符号化方法、動画像符号化装置および動画像符号化プログラム |
KR100746011B1 (ko) * | 2005-08-24 | 2007-08-06 | 삼성전자주식회사 | 잔차 예측의 성능 개선 방법, 상기 방법을 이용한 비디오인코더 및 비디오 디코더 |
KR100750138B1 (ko) * | 2005-11-16 | 2007-08-21 | 삼성전자주식회사 | 인간의 시각 특성을 이용한 영상의 부호화, 복호화 방법 및장치 |
US8848789B2 (en) * | 2006-03-27 | 2014-09-30 | Qualcomm Incorporated | Method and system for coding and decoding information associated with video compression |
CA2681025C (en) * | 2007-03-20 | 2015-10-13 | Fujitsu Limited | Video encoding and decoding apparatus and method using quantization in sub-blocks |
KR101431545B1 (ko) * | 2008-03-17 | 2014-08-20 | 삼성전자주식회사 | 영상의 부호화, 복호화 방법 및 장치 |
KR20090129926A (ko) * | 2008-06-13 | 2009-12-17 | 삼성전자주식회사 | 영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치 |
US8213503B2 (en) * | 2008-09-05 | 2012-07-03 | Microsoft Corporation | Skip modes for inter-layer residual video coding and decoding |
EP2947878B1 (en) * | 2010-04-23 | 2017-02-15 | M&K Holdings Inc. | Apparatus for encoding an image |
CN103004194B (zh) * | 2010-05-19 | 2016-08-17 | Sk电信有限公司 | 图像编码/解码设备和方法 |
US20120114034A1 (en) | 2010-11-08 | 2012-05-10 | Mediatek Inc. | Method and Apparatus of Delta Quantization Parameter Processing for High Efficiency Video Coding |
RU2658146C9 (ru) * | 2012-04-12 | 2018-12-12 | ДжейВиСи КЕНВУД КОРПОРЕЙШН | Устройство декодирования движущегося изображения и способ декодирования движущегося изображения |
US9503702B2 (en) * | 2012-04-13 | 2016-11-22 | Qualcomm Incorporated | View synthesis mode for three-dimensional video coding |
-
2011
- 2011-05-03 CN CN201180035106.XA patent/CN103004194B/zh active Active
- 2011-05-03 KR KR1020110041832A patent/KR101939699B1/ko active IP Right Grant
- 2011-05-03 CN CN201610644797.8A patent/CN106067973B/zh active Active
- 2011-05-03 WO PCT/KR2011/003292 patent/WO2011145819A2/ko active Application Filing
- 2011-05-03 EP EP11783701.3A patent/EP2574056A4/en not_active Ceased
- 2011-05-03 US US13/698,840 patent/US9706204B2/en active Active
-
2015
- 2015-07-08 US US14/794,204 patent/US9445101B2/en active Active
-
2017
- 2017-01-09 US US15/401,752 patent/US9729881B2/en active Active
-
2018
- 2018-09-06 KR KR1020180106599A patent/KR101984764B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050190977A1 (en) * | 2003-12-02 | 2005-09-01 | Samsung Electronics Co., Ltd. | Method and apparatus for video encoding |
Also Published As
Publication number | Publication date |
---|---|
WO2011145819A2 (ko) | 2011-11-24 |
CN106067973B (zh) | 2019-06-18 |
KR20180101314A (ko) | 2018-09-12 |
US20150312570A1 (en) | 2015-10-29 |
EP2574056A4 (en) | 2016-03-30 |
WO2011145819A3 (ko) | 2012-03-01 |
US20170118472A1 (en) | 2017-04-27 |
CN103004194B (zh) | 2016-08-17 |
KR20110127596A (ko) | 2011-11-25 |
US20130064293A1 (en) | 2013-03-14 |
CN106067973A (zh) | 2016-11-02 |
EP2574056A2 (en) | 2013-03-27 |
CN103004194A (zh) | 2013-03-27 |
US9729881B2 (en) | 2017-08-08 |
KR101939699B1 (ko) | 2019-01-18 |
US9706204B2 (en) | 2017-07-11 |
US9445101B2 (en) | 2016-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101984764B1 (ko) | 영상 부호화/복호화 장치 및 방법 | |
KR101874840B1 (ko) | 영상 부호화/복호화 장치 및 방법 | |
KR101543319B1 (ko) | 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치 | |
KR101791242B1 (ko) | 영상 부호화/복호화 장치 및 방법 | |
KR101947657B1 (ko) | 인트라 예측 정보 부호화 방법 및 장치 | |
KR101947658B1 (ko) | 영상 복호화 방법 및 장치 | |
KR101444667B1 (ko) | 양방향 인트라 예측을 이용한 영상 부호화/복호화 방법 및 장치 | |
KR101673028B1 (ko) | 영상 부호화/복호화 장치 및 방법 | |
CN112369034B (zh) | 使用合并候选的视频编码方法和装置 | |
KR101648065B1 (ko) | 고정밀 필터를 이용한 영상 부호화/복호화 방법 및 장치 | |
KR20110115987A (ko) | 영상 부호화/복호화 장치 및 방법 | |
KR20130045148A (ko) | 인트라 예측 모드에서의 영상 부호화 방법 및 장치 | |
KR20130003816A (ko) | 영상 부호화 및 복호화 방법과 장치 | |
TW201644272A (zh) | 高級運動向量預測模式中所用的圖像編碼設備 | |
KR20130045151A (ko) | 복원 블록을 생성하는 방법 및 장치 | |
KR101432779B1 (ko) | 움직임 보상 프레임의 선택적 필터링을 이용한 영상 부호화/복호화 방법 및 장치와 그를 위한 인터 예측 방법 및 장치 | |
KR101449692B1 (ko) | 영상 부호화 장치 및 그 방법, 및 영상 복호화 장치 및 그 방법 | |
KR20230144426A (ko) | 영상 부호화/복호화 방법 및 장치 | |
KR20110042602A (ko) | 움직임 보상 프레임의 필터링을 이용한 영상 부호화/복호화 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |