KR20160003593A - 영상 부호화/복호화 방법 및 장치 - Google Patents

영상 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
KR20160003593A
KR20160003593A KR1020150179367A KR20150179367A KR20160003593A KR 20160003593 A KR20160003593 A KR 20160003593A KR 1020150179367 A KR1020150179367 A KR 1020150179367A KR 20150179367 A KR20150179367 A KR 20150179367A KR 20160003593 A KR20160003593 A KR 20160003593A
Authority
KR
South Korea
Prior art keywords
block
information
sub
skip
node
Prior art date
Application number
KR1020150179367A
Other languages
English (en)
Inventor
김수년
임정연
송진한
문주희
이영렬
김해광
전병우
박형미
박민철
김동원
김기백
이주옥
Original Assignee
에스케이텔레콤 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이텔레콤 주식회사 filed Critical 에스케이텔레콤 주식회사
Publication of KR20160003593A publication Critical patent/KR20160003593A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/179Methods 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 a scene or a shot
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 영상 부호화에 관한 것으로, 부호화하고자 하는 블록이 스킵 블록인지 여부를 나타내는 스킵 정보를 부호화하고, 상기 블록이 스킵 블록인지 여부에 따라 스킵 움직임 정보를 부호화하거나 상기 블록을 트리 구조로 분할하기 위한 분할 정보를 포함하는 변환 정보 및 상기 블록의 예측 정보를 부호화하는 부호화 정보 부호화기; 및 상기 트리 구조에 의해 상기 블록으로부터 분할된 서브블록에 대한 잔차 신호 정보를 부호화하는 영상 부호화기를 포함하는 영상 부호화 장치를 제공한다.

Description

영상 부호화/복호화 방법 및 장치{Video Coding Method and Apparatus}
본 발명의 실시예는 영상 부호화/복호화 방법 및 장치에 관한 것이다. 더욱 상세하게는, 영상을 부호화하는 데 이용되는 부호화 정보를 효율적으로 부호화하고 다양한 부호화 방식과 복호화 방식을 선택적으로 이용하여 영상을 부호화할 수 있도록 함으로써 영상의 압축 효율을 향상시킬 수 있는 영상 부호화/복호화 방법 및 장치에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 발명의 실시예에 대한 배경 정보를 제공할 뿐 반드시 종래기술을 구성하는 것은 아니다.
동영상 데이터를 압축기술로는 H.261, H.263, MPEG-2, MPEG-4 등이 있다. 이러한 비디오 압축 표준은 각 영상을 휘도 성분의 16x16 크기의 화소들과 각 색차 성분의 8x8 크기의 화소들의 사각 영역으로 이루어진 고정된 크기를 가지는 매크로블록(Macroblock)들로 나누어 부호화한다. 각 매크로블록의 모든 휘도와 색차 성분들은 공간적으로나 시간적으로 예측되고, 예측 잔여분은 변환 및 양자화, 엔트로피 코딩이 수행되어 전송된다.
기존의 영상부호화 장치에서 사용하는 블록모드는 현재 부호화 대상 블록이 예측 움직임 벡터를 사용하고 부호화 할 변환계수가 없는 블록임을 나타내는 플래그를 부호화하고 더 이상의 정보는 부호화하지 않는다. 그리고 예측 움직임 벡터를 사용하지 않거나 부호화할 변환계수가 있는 블록인 경우 블록의 타입 정보와 예측 정보(예측움직임 벡터와의 차이 벡터와 참조픽쳐 번호)를 부호화하고 변환계수를 부호화한다.
하지만, 이와 같은 통상적인 영상 압축 기술에서는 부호화할 데이터로 차이 움직임 벡터만 있고 부호화할 변환계수가 없는 블록의 경우, 또는 차이 움직임 벡터가 없고 부호화할 변환계수만 있는 블록을 부호화할 경우 효율적인 부호화가 어려운 문제점이 있으며, 영상을 부호화하는 데 이용되는 다양한 정보 등의 효율적인 부호화가 어려운 문제점이 있다.
이러한 문제점을 해결하기 위해 본 발명의 실시예는, 영상을 부호화하는 데 이용되는 부호화 정보를 효율적으로 부호화하고 다양한 부호화 방식과 복호화 방식을 선택적으로 이용하여 영상을 부호화할 수 있도록 함으로써 영상의 압축 효율을 향상시키는 데 목적이 있다.
전술한 목적을 달성하기 위해 본 발명의 일 측면은 부호화하고자 하는 블록이 스킵 블록인지 여부를 나타내는 스킵 정보를 부호화하고, 상기 블록이 스킵 블록인지 여부에 따라 스킵 움직임 정보를 부호화하거나 상기 블록을 트리 구조로 분할하기 위한 분할 정보를 포함하는 변환 정보 및 상기 블록의 예측 정보를 부호화하는 부호화 정보 부호화기; 및 상기 트리 구조에 의해 상기 블록으로부터 분할된 서브블록에 대한 잔차 신호 정보를 부호화하는 영상 부호화기를 포함하는 것을 특징으로 하는 영상 부호화 장치를 제공한다.
상기 부호화 정보 부호화기는, 최대 서브블록 크기와 최소 서브블록 크기 간의 차이에 대한 제1 정보 및 상기 최소 서브블록 크기에 대한 제2 정보를 포함하는 부가 정보를 부호화하고, 상기 최대 서브블록 크기와 상기 최소 서브블록 크기에 근거하여 상기 트리 구조의 최상위 레이어로부터 각 노드가 하위 레이어의 노드들로 분할되는지 여부를 지시하는 분할 플래그를 부호화함으로써 상기 변환 정보를 부호화할 수 있다. 또한, 상기 영상 부호화기는, 더 이상 분할되지 않는 서브블록의 잔차 신호 정보를 부호화할 수 있다.
상기 최소 서브블록 크기를 갖는 서브블록 또는 상기 최대 서브블록 크기보다 큰 서브블록에 대응하는 노드가 분할되는지 여부를 지시하는 분할 플래그는 부호화되지 않을 수 있다.
한편, 어느 한 노드가 하위 레이어의 노드들로 분할될 때, 상기 어느 한 노드에 대응하는 서브블록은 상기 하위 레이어의 노드들에 각각 대응하는 4개의 동일 크기 서브블록으로 분할된다.
한편, 상기 블록으로부터 분할되는 서브블록은 상기 최소 서브블록 크기 이상 및 상기 최대 서브블록 크기 이하의 크기를 가진다.
한편, 상기 제1 정보 및 상기 제2 정보는 로그 스케일(log scale)의 값일 수 있으며, 이때 상기 제1 정보는 log2 (최대 서브블록 크기 / 최소 서브블록 크기)으로 표현될 수 있으며, 상기 제1 정보와 제2 정보는 비트스트림에 시퀀스 단위로 부호화될 수 있다.
본 발명의 또 다른 측면은, 부호화하고자 하는 블록이 스킵 블록인지 여부를 나타내는 스킵 정보를 부호화하는 단계; 상기 블록이 스킵 블록인지 여부에 따라, 스킵 움직임 정보를 부호화하거나 상기 블록을 트리 구조로 분할하기 위한 분할 정보를 포함하는 변환 정보 및 상기 블록의 예측 정보를 부호화하는 단계; 및 상기 블록이 스킵 블록일 때, 상기 트리 구조에 의해 상기 블록으로부터 분할된 서브블록에 대한 잔차 신호 정보를 부호화하는 단계를 포함하는 것을 특징으로 하는 영상 부호화 방법을 제공한다.
여기서, 상기 변환 정보는, 최대 서브블록 크기와 최소 서브블록 크기 간의 차이에 대한 제1 정보 및 상기 최소 서브블록 크기에 대한 제2 정보를 포함하는 부가 정보를 부호화하고, 상기 최대 서브블록 크기와 상기 최소 서브블록 크기에 근거하여 상기 트리 구조의 최상위 레이어로부터 각 노드가 하위 레이어의 노드들로 분할되는지 여부를 지시하는 분할 플래그를 부호화함으로써 부호화될 수 있다. 또한, 상기 잔차 신호 정보는 더 이상 분할되지 않는 서브블록에 대해 부호화될 수 있다.
이상에서 설명한 바와 같이 본 발명의 실시예에 의하면, 영상을 부호화하는 데 이용되는 부호화 정보를 효율적으로 부호화하고 다양한 부호화 방식과 복호화 방식을 선택적으로 이용하여 영상을 부호화할 수 있도록 함으로써 영상의 압축 효율을 향상시킬 수 있다.
또한, 스킵블록을 다양한 방식으로 정의하고 영상의 특성 및/또는 구현 방식이나 필요에 따라 다양한 방식을 선택적으로 이용하여 영상을 부호화하고 복호화할 수 있으므로, 영상의 압축 효율을 향상시킬 수 있다.
또한, 영상에 대한 다양한 정보를 트리 구조를 이용하여 부호화/복호화함으로써, 부호화 효율을 향상시켜 영상의 압축 효율을 향상시킬 수 있다.
도 1은 본 발명의 제1 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도,
도 2는 본 발명의 제1 실시예에 따른 다양한 크기의 인트라 예측 부호화와 인터 예측 부호화를 위한 매크로블록과 서브블록을 나타낸 예시도,
도 3은 본 발명의 제1 실시예에 따른 분할 타입별 번호를 나타낸 예시도,
도 4는 본 발명의 제1 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도,
도 5는 본 발명의 제1 실시예에 따라 부호화된 비트스트림의 신택스 구조를 나타낸 예시도,
도 6 및 도 7은 본 발명의 제1 실시예에 따라 트리 구조를 이용하여 분할 타입 정보를 부호화하는 과정을 설명하기 위한 예시도,
도 8은 본 발명의 제1 실시예에 따른 영상 복호화 장치를 간략하게 나타낸 블록 구성도,
도 9는 본 발명의 제1 실시예에 따른 영상 복호화 방법을 설명하기 위한 순서도,
도 10은 본 발명의 제2 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도,
도 11은 본 발명의 제2 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도,
도 12는 본 발명의 제2 실시예에 따른 영상 복호화 장치(1200)의 구성을 간략하게 나타낸 블록 구성도,
도 13은 본 발명의 다른 실시예에 따른 트리 구조를 나타낸 예시도,
도 14는 본 발명의 또 제3 실시예에 따른 트리 구조를 이용하여 부호화 장치를 간략하게 나타낸 블록 구성도,
도 15는 본 발명의 또 제3 실시예에 따른 트리 구조 구조를 나타낸 예시도,
도 16은 본 발명의 또 제3 실시예에 따라 트리 구조로 표현된 정보가 부호화된 결과를 나타낸 예시도,
도 17은 본 발명의 또 제3 실시예에 따라 노드를 하위 계층으로 분할하는 다른 방식을 나타낸 예시도,
도 18 및 도 19는 영역의 정보가 다른 방식으로 분포된 경우 그룹화되는 형태를 나타낸 예시도,
도 20은 본 발명의 또 제3 실시예에 따른 트리 구조를 이용한 부호화 방법을 설명하기 위한 순서도,
도 21은 본 발명의 또 제3 실시예에 따른 트리 구조를 이용한 복호화 장치를 간략하게 나타낸 블록 구성도,
도 22는 본 발명의 또 제3 실시예에 따른 트리 구조를 이용한 복호화 방법을 설명하기 위한 순서도이다.
이하에서 후술할 영상 부호화 장치(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), TV 등과 같은 사용자 단말기이거나 응용 서버와 서비스 서버 등 서버 단말기일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하거나 복호화하거나 부호화 또는 복호화를 위해 인터 또는 인트라 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미할 수 있다.
또한, 영상 부호화 장치에 의해 비트스트림(부호화데이터)으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등과 같은 다양한 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 영상 복호화 장치에서 복호화되어 영상으로 복원되고 재생될 수 있다.
이하의 설명에서는 입력 영상이 매크로블록 단위로 분할되어 부호화되고 복호화되는 것으로 설명하지만, 본 발명의 실시예는 이에 한정되지 않고 매크로블록과 같이 정형화된 블록의 형태가 아닌 원형, 사다리꼴, 6각형 등 다양한 비정형의 영역으로 분할되어 분할된 영역 단위로 부호화되고 복호화될 수도 있다.
또한, 매크로블록의 크기는 고정 크기가 아닌 가변크기일 수도 있을 것이다. 이 경우, 사용가능한 매크로블록의 최대 크기, 최소 크기 및 현재 부호화 대상 픽쳐 또는 영역의 매크로블록의 크기는 전체 시퀀스 단위, 픽처 그룹(GOP), 픽쳐 또는 슬라이스 등의 단위로 결정될 수 있으며, 이러한 매크로블록의 크기 정보는 헤더 정보로 비트스트림에 포함될 수 있다. 예를 들어 사용가능한 매크로블록의 최대크기, 최소 크기 및 현재 부호화 대상 픽쳐 또는 영역의 매크로블록의 크기는 시퀀스, GOP, 픽처, 슬라이스 등 단위로 결정하고 매크로블록의 최대 크기 및 최소 크기는 시퀀스, GOP, 픽처, 슬라이스 등의 헤더 정보로 비트스트림에 포함시켜 부호화하고, 현재 부호화 대상 픽쳐 또는 영역의 매크로블록의 크기는 최대 크기의 매크로블록으로부터 분할 여부를 나타내는 플래그를 비트스트림에 포함시킴으로써 가변 크기의 매크로블록을 사용할 수도 있다.
이때, 매크로블록의 최대 및 최소 크기는 가로 크기와 세로 크기를 따로 설정하여 임의의 크기의 매크로블록을 사용할 수도 있다. 또한 부호화할 매크로블록 최대 및 최소 크기값은 실제 크기를 지정할 수도 있고 소정의 크기로부터 몇 배를 키울지 또는 축소시킬지에 대한 값을 보낼 수도 있다. 만약 최대 매크로블록의 크기를 소정의 크기로부터 몇 배 키울지에 대한 값을 부호화하고 소정의 크기가 16인 경우, log2(선택된 MBsize/16)의 값을 부호화하는데, 예를 들어 매크로블록의 크기가 16x16인 경우 0을 부호화하고 32x32 크기인 경우 1을 부호화한다. 또한, 가로와 세로에 대한 비율을 따로 부호화할 수도 있다.
또는, 최대 매크로블록의 크기값을 전술한 방법을 통해 부호화한 후 최소 매크로블록의 크기값은 최대 매크로블록 크기에 대한 최소 매크로블록 크기의 비율값을 나타내는 log2(최대 매크로블록의 크기/최소 매크로블록의 크기)값을 부호화할 수도 있다. 또는 반대로 최소 매크로블록의 크기값을 전술한 방법을 통해 부호화한 후, 최대 매크로블록의 크기값을 log2(최대 매크로블록의 크기/최소 매크로블록의 크기)값을 통해 부호화할 수도 있다.
도 1은 본 발명의 제1 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 제1 실시예에 따른 영상 부호화 장치(100)는 부호화 정보 부호화기(110) 및 영상 부호화기(120)를 포함하여 구성될 수 있다. 부호화 정보 부호화기(Encoding Information Encoder, 110)는 매크로블록 정보, 예측 정보, 변환 정보, 잔여 신호 정보 등과 같은 부호화 정보를 부호화한다. 또한 부호화 정보 부호화기(110)는 영상의 화소 정보 그 자체를 부호화할 수도 있다.
여기서 매크로블록 정보란 사용 가능한 최대 매크로블록 크기, 사용 가능한 최소 매크로블록 크기, 현재 부호화 대상 픽처 및 영역의 매크로블록 크기, 매크로블록의 분할 정보 등과 같은 정보가 될 수 있다.
스킵 정보란 매크로블록 또는 블록이 스킵 매크로블록인지 여부를 나타내는 정보, 스킵 블록 내 서브블록들의 크기 정보, 어떤 특정 정보만을 부호화하는 스킵 블록인지를 나타내는 스킵 타입 정보가 될 수 있다.
예측 정보란 해당 블록이 인트라 블록인지 인터 블록인지를 나타내는 예측 타입, 예측을 위한 블록 내 서브블록의 크기 및 모양을 나타내는 제1 분할 정보, 인트라 예측 모드 정보, 움직임 벡터 및 참조 픽터 정보와 같은 움직임 정보 등일 수 있다. 또한 움직임 정보란 스킵 블록의 움직임 추정 및 보상을 위한 스킵 움직임 벡터(Motion Vector), 움직임 벡터의 예측 방향(Prediction Direction), 최적의 움직임 벡터 예측 후보(Motion Vector Prediction Candidate), 참조 영상의 번호(Reference Picture Index), 최적의 움직임 벡터 정밀도(Motion Vector Precision) 등과 같은 정보가 될 수 있다.
변환 정보란 사용 가능한 최대 변환의 크기, 사용 가능한 최소 변환의 크기, 변환의 크기를 나타내기 위한 제2 분할 정보, 다양한 변환들 중 어떠한 변환이 사용되었는지를 나타내는 변환 타입 정보 등과 같은 정보가 될 수 있다. 여기서 변환의 최대, 최소 크기 및 현재 부호화 대상 영역의 변환 크기는 매크로블록의 크기와 같이 전체 시퀀스 단위, 픽처 그룹(GOP), 픽쳐 또는 슬라이스 등의 단위로 결정될 수 있으며, 헤더 정보로 비트스트림에 포함될 수 있다. 예를 들어, 사용 가능한 변환의 최대크기, 최소 크기 및 현재 부호화 대상 픽쳐 또는 영역의 변환의 크기는 시퀀스, GOP, 픽처, 슬라이스 등 단위로 결정하고 변환의 최대 크기 및 최소 크기는 시퀀스, GOP, 픽처, 슬라이스 등의 헤더 정보로 비트스트림에 포함시켜 부호화하고, 현재 부호화 대상 픽쳐 또는 영역의 변환의 크기는 최대 크기의 변환으로부터 분할 여부를 나타내는 플래그를 비트스트림에 포함시킬 수도 있다. 이때 변환의 최대 및 최소 크기는 가로 크기와 세로 크기를 따로 설정할 수도 있다.
또한, 변환의 최대 및 최소 크기값은 실제 크기를 지정할 수도 있고 소정의 크기로부터 몇 배를 키울지 또는 축소 시킬지에 대한 값을 보낼 수도 있다. 또한, 최대 변환의 크기를 소정의 크기로부터 몇 배 키울지에 대한 값을 부호화할 수도 있다. 또한, 가로와 세로에 대한 비율을 따로 부호화할 수도 있다.
또는, 최대 변환의 크기값을 전술한 방법을 통해 부호화한 후 최소 변환의 크기값은 최대 변환 크기에 대한 최소 변환 크기의 비율값을 나타내는 log2(최대 변환의 크기/최소 변환의 크기)값을 부호화할 수도 있다. 또는 반대로 최소 변환의 크기값을 전술한 방법을 통해 부호화한 후, 최대 변환의 크기값을 log2(최대 변환의 크기/최소 변환의 크기)값을 통해 부호화할 수도 있다.
잔여 신호 정보란 소정 블록내 0이 아닌 변환계수가 있는지 여부를 나타내는 정보(Coded Block Information), 양자화 매트릭스 번호(Quantization Matrix Index), 델타 양자화 파라미터(Delta Quantization Parameter), 또는 변환계수 정보(Coefficient Information) 등과 같은 정보가 될 수 있다. 소정 블록내 0이 아닌 변환계수가 있는지 여부를 나타내는 정보(Coded Block Information)는 예측 또는 변환을 위해 분할된 서브블록내 0이 아닌 변환 계수 있는지 여부를 나타내는 1비트 길이의 플래그일 수도 있다. 이때 휘도 성분(Y)과 색차 성분(U, V) 블록에 대해 각각 플래그를 부호화할 수도 있고 휘도 성분과 색차성분(Y, U, V) 세 블록에 대해 하나의 플래그를 통해 0이 아닌 변환 계수의 여부를 나타낼 수도 있다. 또는 세가지 컬러성분(Y, U, V)의 모든 블록 내 0이 아닌 변환 계수가 있는지를 나타내는 플래그를 부호화한 후, 0이 아닌 변환계수가 있는 경우에 대해서만 변환의 종류를 부호화 한 후, 각 컬러 성분의 서브블록 내 0이 아닌 변환 계수가 있는지 여부를 나타내는 플래그를 각각 부호화 할 수도 있다.
또한, 부호화 정보에 임의 크기 영역의 최적의 보간 필터(Interpolation Filter), 화질 개선 필터 사용 유무 등과 같은 정보가 포함될 수 있다.
본 발명의 실시예에서 부호화 정보 부호화기(Encoding Information Encoder, 110)는 영상의 부호화하고자 하는 블록이 스킵 블록 (Skip block)인지 여부를 나타내는 스킵 정보(Skip Information)를 부호화하고, 스킵 정보에 따라 블록의 스킵 움직임 정보(Skip Motion Information)를 부호화하거나 블록의 예측 정보(Prediction Information)와 변환 정보 (Transform Information), 부호화된 블록 패턴(CBP: Coded Block Pattern), 델타 양자화 파라미터(Delta Quantization Parameter), 변환 계수 정보 등을 부호화한다.
스킵 정보란 블록이 스킵 블록인지 여부를 나타내는 정보를 말한다. 즉, 스킵 정보는 스킵 블록(Skip block)과 넌스킵블록(Non-skip block)을 나타낼 수 있다. 여기서, 스킵 블록이란 제 1 및 제 2 분할 정보, 움직임 정보 또는 변환계수와 같은 특정 정보들을 부호화하지 않는 모드를 뜻한다.
스킵 정보는 스킵 블록인지 넌스킵 블록인지를 나타내는 1비트의 플래그(Flag)로 구현될 수 있지만, 반드시 이에 한정되지 않고 다른 다양한 방식으로 구현될 수도 있다.
예를 들어, 영상 부호화 장치(100)가 입력 영상에서 현재 부호화하고자하는 블록이 스킵 블록인 경우 스킵임을 나타내는 정보만을 부호화하고 그 외 블록 타입, 움직임 정보, 변환계수 등은 부호화지 않을 수 있다.
또 다른 예로, 스킵 블록인 경우 해당 블록이 스킵임을 나타내는 정보와 블록의 움직임 정보만 부호화하고 타입정보, 변환계수와 같은 정보는 부호화 하지 않을 수도 있다. 또 다른 예로, 스킵 블록인 경우 해당 블록이 스킵임을 나타내는 정보와 블록의 변환타입과 변환계수만을 부호화하고 타입정보, 움직임 정보는 부호화 하지 않을 수 있다.
또 다른 구현 예로, 스킵 블록의 크기에 따라 전송하지 않는 정보들이 다를수 있다. 예를 들어 현재 부호화 대상 블록이 64x64크기이고 스킵 블록인 경우인 변환계수만을 부호화하고 16x16블록이 스킵 블록인 경우 움직임 정보만을 부호화할 수 있다.
예측 정보란 해당 블록이 인트라 블록인지 인터 블록인지를 나타내는 예측 타입 정보, 예측을 위한 블록내 서브블록들의 크기를 나타내는 제1 분할 정보, 예측 타입 정보에 따른 인트라 예측 모드 정보 또는 움직임 벡터 및 참조 픽쳐 번호와 같은 움직임 정보를 말한다.
제1 분할 정보란 예측을 위한 블록 내 서브블록의 크기 및 모양을 나타내기 위한 정보로 블록이 더 작은 서브블록으로 분할되는지 여부를 나타내는 정보를 말한다.
예를 들어, 영상 부호화 장치(100)가 입력 영상에서 현재 부호화하고자 하는 블록이 매크로블록이고 매크로블록의 크기가 64x64 화소 크기의 블록이라고 가정하면, 64x64 화소 크기의 매크로블록은 두 개의 64x32 화소 크기의 서브블록, 하나의 64x32 화소 크기의 서브블록과 두 개의 32x32 화소 크기의 서브블록, 네 개의 32x32 화소 크기의 서브블록 등과 같이 다양한 크기와 개수의 서브블록으로 분할되어 예측 부호화될 수 있는데, 제1 분할 정보는 예측을 위해 매크로블록을 서브블록들로 분할할지 여부를 나타낸다. 예를 들어, 이러한 제1 분할 정보는 블록이 서브블록으로 분할되는지 또는 분할되지 않는지 여부를 나타내는 1 비트의 플래그인 분할 플래그(Partition Flag)로 구현될 수 있지만, 반드시 이에 한정되지 않고 다른 다양한 방식으로 구현될 수도 있다.
여기서, 1 비트의 분할 플래그가 분할할 것을 나타내는 경우, 미리 정해진 방식에 따라 블록은 복수의 서브블록으로 분할된다. 예를 들면, 동일한 크기를 갖는 2개 또는 4개의 복수의 서브블록으로 분할된다.
또 다른 예로, 제1 분할 정보는 블록이 특정 크기의 더 작은 서브블록으로 분할되는지 여부를 나타낼 수도 있다.
예를 들어, 영상 부호화 장치(100)가 입력 영상에서 현재 부호화하고자 하는 블록이 매크로블록이고 매크로블록의 크기가 64x64화소 크기의 블록이라고 가정하면, 1 비트 플래그를 통해 64x64 화소 크기의 매크로블록을 16개의 16x16블록으로 분할하여 예측 부호화하거나 매크로블록을 서브블록으로 분할하지 않고 예측 부호화할 수도 있다. 또한 전술한 두 가지 방법이 결합되어 사용될 수도 있다.
스킵 움직임 정보는 부호화하고자 하는 블록이 스킵 블록인 경우, 해당 블록에 대해 움직임 추정하여 결정된 움직임 벡터 그 자체나 해당 블록의 움직임 벡터와 해당 블록의 예측 움직임 벡터 간의 차분 벡터 및/또는 참조 픽처 인덱스를 말한다. 즉, 해당 블록이 스킵 블록인 경우, 영상 부호화 장치(100)는 해당 블록의 잔여 신호 정보는 부호화하지 않고 스킵 움직임 정보만을 부호화하며, 후술할 영상 복호화 장치에서 스킵 움직임 정보를 복원하고 복원된 스킵 움직임 정보를 이용하여 해당 블록의 움직임을 보상하여 해당 블록을 복원한다.
또한, 스킵 움직임 정보는 최적 움직임 벡터 예측 후보 또는 예측 움직임 벡터 정보일 수도 있다. 즉, 해당 블록이 스킵 블록인 경우, 영상 부호화 장치(100)는 해당 블록의 예측 움직임 벡터 정보만을 부호화하고 후술할 영상 복호화 장치에서 예측 움직임 벡터 정보를 복원하고 복원된 예측 움직임 벡터 정보를 이용하여 예측 움직임 벡터를 결정한 후, 결정된 예측 움직임 벡터를 이용하여 움직임 보상을 수행한다. 움직임 보상을 통해 얻은 예측 블록은 복원 블록이 된다.
또한, 영상 부호화 장치(100)는 참조 픽쳐 인덱스가 0인 경우에만 스킵모드를 적용할 수도 있다. 즉, 영상 부호화 장치(100)는 현재 부호화 대상 블록이 스킵 블록으로 결정된 경우, 선택된 움직임 벡터 그 자체나 해당 블록의 움직임 벡터와 해당 블록의 예측 움직임 벡터 간의 차분 벡터만을 부호화하고 후술할 영상 복호화 장치에서 결정된 움직임 벡터 그 자체 또는 해당 블록의 움직임 벡터와 해당 블록의 예측 움직임 벡터간의 차분 벡터만을 복원하고 참조 픽쳐 인덱스를 0(즉, 바로 이전에 복원된 픽쳐를 참조 픽쳐로 사용)으로 하여 해당 블록을 움직임을 보상하여 해당 블록을 복원한다.
또한, 스킵 블록의 움직임 추정 및 보상은 부호화하고자 하는 블록의 예측 움직임 벡터 결정 시 현재 부호화 대상 블록의 윗 블록과 왼쪽 블록의 움직임 벡터 중 하나 이상이 움직임 벡터가 제로벡터(Zero-Vector인 경우, 즉 {0,0})인 경우 예측 움직임 벡터로 제로벡터를 사용할 수 도 있다. 그 외의 경우 위, 왼쪽, 위-오른쪽 블록의 움직임 벡터의 중간값을 예측 움직임 벡터로 사용한다. 후술하는 영상 복호화 장치에서는 현재 복호화 대상인 블록이 스킵 블록인 경우, 예측 움직임 벡터 결정시 위 또는 왼쪽 블록의 움직임 벡터가 {0,0}인 경우 예측 움직임 벡터로 {0,0}벡터를 사용하고 복원된 차이벡터를 복원하여 움직임 보상을 수행하여 해당 블록을 복원한다.
또 다른 구현 예로, 블록 크기별 다른 예측 움직임 벡터를 사용하도록 할 수도 있다. 일 예로, 16x16보다 큰 블록에 대해서는 현재 부호화 대상 블록의 윗블록과 왼쪽 블록의 벡터값과 상관없이 median vector를 예측 움직임 벡터로 사용하고 16x16 크기의 블록에 대해서는 현재 부호화 대상 블록의 윗블록 또는 왼쪽 블록의 벡터가 (0,0)인 경우 zero-vector를 예측벡터로 사용하고, 그 외의 경우 왼쪽 블록, 윗블록, 위-왼쪽 블록의 세개의 움직임 벡터의 median 벡터를 예측 움직임 벡터로 사용한다.(반대의 경우도 성립)
예측 타입 정보는 매크로블록 단위로 부호화 할 수 있으며 해당 매크로블록의 예측 타입이 I, P, B 또는 Direct인지를 나타낸다. 일 예로, 매크로 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부를 나타내는 1 비트의 블록 타입 플래그(Block Type Flag)로 구현될 수 있다. 또한 예측 타입 정보는 소정의 크기, 예컨대, 16x16 크기 단위로 부호화할 수도 있으며, 이때 소정의 크기 블록 내 서브블록들의 예측 타입은 모두 동일하다. 예를 들어, 예측 타입 정보를 16x16 블록 단위로 부호화하고 부호화된 현재 16x16블록의 예측 타입 정보가 인트라 예측을 나타내는 경우, 현재 16x16 블록 내 서브블록들은 모두 인트라 예측을 사용하여 예측 부호화되었음을 나타낸다.
제1 분할 정보는 부호화하고자 하는 블록이 스킵 블록이 아닌 경우, 해당 블록의 예측을 위한 서브블록의 크기 및 모양을 나타내는 정보를 말한다. 일 예로, 제1 분할 정보는 해당 블록이 분할되지 않았는지, 가로로 긴 두개의 서브블록으로 분할되었는지, 세로로 긴 두개의 서브블록으로 분할되었는지, 4개의 서브블록으로 분할되었는지와 같이 어떠한 형태의 서브블록으로 분할할지는 나타내는 분할 타입 정보(Partition Type Information)로 나타낼 수 있다.
다른 예로, 매크로블록이 스킵 매크로블록인지를 나타내는 스킵 플래그를 부호화하고 스킵 매크로블록이 아닌 경우, 예측 정보를 부호화한다. 예측 정보는 해당 매크로블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부를 나타내는 1 비트의 예측 타입 플래그와 해당 매크로블록의 서브블록의 분할 타입을 나타내는 분할 타입 정보를 포함하여 구현될 수도 있다.
다른 예로, 예측 정보로 해당 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부를 나타내는 1 비트의 예측 타입 플래그와 해당 블록의 서브블록의 분할 타입을 나타내는 분할 타입 정보를 부호화한 후 각 서브블록이 스킵 블록인지 여부를 나타내는 1 비트의 스킵 서브블록 플래그(Skip Subblock Flag)를 부호화할 수도 있다. 여기서, 스킵 서브블록 플래그는 해당 블록의 서브블록 각각이 스킵 모드인지 여부를 나타내며, 특정 서브블록이 스킵 블록인 경우, 해당 서브블록에 대해서는 부호화하지 않고 스킵함을 나타낸다. 즉, 부호화하고자 하는 블록의 서브블록들 중에서 특정 서브블록이 스킵 블록인 경우, 해당 서브블록에 대해서는 움직임 정보나 잔여 신호 정보가 부호화되지 않는다.
다른 예로, 매크로블록이 스킵 매크로블록인지를 나타내는 스킵 플래그를 부호화하고 스킵 매크로블록이 아닌 경우, 예측 정보로 해당 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부를 나타내는 1 비트의 예측 타입 플래그와 해당 블록의 서브블록의 분할 타입을 나타내는 분할 타입 정보를 부호화한 후 각 서브블록이 스킵 블록인지 여부를 나타내는 1 비트의 스킵 서브블록 플래그(Skip Subblock Flag)를 부호화할 수도 있다. 여기서, 스킵 서브블록 플래그는 해당 블록의 서브블록 각각이 스킵 모드인지 여부를 나타내며, 특정 서브블록이 스킵 블록인 경우, 해당 서브블록에 대해서는 부호화하지 않고 스킵함을 나타낸다. 즉, 부호화하고자 하는 블록의 서브블록들 중에서 특정 서브블록이 스킵 블록인 경우, 해당 서브블록에 대해서는 움직임 정보나 잔여 신호 정보가 부호화되지 않는다.
또한, 블록의 예측 타입에 따라 분할 타입을 다르게 사용할 수도 있다.
또한, 블록의 예측 타입과 분할 타입을 각각 부호화할 수도 있고, 예측 타입과 분할 타입의 가능한 모든 조합을 하나 이상의 표로 만들어 표의 코드워드를 부호화할 수도 있다.
변환 정보는 변환의 크기를 나타내기 위한 제2 분할 정보, 다양한 변환들 중 어떠한 변환이 사용되었는지를 나타내는 변환 타입 정보 등과 같은 정보가 포함될 수 있다.
제2 분할 정보는 부호화하고자 하는 블록 또는 해당 블록의 각 서브블록을 변환 및 양자화할 때, 변환 및 양자화를 수행한 변환 단위에 대한 정보를 말한다. 예를 들어, 64x64 화소 크기의 블록이 더 이상 분할되지 않고 부호화되고 16x16 변환이 효율적인 것으로 결정된 경우에는 16x16 변환이 사용되었음을 나타내는 정보가 제2 분할 정보로 부호화될 수 있다. 제2 분할 정보는 전술한 제1 분할 정보와 유사한 방식으로 구현될 수 있다. 즉, 현재 블록이 변환을 위해 서브블록들로 분할되었는지 여부를 나타내는 1비트의 분할 플래그로 구현될 수 있다. 1 비트의 분할 플래그가 분할할 것을 나타내는 경우, 미리 정해진 방식에 따라 현재 블록은 변환을 위해 복수의 서브블록으로 분할된다. 예를 들면, 동일한 크기를 갖는 2개 또는 4개의 복수의 서브블록으로 분할된다.
변환 타입 정보는 코사인 변환, 사인 변환, 하다마드 변환과 같은 변환의 종류를 나타낸다.
부호화된 블록 패턴은 부호화하고자 하는 블록 또는 해당 블록의 각 서브블록의 계수가 모두 0인지 여부를 나타내는 정보를 말하며, 델타 양자화 파라미터는 부호화하고자 하는 블록 또는 해당 블록의 각 서브블록에 대한 양자화 파라미터를 나타내는 정보를 말한다.
이상에서 전술한 스킵 플래그, 스킵 타입, 예측 타입, 제1 분할 정보, 인트라 예측 모드, 움직임 정보, 제2 분할 정보, 변환 종류 정보, 블록 패턴, 델타 양자화 파라미터, 변환 계수 등의 정보는 부호화 정보 부호화기(110)가 입력 영상을 분석하여 결정할 수도 있지만, 영상 부호화기(120)가 입력 영상을 분석하여 결정할 수도 있다.
영상 부호화기(120)는 스킵 정보, 예측 정보와 변환 정보를 기초로 블록의 잔여 신호 정보를 부호화한다. 예를 들어, 영상 부호화기(120)는 스킵 정보가 부호화하고자 하는 블록이 스킵 블록이 아님을 나타내는 경우, 블록의 예측 정보에 따라 각 서브블록을 인트라 예측 부호화하거나 인터 예측 부호화하여 해당 블록의 잔여 신호 정보를 부호화한다. 여기서, 잔여 신호 정보란 영상의 부호화하고자 하는 블록의 휘도 성분 및/또는 색차 성분을 예측하여 그 잔차 블록을 변환 및 양자화하여 생성되는 양자화된 변환 계수에 대한 정보를 말하며, 잔여 신호 정보가 부호화되어 텍스처 데이터(Texture Data)로서 비트스트림에 포함된다.
이를 위해, 영상 부호화기(120)는 예측기(Predictor), 감산기(Subtracter), 변환기 및 양자화기(Transformer and Quantizer), 부호화기(Encoder), 역 양자화기 및 역 변환기(Inverse Transformer and Inverse Quantizer), 가산기(Adder), 필터(Filter) 및 픽처 버퍼(Picture Buffer)를 포함하여 구성될 수 있다.
예측기는 인트라 예측기(Intra Predictor)와 인터 예측기(Inter Predictor)를 포함하여 구성될 수 있으며, 인터 예측기는 다시 움직임 추정기(Motion Estimator)와 움직임 보상기(Motion Compensator)를 포함하여 구성될 수 있다.
동영상의 하나의 픽처 또는 하나의 프레임인 입력 영상(Input Picture)은 MxN(단, M, N은 16이상의 정수일 수 있다.) 화소를 가지는 매크로블록(Macroblock)들로 분할되고, 분할된 각 매크로블록은 도 1의 영상 부호화 장치(100)에 입력된다. 예를 들어, 입력 영상이 4:2:0 포맷(Format)의 영상의 경우, 매크로블록은 MxN 화소를 가지는 휘도 블록(Luminance Block)과 두 개의 (M/2)x(N/2) 화소를 가지는 색차 블록(Chrominance Block)으로 이루어진다.
본 발명의 일 실시예에서 각 매크로블록은 도 2에 도시한 바와 같이 내부적으로 더 작은 서브블록(Subblock)으로 분할되어 인트라 예측 부호화(Intra Prediction Encoding) 또는 인터 예측 부호화(Inter Prediction Encoding)가 수행된다.
도 2는 본 발명의 일 실시예에 따른 다양한 크기의 인트라 예측 부호화와 인터 예측 부호화를 위한 매크로블록과 서브블록을 나타낸 예시도이다.
도 2에서는 M과 N의 크기가 동일하다고 가정하고 N은 16 이상의 정수이며 최소 블록의 크기는 4x4일 때의 매크로블록과 서브블록을 예시적으로 나타내었다. 매크로블록이 64x64 화소 블록일 때, 서브블록인 64x64 화소 블록, 64x32 화소 블록, 32x64 화소 블록, 32x32 화소 블록은 매크로블록 레이어(Layer) 0에 속하고, 서브블록인 32x32 화소 블록, 32x16 화소 블록, 16x32 화소 블록, 16x16 화소 블록은 매크로블록 레이어 1에 속한다. 여기서, 매크로블록 레이어 K(단,
Figure pat00001
)의 서브블록 중 제일 큰 서브블록이 4 개의 블록으로 분할된 경우에만 매크로블록 레이어 K+1의 서브블록들이 사용될 수 있다.
영상 부호화 장치(100)는 각 서브블록으로 매크로블록을 부호화했을 경우의 부호화 효율을 계산하고, 가장 부호화 효율이 높은 경우의 서브블록을 최종적인 인트라 예측 블록 또는 인터 예측 블록으로 결정할 수 있다. 부호화 효율은 율-왜곡 최적화(RDO: Rate-Distortion Optimization) 기법에 근거하여 측정할 수 있다.
최소 블록의 크기는 최대로 사용할 수 있는 레이어값인 최대 레이어값(MaxLayer)에 따라 결정될 수 있다. 예를 들어, NxN 화소의 매크로블록인 경우, 최소 블록의 크기는 N/(2MaxLayer)로 결정될 수 있다.
도 3은 본 발명의 제1 실시예에 따른 분할 타입별 번호를 나타낸 예시도이다. 여기서 분할 타입별 번호는 매크로블록 분할 정보, 예측을 위한 서브블록의 크기 및 모양을 나타내기 위한 제1 분할 정보, 변환의 크기를 나타내기 위한 제2 분할 정보로 사용될 수 있다.
예를 들어, 사용가능한 최대 크기의 매크로블록으로부터 현재 부호화 대상 영역을 위한 매크로블록으로 분할하는 경우, 매크로블록 레이어 K의
Figure pat00002
화소 블록이 더 이상 작은 서브블록으로 분할되지 않는 경우에는 매크로블록 레이어 K의
Figure pat00003
화소 블록에 분할 타입 번호 0이 할당된다. 매크로블록 레이어 K의
Figure pat00004
화소 블록이 두 개의
Figure pat00005
화소 블록으로 분할된 경우에는 매크로블록 레이어 K의
Figure pat00006
화소 블록에 분할 타입 번호 1이 할당된다. 매크로블록 레이어 K의
Figure pat00007
화소 블록이 두 개의
Figure pat00008
화소 블록으로 분할된 경우에는 매크로블록 레이어 K의
Figure pat00009
화소 블록에 분할 타입 번호 2가 할당된다. 매크로블록 레이어 K의
Figure pat00010
화소 블록이 4 개의
Figure pat00011
로 분할되는 경우에는 매크로블록 레이어 K의
Figure pat00012
화소 블록에 분할 타입 번호 3이 할당된다. 도 3에서 각 매크로블록 레이어 K의
Figure pat00013
화소 블록 내의 분할된 서브블록에 표시된 0, 1, 2, 3 등의 숫자는 각 서브블록을 식별하기 위한 파티션 번호(Partition Number)이다.
도 4는 본 발명의 제1 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도이다.
본 발명의 제1 실시예에 따른 영상 부호화 방법에 따르면, 영상 부호화 장치(100)는 부호화하고자 하는 블록이 스킵 블록인지 여부를 나타내는 스킵 플래그와 스킵 타입을 포함하는 스킵 정보를 부호화한다(S410). 예를 들어, 영상 부호화 장치(100)는 현재 블록이 스킵 블록인지는 나타내는 정보를 부호화하고 잔여 신호 정보만을 부호화하는 스킵 블록인지 아니면 블록의 잔여 신호 정보는 부호화하지 않고 블록의 움직임 정보만을 부호화하는 스킵인지의 여부를 결정한다. 만약 블록의 움직임 정보만을 부호화하는 스킵 블록인 경우, 스킵 블록임을 나타내는 스킵 정보를 부호화하며, 블록의 움직임 정보뿐만 아니라 블록의 잔여 신호 정보도 부호화하는 경우 스킵 블록이 아님을 나타내는 스킵 정보를 부호화한다.
영상 부호화 장치(100)는 스킵 정보에 따라 블록의 스킵 움직임 정보를 부호화하거나 인트라 또는 인터 예측 정보와 변환 정보를 부호화하고(S420), 예측 정보 및 변환 정보를 기초로 블록의 잔여 신호 정보를 부호화한다(S430). 즉, 영상 부호화 장치(100)는 스킵 정보가 부호화하고자 하는 블록이 스킵 블록임을 나타내는지 여부에 따라서 블록을 다른 방식으로 부호화한다.
이하에서는 부호화하고자 하는 블록이 64x64 화소 크기의 매크로블록인 경우를 가정하여 영상 부호화 장치(100)가 단계 S420 및 단계 S430을 수행하는 과정에 대해 예를 들어 설명한다.
단계 S420에서, 영상 부호화 장치(100)는 스킵 정보가 블록이 스킵 블록임을 나타내는 경우, 블록에 대한 스킵 움직임 벡터를 부호화할 수 있다. 즉, 영상 부호화 장치(100)는 부호화하고자 하는 블록에 대해 64x64 화소 단위로 움직임 추정하여 부호화하고자 하는 블록과 가장 유사한 블록인 참조 블록을 참조 픽처 내에서 찾고 참조 블록과 부호화하고자 하는 블록의 상대적인 위치를 나타내는 움직임 벡터를 스킵 움직임 벡터로서 결정하고 참조 블록이 포함된 참조 픽처를 나타내는 참조 픽처 인덱스를 스킵 참조 픽처 인덱스로서 결정하며, 스킵 움직임 벡터와 스킵 참조 픽처 인덱스를 포함하는 스킵 움직임 정보를 부호화한다.
또한, 스킵 블록인 경우에도 더 작은 서브블록으로 분할하여 부호화할 수도 있다. 상기 스킵 블록 내 모드 서브블록은 모두 스킵 서브블록임을 뜻하며 스킵 블록이 더 작은 서브블록으로 분할되는 경우 스킵 블록내 서브 블록들의 크기를 나타내는 제1 분할 정보를 부호화하고 각 서브블록들의 스킵 움직임 정보를 부호화하도록 할 수도 있다. 이 경우 스킵 움직임 정보는 각 서브블록의 개수만큼 부호화된다.
단계 S420 및 단계 S430에서, 영상 부호화 장치(100)는 스킵 정보가 현재 부호화 대상 블록이 스킵 블록이 아님을 나타내는 경우, 부호화하고자 하는 블록에 대한 인트라 또는 인터 예측 정보와 변환 정보를 부호화할 수 있다. 즉, 영상 부호화 장치(100)는 부호화하고자 하는 블록에 대해 예트라 블록인지 인터 블록인지를 나타내는 예측 타입 정보를 부호화하고 인터 블록인 경우 인터 예측을 위한 블록 내 서브블록들의 크기를 나타내는 제1 분할 정보를 부호화한다. 즉, 영상 부호화 장치(100)는 부호화하고자 하는 블록의 서브블록의 블록 타입이 인터 블록인 경우, 부호화하고자 하는 블록의 각 서브블록은 16x16, 16x8, 8x16, 8x8 크기의 서브블록으로 분할될 수 있으며 16x16블록이 4개의 8x8 크기의 서브블록으로 분할된 경우 각 8x8블록은 8x8블록 내에서 8x8, 8x4, 8x4, 4x4 크기의 더 작은 서브블록으로 분할될 수 있다. 만약 64x64 크기의 매크로블록이 더 작은 서브블록으로 분할되지 않고 매크로블록 단위로 인터 예측을 수행하는 경우, 64x64 화소 단위로 움직임 추정하여 부호화하고자 하는 블록과 가장 유사한 블록인 참조 블록을 참조 픽처 내에서 찾고 참조 블록과 부호화하고자 하는 블록의 상대적인 위치를 나타내는 움직임 벡터를 결정하고 참조 블록이 포함된 참조 픽처를 나타내는 참조 픽처 인덱스를 결정하며, 결정된 움직임 벡터를 기초로 부호화하고자 하는 블록의 움직임을 보상하여 생성되는 예측 블록과 부호화하고자 하는 블록 간의 차이인 잔여 블록을 변환 및 양자화한 잔여 신호 정보를 부호화하며, 예측 부호화에 이용되는 분할 정보와 변환 정보 등도 부호화한다.
만약, 부호화하고자 하는 블록의 예측 타입이 인트라 예측인 경우에는 해당 서브블록의 인트라 예측 모드를 결정하고 결정된 인트라 예측 모드를 기초로 예측 부호화하여 잔여 신호 정보와 예측 정보를 부호화한다.
여기서, 예측을 위한 블록내 서브블록의 크기를 나타내는 제1 분할 정보는 도 3에 도시한 분할 타입 번호를 이용하여 나타낼 수도 있고 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 따라 이용 가능한 분할 타입 번호의 종류를 다르게 할 수도 있다. 예를 들어 블록의 예측 타입이 인트라 예측 모드인 경우 도 3의 분할 타입 번호 0과 3만을 사용하고 인터 예측 모드인 경우 도 3의 분할 타입 번혼 0, 1, 2와 3을 모두 사용할 수도 있다.
변환 정보는 변환의 크기를 나타내기 위한 제2 분할 정보, 변환 타입 정보 중 하나 이상을 추가로 포함할 수 있다. 여기서 제2 분할 정보는 제1 분할 정보와 동일하게 도 3에 도시한 분할 타입 번호를 이용하여 나타낼 수도 있고 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 따라 이용 가능한 분할 타입 번호의 종류를 다르게 할 수도 있다.
또한, 스킵 정보가 부호화하고자 하는 블록이 스킵 블록이 아님을 나타내는 경우, 예측 타입 정보와 제1 분할 정보를 부호화하고 예측 타입 정보가 인터 예측을 나타내는 경우 제1 분할 정보에 따른 블록 내 각 서브블록들에 대해서 각 서브블록들이 스킵 서브블록인지를 나타내는 스킵 정보를 추가로 포함할 수 있다.
단계 S420에서, 영상 부호화 장치(100)는 제1 분할 정보 또는 제2 분할 정보를 부호화할 때, 트리 구조를 이용하여 분할 정보를 부호화할 수 있다. 예를 들어, 영상 부호화 장치(100)는 복수 개의 서브블록을 일정한 영역 단위로 그룹화하고, 그룹화된 영역에 포함되는 서브블록들의 분할 정보의 최소값을 그룹화된 영역에 대한 분할 정보로 할당하는 과정을 최상위 레이어까지 레이어별로 반복하며, 레이어별로 그룹화된 영역에 대한 분할 정보와 상위 레이어의 그룹화된 영역에 대한 분할 정보 간의 차이값을 부호화함으로써 분할 정보를 부호화할 수 있다. 영상 부호화 장치(100)가 분할 정보로서 도3의 분할 타입 번호를 이용하여 부호화하는 방법에 대해서는 후술하는 과정에서 도 6 및 도 7을 통해 상세히 설명한다.
도 5는 본 발명의 제1 실시예에 따라 부호화된 비트스트림의 신택스 구조를 나타낸 예시도이다.
전술한 본 발명의 제1 실시예에 따른 영상 부호화 방법에 따라 영상 부호화 장치(100)가 입력 영상의 부호화하고자 하는 블록을 부호화하면 도 5에 도시한 바와 같은 신택스 구조를 가지는 비트스트림이 생성될 수 있다. 도 5에서는 부호화하고자 하는 블록에 대한 비트스트림을 나타내었다.
도 5에서, 5A는 스킵 블록인 경우의 비트스트림의 신택스 구조를 나타낸 것이다. 부호화하고자 하는 블록이 스킵 블록인 경우, 해당 블록을 부호화하여 생성되는 비트스트림은 스킵 정보 필드, 제1 분할 정보 필드 및 스킵 움직임 정보 필드를 포함하여 구성될 수 있다. 스킵 정보 필드에는 스킵 정보가 부호화된 데이터가 할당되고, 제1 분할 정보 필드에는 제1 분할 정보가 부호화된 데이터가 할당되며, 스킵 움직임 정보 필드에는 스킵 움직임 정보가 부호화된 데이터가 할당된다.
5B는 스킵 블록이 아닌 경우의 비트스트림의 신택스 구조를 나타낸 것이다. 해당 블록을 부호화하여 생성되는 비트스트림은 스킵 정보 필드, 예측 타입 필드, 제1 분할 정보 필드, 인트라 예측 모드 또는 움직임 정보 정보 필드, 변환 정보 필드, CBP 정보, 델타 QP 및 잔여 신호 정보 필드를 포함하여 구성될 수 있다. 여기서, CBP 정보 필드, 변환 타입 정보 필드 및 델타 QP 필드는 비트스트림에 반드시 포함되어야 하는 것은 아니며 구현 방식에 일부 또는 전부가 선택적으로 비트스트림에 포함될 수 있다.
본 발명의 제1 실시예에 따르면 부호화 정보 부호화기(110)는 영상을 부호화하거나 복호화할 때, 영상에 대해 부호화하고자 하는 정보(예컨대, 분할 정보)를 트리 구조를 이용하여 부호화하고 복호화함으로써 부호화 효율을 향상시킨다.
본 발명의 실시예에서 트리구조를 이용한 부호화 및 복호화 방법은 엔트로피 부호화와 엔트로피 복호화에 적용될 수 있지만, 반드시 이에 한정되지 않고 다른 다양한 부호화 복호화에도 적용될 수도 있다.
부호화 정보 부호화기(110)는 영상에 대해 부호화하고자 하는 정보를 가지는 소정의 영역들을 복수 개의 그룹으로 그룹화하고, 그룹화된 영역 내의 부호화하고자 하는 정보의 최소값 또는 최대값을 그룹화된 영역의 정보로서 결정하여 레이어별 노드값을 최상위 레이어까지 반복하여 생성하며, 레이어별 노드값과 상위 레이어의 노드값 간의 차이값 또는 레이어별 노드값과 기 설정된 기준에 따라 결정되는 값 간의 차이값을 부호화한다.
또한, 소정의 영역은 가변 크기의 매크로블록이 될 수도 있고, 64x64 화소 크기의 블록, 32x32 화소 크기의 화소 블록, 16x16 화소 크기의 블록, 16x32 화소 크기의 블록, 4x16 화소 크기의 블록 등과 같이 다양한 크기의 블록일 수도 있으며, 움직임 벡터가 결정되는 블록과 같은 다양한 형태와 크기의 영역일 수 있다.
여기서 부호화하고자 하는 데이터의 값을 그대로 이용하여 부호화할 수도 있으며 부호화하고자 하는 데이터에 부호번호를 할당하여 부호화할 수도 있다. 부호 번호를 할당하는 방법은 데이터의 발생 확률에 따라 다양하게 변경될 수 있다.
또한, 레이어별 노드값이란 레이어별로 그룹화된 영역의 정보의 값을 말한다. 예를 들어 최하위 레이어에서는 소정의 영역의 정보의 값이 될 수 있으며, 최하위 레이어의 상위 레이어에서는 소정의 영역들이 몇 개로 그룹화된 영역의 정보의 값이 될 수 있다. 그룹화된 영역의 정보의 값은 그룹화된 영역 내에 포함되는 소정의 영역들의 정보의 값들 중 최소값 또는 최대값으로 결정될 수 있다. 또한, 기 설정된 기준에 따라 결정되는 값은 이전 영역 또는 주위 영역 중에서 지금까지 부호화된 영역에서 가장 발생 확률이 높은 값이 될 수 있지만, 반드시 이에 한정되지 않고 다양한 기준에 따라 결정되는 값이 될 수도 있다.
이때, 부호화 정보 부호화기(110)는 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 레이어별 노드값과 상위 레이어의 노드값 간의 차이값을 부호화할 수 있다. 또한, 트리 부호화기(120)는 단항 코드, 트런케이티드 단항 코드, 익스포넨셜 골룸 코드 등과 같은 이진 부호화 방법으로 레이어별 노드값과 상위 레이어의 노드값 간의 차이값을 이진화한 후, 주위의 레이어 또는 상위 레이어의 노드값을 기초로 부호화하고자 하는 레이어의 노드값에 대한 부호화를 위한 확률 모델을 결정하거나 각 레이어마다 확률 모델을 달리하여 이진 산술 부호화(Binary Arithmetic Coding)할 수도 있다.
또한, 부호화 정보 부호화기(110)는 레이어별 노드값을 하위 레이어의 노드값들 중 최소값으로 결정하는 경우, 노드값이 최대값인 레이어의 하위 레이어의 노드값에 대한 부호화를 스킵한다. 즉, 트리 부호화기(120)는 레이어별 노드값을 하위 레이어의 노드값들 중 최소값으로 결정하는 경우, 어느 레이어의 어느 노드값이 부호화하고자 하는 정보가 가지는 최대값이면 해당 레이어의 노드값을 부호화하고 그 하위 레이어의 노드값들은 모두 같은 값을 가진다고 가정하여 부호화하지 않는다. 반대로, 레이어별 노드값을 하위 레이어의 노드값들 중 최대값으로 결정하는 경우, 노드값이 최소값인 레이어의 하위 레이어의 노드값에 대한 부호화를 스킵한다. 즉, 부호화 정보 부호화기(110)는 레이어별 노드값을 하위 레이어의 노드값들 중 최대값으로 결정하는 경우, 어느 레이어의 어느 노드값이 부호화하고자 하는 정보가 가지는 최소값이면 해당 레이어의 노드값을 부호화하고 그 하위 레이어의 노드값들은 모두 같은 값을 가진다고 가정하여 부호화하지 않는다.
또한, 부호화 정보 부호화기(110)는 부호화하고자 하는 정보의 발생 확률에 따라 부호화를 위해 부호화하고자 하는 정보에 할당되는 부호 번호(Code Number)를 변경하여, 발생 확률에 따라 작은 부호 번호 또는 큰 부호 번호를 할당할 수 있다. 이때, 부호화하고자 하는 정보의 발생 확률은 주위의 소정의 영역의 정보의 발생 확률 또는 부호화하고자 하는 정보가 포함되는 전체 또는 일부의 영역 내에서 이제까지 부호화된 영역의 정보의 발생 확률 등과 같은 다양한 발생 확률을 이용하여 계산될 수 있다.
부호화 정보 부호화기(110)는 최상위 레이어의 노드값을 부호화하는 경우, 최상위 레이어의 상위 레이어가 없으므로 최상위 레이어의 상위 레이어의 노드값을 소정의 값으로 설정하고, 최상위 레이어의 노드값과 설정된 소정의 값 간의 차이값을 부호화할 수 있다. 여기서, 최상위 레이어의 상위 레이어의 노드값으로서 설정되는 소정의 값은 부호화하고자 하는 정보가 포함되는 전체 또는 일부의 영역에서 이제까지 부호화되면서 가장 발생 확률이 높은 정보의 값, 미리 설정된 값, 주위의 소정의 영역의 정보의 값들 중에서 가장 발생 확률이 높은 값 등과 같이 다양한 값으로 설정될 수 있다.
부호화 정보 부호화기(110)는 제1 실시예에 따른 트리 구조를 이용하여 소정의 영역의 정보를 부호화하는 데 이용되는 부가 정보를 부호화한다. 여기서, 부가 정보란 레이어의 최대 개수에 대한 정보, 최하위 레이어의 영역의 크기에 대한 정보, 트리 구조를 나타내기 위한 정보 및 레이어별 노드값을 하위 레이어의 노드값들 중 최소값으로 결정하는지 또는 최대값으로 결정하는지 여부에 대한 정보 등과 같은 정보가 될 수 있다. 이와 같이 부호화된 부가 정보는 비트스트림의 시퀀스 헤더, 픽처 헤더, 슬라이스 헤더 등 소정의 부호화 단위의 헤더에 포함될 수 있다.
여기서 트리 구조를 나타내기 위한 정보란 현재 노드가 하위 레이어로 분할 되었는지 여부를 나타내는 1비트 길이의 플래그일 수 있고 2비트 이상 길이의 신택스 일 수있다.
예를 들어, 비트값이 '1'인 경우에는 해당 노드가 하위 레이어로 분할되었음을 나타내고, 현재 레이어의 블록을 4개의 서브블록으로 분할한다. 즉, 현재 노드에 대해 4개의 하위 노드를 생성한다. 비트값이 '0'인 경우에는 해당 노드가 하위 레이어로 분할되지 않았음을 나타낸다. 최하위 레이어의 노드에서는 하위 레이어로 분할되었는지 여부를 부호화하지 않고 해당 노드의 노드값인 부호화하고자 하는 정보를 부호화한다.
전술한 예에서는 1비트 길이의 플래그를 이용하여 분할되지 않는 경우와 4개의 구역으로 분할되는 경우를 예로 들었으나, 하위 레이어로 나누어지지 않았음, 하위 레이어가 가로로 긴 두개의 영역으로 나누어 짐, 하위 레이어가 세로로 긴 두개의 영역으로 나누어짐 그리고 하위 레이어가 4개의 구역으로 나누어짐과 같이 다양한 형태의 하위 레이어로 분할됨을 나타내기 위해 2비트 이상 길이의 신택스를 사용하여 트리 구조를 나타낼 수도 있다.
이하에서는 도 6 내지 도 7을 통해 트리 구조를 이용하여 분할 정보를 부호화하는 일 예를 설명한다.
도 6에서는 트리 구조를 이용하여 분할 타입 정보를 부호화하기 위해 부호화하고자 하는 블록의 각 서브블록에 대한 분할 정보를 일정한 영역 단위로 묶어 레이어별 분할 정보로 나타내었다.
도 6에서, 6A는 부호화하고자 하는 블록 내의 각 서브블록과 각 서브블록에 대한 분할 정보를 나타낸 것이다. 6A에서, Mx(a,b)는 부호화하고자 하는 블록 내의 (a, b)의 위치에 해당하는 서브블록의 분할 정보를 나타낸다. 즉, Mx(0,0)은 부호화하고자 하는 블록 내의 (0,0)의 위치에 해당하는 서브블록(즉, 부호화하고자 하는 블록 내에서 래스터 스캔(Raster Scan) 방향으로 첫 번째 서브블록)의 분할 정보를 나타내고, Mx(0,1)은 부호화하고자 하는 블록 내의 (0,1)의 위치에 해당하는 서브블록(즉, 부호화하고자 하는 블록 내에서 래스터 스캔 방향으로 두 번째 서브블록)의 분할 정보를 나타낸다.
6A에 나타낸 서브블록들의 분할 정보들을 일정한 영역 단위(예를 들면, 두 개 이상의 서브블록을 포함하는 일정한 영역 단위)로 그룹화하고, 그룹화된 영역에 포함되는 서브블록들의 분할 정보의 최소값을 선택하여 그룹화된 영역에 대한 분할 정보로 할당한다.
6B는 6A에 나타낸 서브블록들의 분할 정보들을 그룹화하여 최소값을 그룹화된 영역에 대한 분할 정보로 할당한 결과를 나타내었다. 예를 들어, 6A에서 나타낸 서브블록 (0,0), (0,1), (1,0), (1,1)을 포함하는 영역이 일정한 영역 단위로 설정되어 그룹화되고, 그룹화된 영역 내에 포함된 각 서브블록들의 분할 정보 MX(0,0), MX(0,1), MX(1,0), MX(1,1) 중 최소값이 선택되어 그룹화된 영역인 MX -1(0,0)의 분할 정보로 할당되었다. 다시, 서브블록 (0,2), (0,3), (1,2), (1,3)을 포함하는 영역이 일정한 영역 단위로 설정되어 그룹화되고, 그룹화된 영역 내에 포함된 각 서브블록들의 분할 정보 MX(0,2), MX(0,3), MX(1,2), MX(1,3) 중 최소값이 선택되어 그룹화된 영역인 MX -1(0,1)의 분할 정보로 할당되었다. 이와 같은 방식으로 나머지 서브블록들에 대해서도 동일한 과정을 수행한다. 6A에 나타낸 서브블록들의 분할 정보를 6B에 나타낸 그룹화된 영역의 분할 정보로 할당하는 과정을 MX -2, MX -3 … M1 레이어(Layer)까지 반복적으로 수행하면 6C와 같이 그룹화된 영역의 분할 정보가 할당될 수 있으며, 다시 M0 레이어까지 반복하면 6D와 같이 하나의 그룹화된 영역의 분할 정보를 가지도록 그룹화할 수 있다.
다만, 도 6에서는 일정한 영역 단위가 주변에 인접한 네 개의 서브블록들을 포함하는 영역으로 설정되는 것으로 설명했지만, 반드시 이에 한정되지 않고 주변에 인접한 여덟 개의 서브블록들을 포함하는 영역, 인접하지 않은 여섯 개의 서브블록들을 포함하는 영역 등과 같이 다양한 방식으로 서브블록들을 그룹화하여 분할 정보를 할당할 수도 있다.
도 6에 도시한 바와 같이 부호화하고자 하는 블록의 서브블록들의 분할 정보를 그룹화된 영역의 분할 정보로 할당한 것을 트리 구조로 나타내면 도 7과 같이 나타낼 수 있다.
도 7에서는 레이어별로 그룹화된 영역에 대한 분할 정보를 트리 구조로 예시적으로 나타내었다. 레이어별 그룹화된 영역에 대한 분할 정보를 노드값(Node Value)이라고 가정하면, 도 7에 도시된 트리 구조의 노드값들은 상위 노드(Node)의 노드값과의 차이값을 부호화함으로써 부호화될 수 있다.
노드값들과 상위 노드의 노드값의 차이값을 부호화하는 방법은 차이값 만큼의 이진 비트 0을 부호화하고 마지막에 이진 비트 1을 부호화한다. 만약, 현재 부호화할 노드의 노드값과 상위 노드의 노드값의 차이가 0인 경우에는 이진 비트 1을 부호화한다. 0과 1의 이진 비트를 부호화할 때 예를 들어 산술 부호화 방법을 이용할 수 있는데, 이때 각 레이어별로 다른 콘텍스트(Context)를 이용할 수 있다.
이와 같이, 트리 구조를 이용하여 분할 정보 즉, 노드값을 부호화할 때, 최상위 노드의 노드값(이하 '최상위 노드값'이라 칭함)은 후술하는 세 가지의 예와 같이 부호화될 수 있다. 일 예로, 최상위 노드값은 0과의 차이값을 전술한 바와 같이 0과 1의 이진 비트를 이용하여 부호화함으로써 부호화될 수 있다. 다른 예로, 분할 정보로 분할 타입별 번호가 설정되고 분할 타입의 발생 빈도수가 높은 순서로 큰 분할 타입별 번호가 설정된 경우, 최상위 노드값은 가장 큰 분할 타입 번호와의 차이값을 0과 1의 이진 비트를 이용하여 부호화함으로써 부호화될 수 있다. 또 다른 예로, 분할 정보로 분할 타입별 번호가 설정되고 분할 타입의 발생 빈도수가 높은 순서로 작은 분할 타입별 번호가 설정된 경우, 최상위 노드값은 가장 작은 분할 타입 번호와의 차이값을 0과 1의 이진 비트를 이용하여 부호화함으로써 부호화될 수 있다.
최상위 노드를 제외한 나머지 노드값들은 부호화하고자 하는 노드의 노드값과 해당 노드의 상위 노드의 노드값의 차이값을 이진 비트 0과 1을 이용하여 부호화함으로써 부호화될 수 있다. 즉, 차이값 만큼의 개수의 이진 비트 0을 부호화하고 마지막에 이진 비트 1을 부호화함으로써 각 노드값들이 부호화될 수 있다. 만약, 부호화하고자 하는 노드의 노드값과 상위 노드의 노드값의 차이가 0인 경우에는 이진 비트 1을 부호화한다. 또한, 이와는 반대로, 차이값 만큼의 개수의 이진 비트 1을 부호화하고 마지막에 이진 비트 0을 부호화함으로써 각 노드값들이 부호화될 수도 있으며, 이때 차이값이 0인 경우, 이진 비트 0을 부호화할 수 있다.
다만, 각 노드값을 부호화할 때 상위 노드값이 분할 타입 번호가 가질 수 있는 최대값인 경우, 해당 상위 노드의 하위 노드들의 노드값들은 부호화되지 않는다. 예를 들어, M1(0,0) 노드의 노드값이 3인 경우, M1(0,0) 노드의 하위 노드인 M2(0,0), M2(0,1), M2(1,0), M2(1,1) 노드의 노드값은 부호화되지 않는다. 즉, M1(0,0)은 M2(0,0), M2(0,1), M2(1,0), M2(1,1)의 최소값이므로 M2(0,0), M2(0,1), M2(1,0), M2(1,1)은 모두 3이상의 값을 가진다. 하지만, 도 4에서 분할 정보의 최대값은 3이므로 M2(0,0), M2(0,1), M2(1,0), M2(1,1)은 3 이외의 다른 값을 가질 수 없기 때문에 부호화할 필요가 없다.
또한, 부호화하고자 하는 노드와 상위 노드의 차이값을 부호화할 때, 부호화하고자 하는 노드의 노드값이 분할 타입 번호가 가질 수 있는 최대값인 경우, 차이값만큼의 개수의 이진 비트 0만을 부호화하고, 마지막에 이진 비트 1을 부호화하지 않는다. 예를 들어, 부호화하고자 하는 노드의 상위 노드의 노드값 M1(0,0)와 부호화하고자 하는 노드의 노드값 M2(0,0), M2(0,1), M2(1,0), M2(1,1)이 각각 1, 2, 3, 3, 2라고 가정하면, 노드값 M2(0,0)와 M2(1,1)은 이진 비트 01을 부호화하고 노드값 M2(0,1)과 M2(1,0)은 이진 비트 001이 아니라 00을 부호화한다.
또한, 같은 상위 노드를 가지는 노드들 중 마지막 노드의 노드값을 부호화하는 경우, 마지막 노드를 제외한 노드들의 노드값이 상위 노드의 노드값보다 모두 큰 경우 마지막 노드의 노드값은 부호화하지 않는다. 예를 들어, 부호화하고자 하는 노드의 상위 노드의 노드값 M1(0,0)과 부호화하고자 하는 노드의 노드값 M2(0,0), M2(0,1), M2(1,0), M2(1,1)이 각각 1, 2, 3, 3, 1이라고 가정하면, 노드값 M2(0,0), M2(0,1), M2(1,0)이 모두 노드값 M1(0,0)보다 크므로, 제일 마지막 노드의 노드값 M2(1,1)는 부호화하지 않는다.
한편, 최상위 노드를 제외한 나머지 노드값들은 전술한 바와 같이 부호화하고자 하는 노드의 노드값과 해당 노드의 상위 노드의 노드값의 차이값을 이진 비트 0과 1을 이용하여 부호화함으로써 부호화될 수도 있지만, 이와는 달리 각 노드의 노드값과 분할 타입의 발생 빈도수가 가장 높은 분할 정보의 차이값을 부호화함으로써 부호화될 수 있다.(여기서 발생 빈도수가 가장 높은 분할 정보는 고정값을 사용할 수도 있고 고정값이 아닐 수도 있다. 고정값이 아닌 경우, 부호화하여 복호화기에 전송할 수도 있고 또는 전송하지 않을 수도 있는데 전송하지 않는 경우 현재 블록 이전에 부호화된 블록들의 통계를 누적하여 현재까지 발생 빈도수가 가장 높은 모드를 사용할 수도 있다.) 트리 구조를 이용하여 분할 타입 정보를 부호화하는 또 다른 실시예로, 6A에 나타낸 서브블록들의 분할 정보들을 그룹화하여 6B의 그룹화된 영역의 분할 정보를 정할 때 발생빈도수가 높은 순서로 큰 분할 타입별 번호가 설정된 경우 그룹화된 영역의 값들 중 최대값을 그룹화된 영역의 분할 정보로 사용할 수 있다.
도 8은 본 발명의 제1 실시예에 따른 영상 복호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 제1 실시예에 따른 영상 복호화 장치(800)는 부호화 정보 복호화기(810) 및 영상 복호화기(820)를 포함하여 구성될 수 있다.
부호화 정보 복호화기(810)는 비트스트림을 복호화하여 전술한 스킵 정보, 예측 정보, 변환 정보, 잔여 신호 정보 등과 같은 부호화 정보를 복원한다. 또한 부호화 정보 복호화기(810)는 영상의 화소 정보 그 자체를 복호화할 수도 있다.
본 발명의 실시예에서 부호화 정보 복호화기(810)는 비트스트림을 복호화하여 영상의 복호화하고자 하는 블록이 스킵 블록인지 여부를 나타내는 스킵 정보를 복원하고, 스킵 정보에 따라 비트스트림을 복호화하여 블록의 스킵 움직임 정보를 복원하거나 블록의 인트라 또는 인터 예측 정보와 변환 정보를 복원한다.
예를 들어, 부호화 정보 복호화기(810)는 도 5에 도시한 바와 같은 신택스 구조를 가지는 비트스트림을 복호화하는데, 우선 비트스트림으로부터 스킵 정보 필드에 할당된 데이터를 추출하고 복호화하여 스킵 정보를 복원하며 복원된 스킵 정보에 따라 5A에 나타낸 바와 같이 비트스트림으로부터 제1 분할 정보와 스킵 움직임 정보 필드에 할당된 데이터를 추출하고 복호화하여 스킵 움직임 정보를 복원하거나 5B에 나타낸 바와 같이 비트스트림으로부터 예측 타입 필드, 제1 분할 정보 필드, 인트라 예측 모드 또는 움직임 정보 필드, 변환 정보 필드, CBP 필드, 델타 QP 필드 등에 할당된 데이터를 추출하고 복호화하여 예측 타입, 예측을 위한 블록 내 서브블록의 크기를 나타내는 제1 분할 정보, 인트라 예측 모드 또는 움직임 정보, 변환 크기 및 타입 정보, CBP 정보, 델타 QP 등과 같은 예측 정보를 복원한다.
영상 복호화기(820)는 스킵 움직임 정보를 기초로 블록을 복원하거나 예측 정보와 변환 정보를 기초로 비트스트림을 복호화하여 복원되는 잔여 신호 정보를 복호화하여 블록을 복원한다.
예를 들어, 영상 복호화기(820)는 부호화 정보 복호화기(810)에 의해 스킵 움직임 정보가 복원되면, 복원된 스킵 움직임 정보를 이용하여 복호화하고자 하는 블록 또는 해당 블록의 각 서브블록을 움직임 보상하여 생성되는 블록을 복호화하고자 하는 블록으로 복원하며, 부호화 정보 복호화기(810)에 의해 예측 정보가 복원되면 복원된 예측 정보를 이용하여 복호화하고자 하는 블록 또는 해당 블록의 각 서브블록을 인트라 예측 또는 인터 예측하여 예측 블록을 생성하고, 비트스트림을 복호화하여 변환 정보와 잔여 신호 정보를 복원하며, 복원된 잔여 신호 정보에 의한 잔여 블록과 예측 블록을 가산하여 복호화하고자 하는 블록을 복원한다.
이를 위해, 영상 복호화기(820)는 복호화기(Decoder), 역 양자화기 및 역 변환기, 예측기, 가산기, 필터 및 픽처 버퍼를 포함하여 구성될 수 있다. 예측기는 움직임 보상기를 포함하여 구성될 수 있다.
도 9는 본 발명의 제1 실시예에 따른 영상 복호화 방법을 설명하기 위한 순서도이다.
본 발명의 제1 실시예에 따른 영상 복호화 방법에 따르면, 영상 복호화 장치(800)는 비트스트림을 복호화하여 영상의 복호화하고자 하는 블록이 스킵 블록인지 여부를 나타내는 스킵 정보를 복원한다(S910). 즉, 영상 복호화 장치(800)는 복호화하고자 하는 블록에 대한 비트스트림으로부터 스킵 정보가 부호화된 데이터를 추출하고 복호화하여 스킵 정보를 복원한다.
영상 복호화 장치(800)는 스킵 정보에 따라 비트스트림을 복호화하여 블록의 스킵 움직임 정보를 복원하거나 인트라 또는 인터 예측 정보와 변환 정보를 복원하며(S920), 스킵 움직임 정보를 기초로 블록을 복원하거나 예측 정보와 변환 정보를 기초로 비트스트림을 복호화하여 복원되는 잔여 신호 정보를 복호화하여 블록을 복원한다(S930). 즉, 영상 복호화 장치(800)는 복원된 스킵 정보가 복호화하고자 하는 블록이 스킵 블록임을 나타내는지 여부에 따라서 블록을 다른 방식으로 복호화한다.
이하에서는 복호화하고자 하는 블록이 64x64 화소 크기의 매크로블록인 경우를 가정하여 영상 복호화 장치(800)가 단계 S920 및 단계 S930을 수행하는 과정에 대해 예를 들어 설명한다.
단계 S920에서, 영상 복호화 장치(800)는 복원된 스킵 정보가 현재 복호화 대상 블록이 스킵 블록임을 나타내는 경우, 비트스트림을 복호화하여 블록에 대한 제1 분할 정보 및 스킵 움직임 정보를 복원할 수 있다. 즉, 영상 복호화 장치(800)는 비트스트림으로부터 제1 분할 정보를 비트스트림으로부터 추출하고 복원하여 블록내 서브블록의 개수만큼 스킵 움직임 정보를 비트스트림으로부터 추출하고 복호화하여 스킵 움직임 정보를 복원한다. 단계 S930에서, 영상 복호화 장치(800)는 복원되는 스킵 움직임 정보를 이용하여 각 블록의 움직임을 보상하여 생성되는 예측 블록을 복호화하고자 하는 블록으로 복원한다.
단계 S920에서, 영상 복호화 장치(800)는 스킵 정보가 현재 복호화 대상 블록이 스킵 블록이 아님을 나타내는 경우, 비트스트림을 복호화하여 블록에 대한 예측 정보를 복원할 수 있다. 즉, 영상 복호화 장치(800)는 비트스트림으로부터 예측 정보가 부호화된 데이터와 변환 정보가 부호화된 데이터를 추출하고 복호화하여 예측 정보와 변환 정보를 복원하는데, 예측 정보는 복호화하고자 하는 블록에 대한 예측 타입 정보, 블록내 서브블록의 크기 및 모양을 나타내는 제1 분할 정보, 인트라 예측 모드 또는 움직임 정보로 복원된다. 이 경우, 단계 S930에서, 영상 복호화 장치(800)는 복원되는 예측 정보와 변환 정보 등을 기초로 비트스트림으로부터 잔여 신호 정보가 부호화된 데이터를 추출하고 복호화하여 잔여 신호 정보를 복원하고 복원되는 잔여 신호 정보를 역 양자화 및 역 변환하여 잔여 블록을 복원하며, 예측 정보와 변환 정보 등을 기초로 복호화하고자 하는 블록을 예측하여 예측 블록을 생성하며, 복원되는 잔여 블록과 예측 블록을 가산하여 복호화하고자 하는 블록을 복원한다.
또한, 복원된 스킵 정보가 복호화하고자 하는 블록이 스킵 블록이 아님을 나타내는 경우, 예측 정보는 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부를 나타내는 예측 타입 플래그와 예측을 위한 블록내 서브블록의 크기 및 모양을 나타내는 제1 분할 정보뿐만 아니라 각 서브블록이 스킵 서브블록인지 여부를 나타내는 스킵 서브블록 플래그를 추가로 포함할 수 있다. 즉, 영상 복호화 장치(800)는 복호화하고자 하는 블록이 스킵 블록이 아닌 경우, 비트스트림으로부터 잔여 신호 정보가 부호화된 데이터와 예측 정보가 부호화된 데이터를 추출하고 복호화해야 하는 것은 아니며, 비트스트림으로부터 스킵 서브블록 플래그만을 복호화하여 임의의 서브블록의 블록 모드가 스킵 모드인 것으로 판단되는 경우에는 해당 서브블록에 대해서는 복호화를 스킵할 수 있다.
단계 S920에서, 영상 복호화 장치(800)는 비트스트림을 복호화하여 제1 분할 정보 또는 제2 분할 정보를 복원할 때, 트리 구조를 이용하여 분할 정보를 복원할 수 있다. 또한 매크로블록 분할 정보도 트리 구조를 이용하여 분할 정보를 복원할 수 있다.
본 발명의 제1 실시예에 따르면 부호화 정보 복호화기(810)는 영상에 대해 복원하고자 하는 정보(예컨대, 분할 정보)를 트리 구조를 이용하여 복호화한다.
부호화 정보 복호화기(810)는 비트스트림을 복호화하여 레이어의 최대 개수에 대한 정보 및 최하위 레이어의 각 노드가 가리키는 영역의 크기에 대한 정보를 포함하는 부가 정보를 복원한다. 이와 같이 복원되는 부가 정보는 트리 구조를 복원하는 데 이용된다. 이때, 부호화 정보 복호화기(810)는 비트스트림의 헤더에서 부가 정보가 부호화된 데이터를 추출하고 복호화하여 부가 정보를 복원하는데, 비트스트림의 헤더는 매크로블록 헤더, 슬라이스 헤더, 픽처 헤더, 시퀀스 헤더 등일 수 있다.
또한, 부호화 장치(100)와 복호화 장치(800)가 서로 레이어의 최대 개수 및 최하위 레이어의 각 노드가 가리키는 영역의 크기 등에 대해 미리 약속한 경우, 부호화 장치(100)는 부가 정보를 부호화하지 않을 수 있으며 그에 따라 복호화 장치(800)도 비트스트림을 복호화하여 부가 정보를 복원하지 않고 기 설정된 부가 정보를 이용하여 트리 구조를 복원할 수 있다.
부호화 정보 복호화기(810)는 부가 정보를 기초로 비트스트림을 복호화하여 최상위 레이어로부터 최하위 레이어까지 레이어별 노드의 분할 여부를 나타내는 플래그를 복원하고 복원된 플래그에 따라 레이어별 노드의 노드값을 복원하여 정보를 복원한다. 즉, 부호화 정보 복호화기(810)는 부호화 정보 복호화기(810)에 의해 복원되거나 기 설정된 부가 정보를 기초로 비트스트림을 복호화하여 최상위 레이어로부터 최하위 레이어까지 레이어별 노드가 분할되는지 여부와 분할되지 않는 경우에는 노드의 노드값을 복원하여 트리 구조 구조를 복원하고, 복원된 트리 구조 구조를 기초로 복호화하고자 하는 정보를 복원한다.
본 발명의 제2 실시예에 따른 트리 구조를 이용한 복호화 방법에 따르면, 부호화 정보 복호화기(810)는 비트스트림을 복호화하여 레이어의 최대 개수에 대한 정보 및 최하위 레이어의 각 노드가 가리키는 영역의 크기에 대한 정보를 포함하는 부가 정보를 복원하고, 부가 정보를 기초로 비트스트림으로부터 추출되는 비트열을 복호화하여 최상위 레이어로부터 최하위 레이어까지 레이어별 노드의 분할 여부를 나타내는 플래그를 복원하고 복원된 플래그에 따라 레이어별 노드의 노드값을 복원하여 정보를 복원한다.
부호화 정보 복호화기(810)는 분할 여부를 나타내는 플래그가 노드가 하위 레이어로 분할되지 않음을 나타내는 경우에는 노드의 노드값을 복원할 수 있다. 즉, 부호화 정보 복호화기(810)는 레이어별 노드의 분할 여부를 나타내는 플래그를 복원하고, 복원된 플래그가 해당 노드가 하위 레이어로 분할됨을 나타내는 경우에는 다음 노드에 대한 복호화를 수행하고, 복원된 플래그가 해당 노드의 하위 레이어로 분할되지 않음을 나타내는 경우에만 해당 노드의 노드값을 복원한다.
부호화 정보 복호화기(810)는 최하위 레이어의 노드에 대해서는 각 노드의 노드값만을 복원할 수 있다. 즉, 부호화 정보 복호화기(810)는 레이어별 노드의 분할 여부를 나타내는 플래그 및/또는 노드의 노드값을 복원하는 과정에서 복호화하고자하는 노드가 최하위 레이어에 포함되는지 여부를 미리 판단하여 복호화하고자 하는 노드가 최하위 레이어에 포함되는 경우에는 해당 노드의 분할 여부를 나타내는 플래그를 복원하지 않고 해당 노드의 노드값만을 복원한다.
이하에서는 도 6 및 도 7을 참조하여, 본 발명의 제1 실시예에 따라 비트스트림을 복호화하여 분할 정보를 복원할 때, 트리 구조를 이용하여 분할 타입 정보를 복원하는 과정을 설명한다.
영상 부호화 장치(100)에서 최상위 노드값을 부호화할 때, 분할 정보로 분할 타입별 번호가 설정되고 분할 타입의 발생 빈도수가 높은 순서로 큰 분할 타입별 번호가 설정되어 가장 큰 분할 타입 번호와의 차이값을 0과 1의 이진 비트를 이용하여 부호화한 경우, 영상 복호화 장치(800)는 비트스트림으로부터 분할 타입 정보가 부호화된 데이터를 추출하고, 추출된 데이터의 이진 비트 0과 1을 복호화하여 차이값을 복원하고 가장 큰 분할 타입 번호로부터 복원된 차이값을 빼서 최상위 노드값을 복원한다. 이때, 영상 복호화 장치(800)가 차이값을 복원하기 위해, 분할 타입 정보가 부호화된 데이터의 한 비트를 읽어 들여 복호화하고 이진 비트를 복원하고, 복원된 이진 비트가 0인 경우 다음 비트를 읽어 들인다. 이와 같은 방식으로 복호화하여 이진 비트 1이 복원될 때까지 이진 비트 0을 계속 복원하고, 복원된 이진 비트가 1인 경우 더 이상 비트를 읽어 들여 복호화하지 않으며 차이값은 복원된 이진 비트 0의 개수가 된다. 다만, 비트의 개수가 분할 타입 번호가 가질 수 있는 최대값과 최소값의 차이값만큼 읽어 들여진 경우에는 다음 비트를 읽어 들이지 않으며 차이값은 복원된 이진 비트 0의 개수가 된다(이 경우, 차이값은 분할 타입 번호가 가질 수 있는 최대값과 최소값의 차이값이 됨).
반대로, 영상 부호화 장치(100)에서 최상위 노드값을 부호화할 때, 분할 정보로 분할 타입별 번호가 설정되고 분할 타입의 발생 빈도수가 낮은 순서로 큰 분할 타입별 번호가 설정되어 가장 작은 분할 타입 번호와의 차이값을 0과 1의 이진 비트를 이용하여 부호화한 경우, 영상 복호화 장치(800)는 비트스트림으로부터 분할 타입 정보가 부호화된 데이터를 추출하고, 추출된 데이터의 이진 비트 0과 1을 복호화하여 차이값을 복원하고 가장 작은 분할 타입 번호로부터 복원된 차이값을 빼서 최상위 노드값을 복원한다. 이때, 영상 복호화 장치(800)가 차이값을 복원하는 방법은 전술한 바와 같다.
또한, 영상 부호화 장치(100)에서 최상위 노드값을 부호화할 때, 0과의 차이값을 전술한 바와 같이 0과 1의 이진 비트를 이용하여 부호화함으로써 부호화 한 경우, 영상 복호화 장치(800)는 비트스트림으로부터 분할 타입 정보가 부호화된 데이터를 추출하고, 추출된 데이터의 이진 비트 0과 1을 복호화하여 복원되는 차이값을 최상위 노드값으로 복원한다. 이때, 영상 복호화 장치(800)가 차이값을 복원하는 방법은 전술한 바와 같다.
이후, 영상 복호화 장치(800)는 최상위 노드의 하위 노드들의 노드값을 복호화한다. 영상 부호화 장치(100)에서 부호화하고자 하는 노드의 노드값과 상위 노드의 노드값의 차이값의 개수만큼 이진 비트 0을 부호화하여 노드값을 부호화하는 경우, 영상 복호화 장치(800)는 각 노드의 노드값들을 복호화할 때, 비트스트림으로부터 추출되고 최상위 노드값을 복원하기 위해 읽어들여진 비트들의 다음의 한 비트를 읽어 들여 복호화하고 복원된 이진 비트가 0인 경우, 다음 비트를 읽어 들여 복호화한다. 복원된 상위 노드의 노드값이 분할 타입 번호가 가질 수 있는 최대값인 경우, 이진 비트를 복원하지 않고 분할타입 번호가 가질 수 있는 최대값을 복호화하고자 하는 노드값으로 복원한다. 만약, 복원된 이진 비트가 1인 경우 더 이상 비트를 읽어 들이지 않으며 복원된 이진 비트 0의 개수를 차이값으로 복원하고, 복원된 차이값에 상위 노드의 노드값을 더하여 복호화하고자 하는 노드의 노드값을 복원한다. 만약, 영상 부호화 장치(100)에서 부호화하고자 하는 노드의 노드값과 상위 노드의 노드값의 차이값의 개수만큼 이진 비트 1을 부호화하여 노드값을 부호화하는 경우, 전술한 방법에서 복원된 이진 비트가 0일 때까지 한 비트씩을 복호화하여 이진 비트를 복원한다.
다만, 복호화하고자 하는 노드값을 복원할 때, 현재까지 복원한 이진 비트 0의 개수에 따른 차이값과 해당 노드의 상위 노드의 노드값을 더한 값이 분할 타입 번호가 가질 수 있는 최대값인 경우, 더 이상 비트를 읽어 들여 이진 비트를 복원하지 않고 분할 타입 번호가 가질 수 있는 최대값을 해당 노드값으로 복원한다. 또한, 동일한 상위 노드를 가지는 노드들 중 마지막 노드의 노드값을 복원할 때 마지막 노드를 제외한 노드들의 노드값이 상위 노드의 노드값보다 모두 큰 경우, 더 이상 비트를 읽어 들여 이진 비트를 복원하지 않고 상위 노드의 노드값을 마지막 노드의 노드값으로 복원한다.
트리 구조를 이용하여 분할 타입 정보를 복호화하는 또 다른 실시예로 6A에 나타낸 서브블록들의 분할 정보들을 그룹화하여 6B의 그룹화된 영역의 분할 정보를 정할 때 발생빈도수가 높은 순서로 큰 분할 타입별 번호가 설정된 경우 복원한 상위노드 노드와 노드값을 빼서 현재노드의 노드값을 복원한다.
이상에서 전술한 바와 같이, 본 발명의 제1 실시예에 따르면, 영상에서 부호화하고자 하는 블록의 블록 모드와 분할 모드의 조합에 따라 효율적인 방식으로 해당 블록을 부호화고 복호화할 수 있으므로, 영상의 압축 효율을 향상시킬 수 있다.
이상에서는 부호화하고자 하는 블록의 스킵 정보와 분할 정보의 조합에 따라 해당 블록을 부호화 방법과 부호화를 통해 생성되는 비트스트림의 신택스 구조에 대해 본 발명의 일 실시예를 통해 설명했다. 이하에서는 본 발명의 다른 실시예를 통해 부호화하고자 하는 블록의 스킵 타입 정보에 따라 해당 블록에 대한 부호화 방식을 선택적으로 이용하여 영상을 부호화하는 방법에 대해 설명한다.
도 10은 본 발명의 제2 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 제2 실시예에 따른 영상 부호화 장치(1000)는 부호화 정보 부호화기(1010) 및 영상 부호화기(1020)를 포함하여 구성될 수 있다.
부호화 정보 부호화기(1010)는 영상의 부호화하고자 하는 블록의 스킵 타입을 나타내는 스킵 타입 정보를 부호화하고, 스킵 타입 정보에 따라 블록의 스킵 움직임 정보를 부호화한다. 즉, 부호화 정보 부호화기(1010)는 부호화하고자 하는 블록의 블록 모드가 스킵 모드인 경우, 블록의 스킵 타입을 나타내는 스킵 타입 정보를 부호화하며, 스킵 타입 정보를 기초로 블록의 스킵 움직임 정보를 부호화한다. 예를 들어, 부호화 정보 부호화기(1010)는 블록의 스킵 타입이 블록의 스킵 움직임 정보를 부호화함을 나타내는 경우 블록의 스킵 움직임 정보를 부호화한다.
영상 부호화기(1020)는 블록의 스킵 타입 정보에 따라 블록의 잔여 신호 정보를 부호화한다. 즉, 영상 부호화기(1020)는 부호화하고자 하는 블록의 블록 모드가 스킵 모드인 경우, 스킵 타입 정보를 기초로 블록의 잔여 신호 정보를 부호화한다. 예를 들어, 영상 부호화기(1020)는 블록의 스킵 타입이 블록의 잔여 신호 정보를 부호화함을 나타내는 경우 블록의 스킵 움직임 정보를 부호화한다. 이러한 영상 부호화기(1020)는 도 1을 통해 전술한 본 발명의 제1 실시예에 따른 영상 부호화기(120)와 같이 예측기, 감산기, 변환 및 양자화기, 부호화기, 역 양자화 및 역 변환기, 가산기, 필터, 픽처 버퍼 등을 포함하여 구성될 수 있다.
만약, 블록의 스킵 타입 정보가 블록에 대한 부호화를 스킵함을 나타내는 경우, 해당 블록에 대해서는 스킵 움직임 정보와 잔여 신호 정보 모두가 부호화되지 않고 스킵 타입 정보만이 부호화된다.
도 11은 본 발명의 제2 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도이다.
본 발명의 제2 실시예에 따른 영상 부호화 방법에 따르면, 영상 부호화 장치(1000)는 영상의 부호화하고자 하는 블록의 스킵 타입을 나타내는 스킵 타입 정보를 부호화한다(S1110). 여기서, 스킵 타입이란 블록의 블록 모드가 스킵 모드일 때, 어떠한 방식으로 스킵 모드의 블록을 부호화할 것인지를 나타낸다. 즉, 영상 부호화 장치(1000)는 부호화하고자 하는 블록의 블록 모드가 스킵 모드인 경우, 해당 블록을 스킵 모드에 따라 부호화할 때 블록의 잔여 신호 정보만을 부호화할지 아니면 블록의 움직임 정보만을 부호화할지 아니면 블록에 대한 부호화를 스킵할지 여부를 나타내는 스킵 타입 정보를 부호화한다.
이러한 스킵 타입 정보는 1 비트의 스킵 타입 플래그로 구현될 수 있는데, 1 비트의 스킵 타입 플래그를 통해 다음과 같이 세 가지 경우로 스킵 타입을 나타낼 수 있다. 일 예로, 스킵 타입 플래그가 0이면 스킵 모드가 블록에 대해 부호화를 하지 않고 스킵하는 것을 나타내고 스킵 타입 플래그가 1이면 스킵 모드가 블록의 잔여 신호 정보는 부호화하지 않고 스킵 움직임 벡터를 부호화하는 것을 나타낼 수 있다. 다른 예로, 스킵 타입 플래그가 0이면 스킵 모드가 블록에 대해 부호화를 하지 않고 스킵하는 것을 나타내고 스킵 타입 플래그가 1이면 블록의 스킵 움직임 벡터는 부호화하지 않고 블록의 잔여 신호 정보를 부호화하는 것을 나타낼 수 있다. 또 다른 예로, 스킵 타입 플래그가 0이면 블록의 잔여 신호 정보를 부호화하지 않고 블록의 스킵 움직임 벡터를 부호화하는 것을 나타내고 스킵 타입 플래그가 1이면 블록의 스킵 움직임 벡터를 부호화하지 않고 블록의 잔여 신호 정보를 부호화하는 것을 나타낼 수 있다.
영상 부호화 장치(1000)는 스킵 타입 정보에 따라 블록의 부호화를 스킵하거나 블록의 스킵 움직임 정보를 부호화하거나 블록의 잔여 신호 정보를 부호화한다(S1120).
여기서, 스킵 타입 정보는 블록의 부호화를 스킵함을 나타내거나 블록의 스킵 움직임 정보를 부호화함을 나타낼 수 있다. 또는, 스킵 타입 정보는 블록의 부호화를 스킵함을 나타내거나 블록의 잔여 신호 정보를 부호화함을 나타낼 수 있다. 또는 스킵 타입 정보는 블록의 스킵 움직임 정보를 부호화함을 나타내거나 블록의 잔여 신호 정보를 부호화함을 나타낼 수 있다.
따라서, 단계 S1120에서, 영상 부호화 장치(1000)는 스킵 타입 정보가 블록의 스킵 타입이 블록의 부호화를 스킵함을 나타내는 경우, 블록의 부호화를 수행하지 않고 스킵한다.
또한, 단계 S1120에서, 영상 부호화 장치(1000)는 스킵 타입 정보가 블록의 스킵 타입이 스킵 움직임 정보를 부호화함을 나타내는 경우, 부호화하고자 하는 블록의 스킵 움직임 정보를 부호화하고 해당 블록의 잔여 신호 정보는 부호화하지 않는다.
또한, 단계 S1120에서, 영상 부호화 장치(1000)는 스킵 타입 정보가 블록의 스킵 타입이 잔여 신호 정보를 부호화함을 나타내는 경우, 부호화하고자 하는 블록의 잔여 신호 정보를 부호화하고 해당 블록의 스킵 움직임 벡터 정보는 부호화하지 않는다. 이 경우, 부호화하고자 하는 블록의 잔여 신호 정보는 해당 블록의 주변 블록의 움직임 정보를 기초로 결정되는 움직임 정보를 이용하여 예측 부호화될 수 있다.
도 12는 본 발명의 제2 실시예에 따른 영상 복호화 장치(1200)의 구성을 간략하게 나타낸 블록 구성도이다.
본 발명의 제2 실시예에 따른 영상 복호화 장치(1200)는 부호화 정보 복호화기(1210) 및 영상 복호화기(1220)를 포함하여 구성될 수 있다.
부호화 정보 복호화기(1210)는 비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 스킵 타입을 나타내는 스킵 타입 정보를 복원하고, 스킵 타입 정보에 따라 비트스트림을 복호화하여 블록의 스킵 움직임 정보를 복원한다.
영상 복호화기(1220)는 스킵 타입 정보에 따라 기 설정된 방식에 따라 결정되는 움직임 정보를 기초로 블록을 복원하거나 스킵 움직임 정보를 기초로 블록을 복원하거나 비트스트림을 복호화하여 복원되는 잔여 신호 정보를 기초로 블록을 복원한다.
즉, 영상 복호화기(1220)는 부호화 정보 복호화기(1210)에 의해 복원되는 스킵 타입 정보가 블록의 스킵 타입이 스킵 움직임 벡터를 부호화함을 나타내는 경우, 부호화 정보 복호화기(1210)에 의해 복원되는 스킵 움직임 정보를 이용하여 복호화하고자 하는 블록의 움직임을 보상하여 생성되는 블록을 복호화하고자 하는 블록으로 복원한다. 또한, 영상 복호화기(1220)는 부호화 정보 복호화기(1210)에 의해 복원되는 스킵 타입 정보가 블록의 잔여 신호 정보를 부호화함을 나타내는 경우, 비트스트림을 복호화하여 잔여 신호 정보를 복원하고, 복원된 잔여 신호 정보를 역 양자화 및 역 변환하여 잔여 블록을 복원하며, 기 설정된 방식으로 결정되는 움직임 정보를 이용하여 움직임 보상하여 생성되는 예측 블록과 가산하여 복호화하고자 하는 블록을 복원한다. 만약, 영상 복호화기(1220)는 부호화 정보 복호화기(1210)에 의해 복원되는 스킵 타입 정보가 블록에 대한 부호화를 스킵함을 나타내는 경우, 기 설정된 방식으로 결정되는 움직임 정보를 이용하여 해당 블록의 움직임 보상을 수행하여 생성되는 블록을 해당 블록으로 복원한다.
여기서, 기 설정된 방식으로 결정되는 움직임 정보란 주변 블록의 움직임 정보를 이용하여 결정되는 움직임 정보일 수 있는데, 반드시 이에 한정되지 않고 기 설정된 다양한 방식으로 결정되는 움직임 정보가 이용될 수 있다.
도 13은 본 발명의 제1 실시예에 따른 영상 복호화 방법을 설명하기 위한 순서도이다.
본 발명의 제1 실시예에 따른 영상 복호화 방법에 따르면, 영상 복호화 장치(1200)는 비트스트림을 복호화하여 복호화하고자 하는 블록의 스킵 타입을 나타내는 스킵 타입 정보를 복원하고(S1310), 스킵 타입 정보에 따라 기 설정된 방식으로 결정되는 움직임 정보를 기초로 블록을 복원하거나 비트스트림을 복호화하여 복원되는 블록의 스킵 움직임 정보를 기초로 블록을 복원하거나 비트스트림을 복호화하여 복원되는 잔여 신호 정보를 기초로 블록을 복원한다(S1320).
단계 S1310에서, 영상 복호화 장치(1200)는 블록의 블록 모드가 스킵 모드인 경우에만 스킵 타입 정보를 복원할 수 있다. 즉, 복호화하고자 하는 블록의 블록 모드가 스킵 모드인 경우에만 비트스트림에 스킵 타입 정보가 부호화된 데이터가 포함되어 있으므로, 스킵 모드인 경우에만 비트스트림으로부터 스킵 타입 정보가 부호화된 데이터를 추출하고 복호화하여 스킵 타입 정보를 복원한다.
단계 S1320에서, 영상 복호화 장치(1200)는 복원되는 스킵 타입 정보가 블록의 부호화를 스킵함을 나타내는 경우, 기 설정된 방식으로 결정되는 움직임 정보를 기초로 블록을 복원할 수 있다. 즉, 스킵 타입 정보가 블록의 부호화를 스킵함을 나타내는 경우, 영상 부호화 장치(1000)에서 해당 블록의 부호화를 스킵하여 비트스트림에는 해당 블록에 대한 부호화 정보나 잔여 신호 정보가 부호화된 데이터가 없음을 알 수 있으므로, 비트스트림으로부터 데이터를 추출하여 복호화하지 않고, 영상 부호화 장치(1000)와 약속되어 기 설정된 방식으로 해당 블록의 움직임 정보(즉, 움직임 벡터와 참조 픽처 인덱스)를 결정하고 결정된 움직임 정보를 이용하여 해당 블록의 움직임을 보상하여 생성되는 블록을 복호화하고자 하는 블록으로 복원한다.
단계 S1320에서, 영상 복호화 장치(1200)는 스킵 타입 정보가 블록의 스킵 움직임 정보를 부호화함을 나타내는 경우, 비트스트림을 복호화하여 복원되는 블록의 스킵 움직임 정보를 기초로 블록을 복원할 수 있다. 즉, 영상 복호화 장치(1200)는 스킵 타입 정보가 블록의 스킵 움직임 정보를 부호화함을 나타내는 경우, 영상 부호화 장치(1000)에서 해당 블록의 잔여 신호 정보가 아닌 스킵 움직임 정보를 부호화하여 비트스트림에는 잔여 신호 정보가 부호화된 데이터가 없음을 알 수 있으므로, 비트스트림으로부터 스킵 움직임 정보가 부호화된 데이터를 추출하고 복호화하여 스킵 움직임 정보를 복원하고 복원된 스킵 움직임 정보를 이용하여 해당 블록의 움직임을 보상하여 생성되는 블록을 복호화하고자 하는 블록으로 복원한다.
단계 S1320에서, 영상 복호화 장치(1200)는 스킵 타입 정보가 블록의 잔여 신호 정보를 부호화함을 나타내는 경우, 비트스트림을 복호화하여 복원되는 잔여 신호 정보를 기초로 블록을 복원할 수 있다. 즉, 영상 복호화 장치(1200)는 스킵 타입 정보가 블록의 잔여 신호 정보를 부호화함을 나타내는 경우, 영상 부호화 장치(1000)에서 해당 블록의 스킵 움직임 정보가 아닌 잔여 신호 정보를 부호화하여 비트스트림에는 잔여 신호 정보가 부호화된 데이터가 없음을 알 수 있으므로, 비트스트림으로부터 잔여 신호 정보가 부호화된 데이터를 추출하고 복호화하여 잔여 신호 정보를 복원하고 복원된 잔여 신호 정보를 역 양자화 및 역 변환하여 잔여 블록을 복원하며 영상 부호화 장치(1000)와 약속되어 기 설정된 방식으로 해당 블록의 움직임 정보(즉, 움직임 벡터와 참조 픽처 인덱스)를 결정하고 결정된 움직임 정보를 이용하여 해당 블록의 움직임을 보상하여 생성되는 예측 블록과 복원된 잔여 블록을 가산하여 복호화하고자 하는 블록을 복원한다.
이상에서 전술한 바와 같이, 본 발명의 제2 실시예에 따르면 블록의 스킵 모드를 다양한 방식으로 정의하고 영상의 특성 및/또는 구현 방식이나 필요에 따라 다양한 방식을 선택적으로 이용하여 영상을 부호화하고 복호화할 수 있으므로, 영상의 압축 효율을 향상시킬 수 있다.
이하에서는 도 14 내지 도 16을 통해 또 다른 트리 구조를 이용한 부호화 방법에 대하여 설명한다.
도 14는 본 발명의 제3 실시예에 따른 트리 구조를 이용한 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 제3 실시예에 따른 트리 구조를 이용한 영상 부호화 장치(1400)는 가변 크기 블록을 위한 트리 부호화기(1410) 및 가변 크기 블록을 위한 부가 정보 부호화기(1420)를 포함하여 구성될 수 있다.
가변 크기 블록을 위한 트리 부호화기(1410)는 영상에 대해 부호화하고자 하는 정보를 가지는 소정의 영역들을 동일한 정보를 가지는 영역끼리 그룹화하고 레이어별 노드마다 노드가 분할되는지 여부에 따라 분할 여부를 나타내는 플래그와 노드값 중 하나 이상을 부호화한다.
가변 크기 블록을 위한 부가 정보 부호화기(1420)는 제3 실시예에 따른 트리 구조의 레이어의 최대 개수에 대한 정보 및 최하위 레이어의 각 노드가 가리키는 영역의 크기에 대한 정보를 포함하는 부가 정보를 부호화한다. 이와 같이 부호화된 부가 정보는 비트스트림의 헤더에 포함되는데, 비트스트림의 헤더로서는 시퀀스 헤더, 픽처 헤더, 슬라이스 헤더, 매크로블록 헤더 등이 될 수 있다.
이하에서는 도 15 및 도 16을 통해 트리 구조를 이용하여 부호화하고자 하는 정보를 부호화하는 과정에 대해 상세히 설명한다.
도 15는 본 발명의 트리 구조를 이용한 부호화 방법 중 제3 실시예에 따른 트리 구조를 나타낸 예시도이다.
도 15에서, 15A는 하나의 픽처 내에서 부호화하고자 하는 정보를 가지는 영역들을 나타낸 것이다. 15A에서 각 영역들은 16x16 화소 크기의 매크로블록들일 수 있으며, 각 영역 내에 표시된 A, B, C는 각 영역의 부호화하고자 하는 정보를 나타낸다. 이러한 정보는 분할 정보가 될 수도 있지만, 반드시 이에 한정되지 않고 인트라 예측 모드, 움직임 벡터 정밀도, 잔여 신호 정보(계수 정보) 등 다양한 정보가 될 수 있다. 다만, 본 발명의 실시예에서, 각 영역들이 16x16 화소 크기의 매크로블록인 것으로 가정하지만, 16x16 화소 크기의 블록뿐만 아니라 64x64 화소 크기의 블록, 32x32 화소 크기의 블록, 16x32 화소 크기의 블록, 16x16 블록, 16x8 화소 크기의 블록, 8x8 블록, 8x4 블록, 4x8 블록 또는 4x4 블록 등 다양한 형태일 수 있다. 또한, 각 영역의 크기는 서로 동일하지 않을 수 있다.
15B는 15A에 나타낸 각 영역 중 동일한 정보를 가지는 영역끼리 묶어 나타낸 것이다. 15C는 15B와 같이 묶여진 영역들의 정보를 트리 구조로 나타낸 것이다. 15C에서, 최하위 노드가 가리키는 영역의 크기는 16x16 크기의 매크로블록이고 트리 구조의 레이어의 최대 개수는 4이므로, 이와 같은 부가 정보는 부호화되어 해당 영역에 대한 헤더에 포함된다.
도 16은 본 발명의 제3 실시예에 따라 트리 구조로 표현된 정보가 부호화된 결과를 나타낸 예시도이다.
15C에 나타낸 트리 구조의 정보를 부호화하면 도 16에 도시한 바와 같은 최종 비트열을 얻을 수 있다. 노드가 하위 레이어의 노드들로 분할되었는지 여부를 하나의 비트로 부호화하는데, 예를 들어 비트값이 '1'인 경우에는 현재 노드가 하위 레이어의 노드들로 분할되었음을 나타내고 비트값이 '0'인 경우에는 현재 노드가 하위 레이어의 노드들로 분할되지 않았음을 나타낸다. 최하위 레이어의 노드의 경우, 하위 레이어의 노드들로 분할되었는지 여부를 부호화하지 않고 최하위 레이어의 노드의 노드값을 부호화한다.
15C에서, 레이어 0의 노드에 대해서는 하위 레이어의 노드들로 분할되었으므로 비트값 '1'로 부호화한다. 분할된 레이어 1의 첫 번째 노드의 노드값은 A이고 더 이상 하위 레이어의 노드들로 분할되지 않았으므로 비트값 '0'으로 부호화하고 노드값 A를 부호화한다. 레이어 1의 두 번째 노드는 하위 레이어의 노드들로 분할되었으므로 비트값 '1'로 부호화한다. 레이어 1의 세 번째 노드는 하위 레이어의 노드들로 분할되지 않았으므로 비트값 '0'으로 부호화하고 노드값인 B를 부호화한다. 레이어 1의 마지막 네 번째 노드는 하위 레이어의 노드들로 분할되었으므로 비트값 '1'로 부호화한다. 같은 방식으로 레이어 2의 각 노드들을 부호화하고, 레이어 3에서는 헤더에서 최대 레이어의 개수가 4 개로 지정되었으므로 더 이상의 하위 레이어의 노드들이 없음을 알 수 있으므로 각 노드값만을 부호화한다.
각 노드값은 설명의 편의를 위해 A, B, C로 표시되었으나 각 노드값은 이진비트들로 표현될 수 있다. 또한, 도 15를 통해 나타낸 예시에서는, 노드가 하위 레이어의 노드들로로 분할되거나 분할되지 않는 경우의 두 가지만 예를 들었다. 본 실시예에서는 노드가 하위 레이어의 노드들로 분할되는 경우, 4개의 노드로 분할된다. 도 15를 참조하면, 노드가 하위 레이어의 4개의 노드들로 분할된다는 것은 현재 레이어의 노드에 대응하는 영역이 4개의 동일한 서브 영역들로 분할됨을 의미한다.
대안으로서, 도 17에 도시한 바와 같이, 하위 레이어의 노드들로 분할되지 않았음, 가로로 긴 두 개 영역의 하위 레이어의 노드들로 나누어짐, 세로로 긴 두 개 영역의 하위 레이어의 노드들로 나누어짐, 4 개 구역의 하위 레이어의 노드들로 나누어짐과 같이 노드는 다양한 형태의 하위 레이어의 노드들로 분할될 수도 있다. 이 때, 상기 4가지 분할의 유형을 지시하는 정보가 영상 복호화 장치로 전송될 수 있다.
영상 부호화 장치(1400)는 그룹화된 영역이 크지 않은 경우, 상위 레이어의 노드에서 특정한 레이어의 노드들로 분할됨을 나타내는 플래그를 부호화함으로써 하위 레이어의 노드들이 있음을 나타내기 위한 비트량을 줄일 수 있다. 예를 들어, 비트스트림의 헤더에 최대 레이어의 개수가 4개로 지정되고 부호화하고자 하는 정보가 도 18에 도시한 바와 같이 분포되어 있는 경우, 도 18에 도시한 바와 같은 영역은 도 19에 도시한 바와 같이 동일한 정보를 가지는 영역끼리 묶어 표시할 수 있다. 이 경우, 영상 부호화 장치(1400)는 최상위 레이어의 노드가 레이어 2 또는 레이어 3의 노드들로 분할됨을 나타내는 플래그를 부호화함으로써, 상위 레이어의 노드가 하위 레이어의 노드들로 분할됨을 나타내는 플래그의 수를 줄여 비트량을 줄일 수 있다.
도 20은 본 발명의 제3 실시예에 따른 트리 구조를 이용한 부호화 방법을 설명하기 위한 순서도이다.
본 발명의 제3 실시예에 따른 트리 구조를 이용한 부호화 방법에 따르면 영상 부호화 장치는 정보를 가지는 소정의 영역들을 동일한 정보를 가지는 영역끼리 그룹화하고 레이어별 노드마다 노드가 분할되는지 여부에 따라 분할 여부를 나타내는 플래그와 노드값 중 하나 이상을 부호화하고(S2010), 레이어의 최대 개수에 대한 정보 및 최하위 레이어의 각 노드가 가리키는 영역의 크기에 대한 정보를 포함하는 부가 정보를 부호화한다(S2020).
단계 S2010에서, 영상 부호화 장치(1400)는 노드가 분할되는 경우에는 노드가 분할됨을 나타내는 플래그를 부호화할 수 있다. 즉, 영상 부호화 장치(1400)는 레이어별 노드마다 노드가 분할되는지 여부를 판단하고, 노드가 분할되는 경우 해당 노드값을 부호화하지 않고 해당 노드가 하위 레이어의 노드들로 분할됨을 나타내는 플래그만을 부호화할 수 있다.
단계 S2010에서, 영상 부호화 장치(1400)는 노드가 분할되지 않는 경우에는 노드가 분할되지 않음을 나타내는 플래그와 노드의 노드값을 부호화할 수 있다. 즉, 영상 부호화 장치(1400)는 레이어별 노드마다 노드가 분할되는지 여부를 판단하고 노드가 분할되지 않는 경우에는 해당 노드가 하위 레이어의 노드들로 분할되지 않음을 나타내는 플래그를 부호화할 뿐만 아니라 해당 노드의 노드값을 부호화할 수 있다. 여기서, 노드의 노드값이란 노드가 가지는 정보를 말하며, 동일한 정보를 가지는 영역끼리 그룹화되어 하나의 노드가 되는 경우 그 동일한 정보가 노드값이 된다.
단계 S2010에서, 영상 부호화 장치(1400)는 노드가 최하위 레이어의 노드인 경우, 노드의 노드값만을 부호화할 수 있다. 즉, 영상 부호화 장치(1400)는 레이어별 모드마다 노드가 분할되는지 여부를 판단하기 전에 부호화하고자하는 노드가 최하위 레이어인지 여부를 판단하여, 노드가 최하위 레이어인 경우에는 해당 노드의 분할 여부를 나타내는 플래그를 부호화하지 않고 해당 노드의 노드값만을 부호화할 수 있다.
단계 S2020에서, 영상 부호화 장치(1400)는 부가 정보가 부호화된 데이터를 비트스트림의 헤더에 포함시킬 수 있다. 여기서, 비트스트림의 헤더는 시퀀스 헤더, 픽처 헤더, 슬라이스 헤더, 매크로블록 헤더 등 다양한 부호화 단위의 헤더일 수 있다.
단계 S2010에서, 영상 부호화 장치(1400)는 노드가 분할됨을 나타내는 플래그를 부호화하는 데 있어서, 한 개 또는 두 개 이상의 하위 레이어의 노드들로 바로 분할됨을 나타내는 플래그를 부호화할 수 있다. 즉, 영상 부호화 장치(1400)는 노드의 분할 여부를 나타내는 플래그를 부호화할 때, 해당 노드가 하위 레이어의 노드들로 분할되는 경우, 해당 노드가 그 바로 한 개 하위의 레이어로 분할됨을 나타내는 플래그만을 부호화할 수 있는 것이 아니라 두 개, 세 개 등 복수 개의 하위 레이어의 노드들로 분할됨을 나타내는 플래그를 부호화할 수도 있다.
도 21은 본 발명의 제3 실시예에 따른 트리 구조를 이용한 영상 복호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 제3 실시예에 따른 트리 구조를 이용한 영상 복호화 장치(2100)는 가변 크기 블록을 위한 부가 정보 복호화기(2110) 및 가변 크기 블록을 위한 트리 복호화기(2120)를 포함하여 구성될 수 있다.
가변 크기 블록을 위한 부가 정보 복호화기(2110)는 비트스트림을 복호화하여 레이어의 최대 개수에 대한 정보 및 최하위 레이어의 각 노드가 가리키는 영역의 크기에 대한 정보를 포함하는 부가 정보를 복원한다. 이와 같이 복원되는 부가 정보는, 가변 크기 블록을 위한 트리 복호화기(2120)가 트리 구조를 복원하는 데 이용된다. 이때, 가변 크기 블록을 위한 부가 정보 복호화기(2110)는 비트스트림의 헤더에서 부가 정보가 부호화된 데이터를 추출하고 복호화하여 부가 정보를 복원하는데, 비트스트림의 헤더는 매크로블록 헤더, 슬라이스 헤더, 픽처 헤더, 시퀀스 헤더 등일 수 있다.
다만, 가변 크기 블록을 위한 부가 정보 복호화기(2110)는 반드시 영상 복호화 장치(2100)에 포함되어야 하는 것은 아니며, 구현 방식이나 필요에 따라 선택적으로 포함될 수 있다. 예를 들어, 영상 부호화 장치(1400)와 영상 복호화 장치(2100)가 서로 레이어의 최대 개수 및 최하위 레이어의 각 노드가 가리키는 영역의 크기 등에 대해 미리 약속한 경우, 영상 부호화 장치(1400)는 부가 정보를 부호화하지 않을 수 있으며 그에 따라 영상 복호화 장치(2100)도 비트스트림을 복호화하여 부가 정보를 복원하지 않고 기 설정된 부가 정보를 이용하여 트리 구조를 복원할 수 있다.
가변 크기 블록을 위한 트리 복호화기(2120)는 부가 정보를 기초로 비트스트림을 복호화하여 최상위 레이어로부터 최하위 레이어까지 레이어별 노드의 분할 여부를 나타내는 플래그를 복원하고 복원된 플래그에 따라 레이어별 노드의 노드값을 복원하여 정보를 복원한다. 즉, 가변 크기 블록을 위한 트리 복호화기(2120)는, 가변 크기 블록을 위한 부가 정보 복호화기(2110)에 의해 복원되거나 기 설정된 부가 정보를 기초로 비트스트림을 복호화하여 최상위 레이어로부터 최하위 레이어까지 레이어별 노드가 분할되는지 여부와 분할되지 않는 경우에는 노드의 노드값을 복원하여 트리 구조 구조를 복원하고, 복원된 트리 구조 구조를 기초로 복호화하고자 하는 정보를 복원한다.
이하에서는 도 20 및 도 21을 참조하여 영상 복호화 장치(2100)가 본 발명의 제3 실시예에 따라 트리 구조를 이용하여 비트스트림을 복호화하여 정보를 복원하는 과정에 대해 설명한다.
영상 복호화 장치(2100)는 비트스트림의 매크로블록 헤더, 슬라이스 헤더, 픽처 헤더 또는 시퀀스 헤더 등으로부터 부호화된 부가 정보를 추출하고 복호화하여 부가 정보를 복원한다. 부가 정보에는 트리 구조의 레이어의 최대 개수에 대한 정보와 최하위 레이어의 각 노드가 가리키는 영역의 크기에 대한 정보가 포함되어 있다.
영상 복호화 장치(2100)는 비트스트림으로부터 도 16의 최종 비트와 같은 비트열을 추출하고 전술한 바와 같이 복원된 부가 정보와 추출된 비트열을 기초로 도 15에 예시적으로 나타낸 바와 같은 트리 구조 구조를 복원한다.
예를 들어, 비트스트림으로부터 추출한 최종 비트의 비트열에서 비트값을 차례로 읽어 들여 최상위 레이어로부터 최하위 레이어까지 각 레이어별 노드가 하위 레이어의 노드들로 분할되는지 여부를 나타내는 플래그를 복원하고, 복원된 플래그가 하위 레이어의 노드들로 분할되지 않음을 나타내는 경우에는 다음 비트열을 읽어 들여 해당 노드의 노드값을 복원한다. 복원된 노드값이 복원하고자 하는 정보가 된다. 또한, 복원된 플래그가 하위 레이어의 노드들로 분할됨을 나타내는 경우에는 다음 비트값을 읽어들여 다음 노드 또는 다음 레이어의 다음 노드가 그 하위 레이어의 노드들로 분할되는지 여부를 나타내는 플래그를 복원한다. 이와 같은 방식으로 비트열을 차례로 읽어 들여 최하위 레이어까지 정보를 복원한다. 한편, 최하위 레이어의 노드에 대해서는 분할 여부를 나타내는 플래그를 복원하지 않고 각 노드의 노드값만을 복원한다.
노드가 하위 레이어의 노드들로 분할되는 경우, 도 15를 통해 나타낸 예시에서와 같이 4개의 노드로 분할된다. 도 15를 참조하면, 노드가 하위 레이어의 4개의 노드들로 분할된다는 것은 현재 레이어의 노드에 대응하는 영역이 4개의 동일한 서브 영역들로 분할됨을 의미한다. 대안으로서, 도 17에 도시한 바와 같이, 하위 레이어의 노드들로 분할되지 않았음, 가로로 긴 두 개 영역의 하위 레이어의 노드들로 나누어짐, 세로로 긴 두 개 영역의 하위 레이어의 노드들로 나누어짐, 4 개 구역의 하위 레이어의 노드들로 나누어짐과 같이 노드는 다양한 형태의 하위 레이어의 노드들로 분할될 수도 있다. 이 때, 상기 4가지 분할의 유형을 지시하는 정보가 영상 부호화 장치로부터 영상 복호화 장치로 전송된다.
영상 복호화 장치(2100)는 이와 같은 방식으로 최상위 레이어로부터 최하위 레이어까지 정보를 복원하여 15C와 같은 트리 구조 구조를 복원하고, 복원된 트리 구조 구조를 기초로 15B와 15A에 나타낸 각 영역들의 정보를 복원한다.
만약, 비트스트림의 비트열로부터 추출하고 복호화하여 복원한 플래그가 어느 레이어의 노드가 두 개, 세 개 등 복수 개의 하위 레이어의 노드들로 바로 분할됨을 나타내는 경우, 지시되는 하위 레이어 사이의 레이어에 대한 복호화를 스킵하고 지시되는 하위 레이어의 노드의 분할 여부를 나타내는 플래그 및 해당 노드의 노드값 중 하나 이상을 복호화한다.
도 22는 본 발명의 제3 실시예에 따른 트리 구조를 이용한 복호화 방법을 설명하기 위한 순서도이다.
본 발명의 제3 실시예에 따른 트리 구조를 이용한 복호화 방법에 따르면, 영상 복호화 장치(2100)는 비트스트림을 복호화하여 레이어의 최대 개수에 대한 정보 및 최하위 레이어의 각 노드가 가리키는 영역의 크기에 대한 정보를 포함하는 부가 정보를 복원하고(S2210), 부가 정보를 기초로 비트스트림으로부터 추출되는 비트열을 복호화하여 최상위 레이어로부터 최하위 레이어까지 레이어별 노드의 분할 여부를 나타내는 플래그를 복원하고 복원된 플래그에 따라 레이어별 노드의 노드값을 복원하여 정보를 복원한다(S2220).
단계 S2220에서, 영상 복호화 장치(2100)는 분할 여부를 나타내는 플래그가 노드가 하위 레이어의 노드들로 분할되지 않음을 나타내는 경우에는 노드의 노드값을 복원할 수 있다. 즉, 영상 복호화 장치(2100)는 레이어별 노드의 분할 여부를 나타내는 플래그를 복원하고, 복원된 플래그가 해당 노드가 하위 레이어의 노드들로 분할됨을 나타내는 경우에는 다음 노드에 대한 복호화를 수행하고, 복원된 플래그가 해당 노드의 하위 레이어의 노드들로 분할되지 않음을 나타내는 경우에만 해당 노드의 노드값을 복원한다.
노드가 하위 레이어의 노드들로 분할되는 경우, 도 15를 통해 나타낸 예시에서와 같이 4개의 노드로 분할된다. 또는, 대안으로서, 도 17에 도시한 바와 같이, 하위 레이어의 노드들로 분할되지 않았음, 가로로 긴 두 개 영역의 하위 레이어의 노드들로 나누어짐, 세로로 긴 두 개 영역의 하위 레이어의 노드들로 나누어짐, 4 개 구역의 하위 레이어의 노드들로 나누어짐과 같이 노드는 다양한 형태의 하위 레이어의 노드들로 분할될 수도 있다. 이때, 상기 4가지 분할의 유형을 지시하는 정보가 영상 부호화 장치로부터 영상 복호화 장치로 전송된다.
단계 S2220에서, 영상 복호화 장치(2100)는 최하위 레이어의 노드에 대해서는 각 노드의 노드값만을 복원할 수 있다. 즉, 영상 복호화 장치(2100)는 레이어별 노드의 분할 여부를 나타내는 플래그 및/또는 노드의 노드값을 복원하는 과정에서 복호화하고자하는 노드가 최하위 레이어에 포함되는지 여부를 미리 판단하여 복호화하고자 하는 노드가 최하위 레이어에 포함되는 경우에는 해당 노드의 분할 여부를 나타내는 플래그를 복원하지 않고 해당 노드의 노드값만을 복원한다.
본 발명의 트리 구조를 이용한 부호화 및 복호화 방법에서 부호화 및 복호화 대상 정보는 본 실시예의 데이터에 한정되지 않고 다음의 다양한 정보의 부호화 및 복호화에도 적용될 수도 있다.
부호화하고자 하는 정보는 매크로블록 크기 정보, 스킵 정보, 매크로블록, 예측 또는 변환을 위한 블록의 크기 또는 타입을 나타내는 분할정보, 인트라 예측 정보, 움직임 벡터(Motion Vector), 움직임 벡터의 예측 방향(Prediction Direction), 최적의 움직임 벡터 예측 후보(Motion Vector Prediction Candidate), 임의 크기 영역의 최적의 보간 필터(Interpolation Filter), 화질 개선 필터 사용 유무, 참조 영상의 번호(Reference Picture Index), 양자화 매트릭스 번호(Quantization Matrix Index), 최적의 움직임 벡터 정밀도(Motion Vector Precision) 및 변환의 크기 정보(Transform Size Information), 영상의 화소 정보(Pixel Information), 소정 블록내 0이 아닌 변환계수가 있는지 여부는 나타내는 정보(Coded Block Information) 또는 잔여 신호 정보(Coefficient Information) 등과 같이 영상의 영상 신호 정보나 영상 신호를 부호화하는 데 이용되는 다양한 정보가 될 수도 있다.
본 발명의 실시예에서 매크로블록은 영상 부호화 및 복호화의 기본 단위로서 가변 크기를 가진다. 매크로블록의 크기 정보는 본 발명의 실시예에 따른 트리 구조를 이용하여 부호화될 수 있다. 이를 위하여 본 발명의 실시예에 따른 영상 부호화 장치는 매크로블록의 최대 크기, 최소 크기, 트리를 구성하는 레이어들의 최대 개수 및 매크로블록 분할 플래그를 생성하여 영상 복호화 장치로 전송한다. 이러한 매크로블록 최대 및 최소 크기 정보와 트리를 구성하는 레이어들의 최대 개수를 나타내는 정보는 시퀀스, GOP, 픽처, 슬라이스 등의 헤더 정보로 비트스트림에 포함될 수 있다. 매크로블록 분할 플래그는 도 15 또는 도 16에 도시된 바와 같이, 트리 구조를 이용하여 부호화되어 부호화 단위 헤더에 포함될 수 있다. 다시 말해, 본 발명의 실시예에 따른 트리 구조를 이용하여 부호화되고 복호되는 정보는 전술한 매크로블록 분할 플래그이다.
매크로블록의 최대 및 최소 크기는 가로 크기와 세로 크기를 따로 설정하여 임의의 크기의 매크로블록을 사용할 수도 있다. 또한 부호화할 매크로블록 최대 및 최소 크기값은 실제 크기를 지정할 수도 있고 소정의 크기로부터 몇 배를 키울지 또는 축소 시킬지에 대한 값을 보낼 수도 있다. 만약, 최대 매크로블록의 크기를 소정의 크기로부터 몇 배 키울지에 대한 값을 부호화하고 소정의 크기가 16인 경우, log2(선택된 MBsize/16)의 값을 부호화하는데, 예를 들어 매크로블록의 크기가 16x16인 경우 0을 부호화하고 32x32 크기인 경우 1을 부호화한다. 또한, 가로와 세로에 대한 비율을 따로 부호화할 수도 있다.
또는, 최대 매크로블록의 크기값을 전술한 방법을 통해 부호화한 후 최소 매크로블록의 크기 값은 최대 매크로블록 크기에 대한 최소 매크로블록 크기의 비율 값을 나타내는 log2(최대 매크로블록의 크기/최소 매크로블록의 크기) 값을 부호화할 수도 있다. 또는 반대로 최소 매크로블록의 크기값을 전술한 방법을 통해 부호화한 후, 최대 매크로블록의 크기 값을 log2(최대 매크로블록의 크기/최소 매크로블록의 크기) 값을 통해 부호화할 수도 있다.
또한, 본 발명의 일 실시예에 따르면, 분할 정보를 본 발명의 실시예에 따른 트리구조를 이용하여 부호화 및 복호화할 수 있다. 분할 정보는 예측 및/또는 변환을 위한 서브블록(즉, 매크로블록 파티션)의 크기 및/또는 타입과 관련된 정보로서 예측 및/또는 변환을 위한 서브블록의 최대 크기, 최소 크기, 트리를 구성하는 레이어들의 최대 개수 및 분할 플래그를 포함할 수 있다. 본 발명의 실시예에 따른 영상 부호화 장치는 이들 분할 정보를 영상 복호화 장치로 전송한다.
예측 및/또는 변환을 위한 서브블록의 최대 및 최소 크기는 전체 영상 시퀀스 단위, 픽처 그룹 (GOP), 픽처 또는 슬라이스 등의 단위로 결정될 수 있다. 이러한 예측 및/또는 변환을 위한 서브 블록의 최대 크기, 최소 크기, 트리를 구성하는 레이어들의 최대 개수에 대한 정보는 시퀀스, GOP, 픽처, 슬라이스 등의 헤더 정보로 비트스트림에 포함될 수 있다.
한편, 상기 분할 정보 중 매크로블록 파티션 분할 플래그를, 본 발명의 실시예에 따른 트리 구조를 이용하여 부호화할 수 있다. 매크로블록 파티션 분할 플래그는 부호화 단위에 해당하는 매크로블록의 헤더 또는 매크로블록 파티션의 헤더에 포함될 수 있다.
한편, 예측 및/또는 변환을 위한 서브블록의 크기 즉, 예측 및/또는 변환의 크기 정보는 예측 및/또는 변환의 최대 및 최소 크기는 가로 크기와 세로 크기를 따로 설정하여 임의의 크기의 예측 및/또는 변환을 사용할 수도 있다. 또한, 사용 가능한 예측 및/또는 변환의 최대 및 최소 크기값은 실제 크기를 지정할 수도 있고 소정의 크기로부터 몇 배를 키울지 또는 축소시킬지에 대한 값을 보낼 수도 있다. 만약 최대 예측 및/또는 변환의 크기를 소정의 크기로부터 몇 배 키울지에 대한 값을 부호화하고 소정의 크기가 4인 경우, log2(선택된 예측 및/또는 변환의 크기/4)의 값을 부호화하는데, 예를 들어, 예측 및/또는 변환의 크기가 4x4인 경우 0을 부호화하고 8x8 크기인 경우 1을 부호화한다. 또한, 가로와 세로에 대한 비율을 따로 부호화할 수도 있다.
또는, 최대 예측 및/또는 변환의 크기값을 전술한 방법을 통해 부호화한 후 최소 예측 및/또는 변환의 크기값은 최대 예측 및/또는 변환 크기에 대한 최소 예측 및/또는 변환 크기의 비율값을 나타내는 log2(최대 예측 및/또는 변환의 크기/최소 예측 및/또는 변환의 크기) 값을 부호화할 수도 있다. 또는 반대로 최소 예측 및/또는 변환의 크기값을 전술한 방법을 통해 부호화한 후, 최대 예측 및/또는 변환의 크기 값을 log2(최대 예측 및/또는 변환의 크기/최소 예측 및/또는 변환의 크기) 값을 통해 부호화할 수도 있다.
소정 블록내 0이 아닌 변환계수가 있는지 여부는 나타내는 정보(Coded Block Information)는 예측 또는 변환을 위해 분할된 서브블록 내 0이 아닌 변환 계수 있는지 여부를 나타내는 1비트 길이의 플래그 일 수도 있다. 이때 휘도 성분(Y)과 색차 성분(U, V) 블록에 대해 각각 플래그를 부호화할 수도 있고 휘도 성분과 색차성분(Y, U, V) 세 블록에 대해 하나의 플래그를 통해 0이 아닌 변환 계수의 여부를 나타낼 수도 있다.
또는 세가지 컬러성분(Y, U, V)의 모든 블록 내 0이 아닌 변환 계수가 있는지를 나타내는 플래그를 부호화한 후, 0이 아닌 변환계수가 있는 경우에 대해서만 변환의 종류를 부호화 한 후, 각 컬러 성분의 서브블록 내 0이 아닌 변환 계수가 있는지 여부를 나타내는 플래그를 각각 부호화할 수도 있다.
한편, 전술한 실시예들에서 본 발명의 실시예에 따른 트리 부호화기(1410)는 부호화하고자 하는 영상 정보를 가지는 영역들을 동일한 정보를 가지는 영역끼리 그룹화하는 방식으로 부호화하고자 하는 영상 정보의 트리 구조를 생성한다고 설명하였다. 그러나 이는 트리 구조를 생성하는 일 예일 뿐이고, 그 밖에 다양한 방식으로 트리구조를 생성할 수 있음은 당업자에게 자명하다. 예컨대, 전술한 부호화 및 복호화의 단위인 매크로블록의 크기 또는 예측 또는 변환을 위한 서브블록의 크기는 기준이 되는 블록(예컨대, 최대 크기의 매크로블록)을 보다 적은 크기의 서브블록으로 반복하여 분할하는 방식에 의해 결정될 수 있다. 다시 말해, 기준 블록을 복수의 제1 서브블록으로 분할하고, 각 제1 서브블록을 다시 더 적은 크기의 제2 서브블록으로 분할하거나 또는 분할하지 않음으로써 다양한 크기의 매크로블록들 또는 예측 또는 변환을 위한 서브블록들이 하나의 픽처에 포함될 수 있다. 이 때 서브블록으로의 분할 여부는 분할 플래그에 지시된다. 이와 같은 방법에 의해 매크로블록의 크기 정보(즉, 매크로블록 분할 플래그) 또는 예측 또는 변환을 위한 서브블록의 크기 정보(즉, 매크로블록 파티션 분할 플래그)는 도 15의 15B 또는 15C에 도시한 바와 같은 트리 구조를 가질 수 있다.
한편, 본 발명의 일 실시예에 따른 영상 부호화/복호화 장치는 본 발명의 어느 하나의 실시예에 따른 영상 부호화 장치의 부호화데이터(비트스트림) 출력단을 본 발명의 어느 하나의 실시예에 따른 영상 복호화 장치의 부호화 데이터(비트스트림) 입력단에 연결함으로써 구현할 수 있다.
본 발명의 일 실시예에 따른 영상 부호화/복호화 장치는, 영상의 부호화하고자 하는 블록이 스킵 블록인지 여부를 나타내는 스킵 정보를 부호화하고, 상기 스킵 정보에 따라 상기 블록의 스킵 움직임 정보를 부호화하거나 인트라 또는 인터 예측 정보와 변환 정보를 부호화하며, 예측 정보 및 변환 정보를 기초로 상기 블록의 잔여 신호 정보를 부호화하는 영상부호화장치; 및 비트스트림을 복호화하여 복호화하고자 하는 블록이 스킵 블록인지 여부를 나타내는 스킵 정보를 복원하고, 상기 스킵 정보에 따라 상기 비트스트림을 복호화하여 상기 블록의 스킵 움직임 정보를 복원하거나 상기 블록의 인트라 또는 인터 예측 정보와 변환 정보를 복원하고 상기 스킵 움직임 정보를 기초로 상기 블록을 복원하거나 상기 예측 정보와 변환 정보를 기초로 상기 비트스트림을 복호화하여 복원되는 잔여 신호 정보를 복호화하여 상기 블록을 복원하는 영상 복호화장치를 포함한다.
본 발명의 일 실시예에 따른 영상 부호화/복호화 방법은, 본 발명의 어느 하나의 실시예에 따른 영상 부호화 방법과 본 발명의 어느 하나의 실시예에 따른 영상 복호화 방법을 결합하여 구현함으로써 실현할 수 있다.
본 발명의 일 실시예에 따른 영상 부호화/복호화 방법은, 영상의 부호화하고자 하는 블록이 스킵 블록인지 여부를 나타내는 스킵 정보를 부호화하고 상기 스킵 정보에 따라 상기 블록의 스킵 움직임 정보를 부호화하거나 상기 블록의 인트라 또는 인터 예측 정보와 변환 정보를 부호화하고 상기 예측 정보 및 상기 변환 정보를 기초로 상기 블록의 잔여 신호 정보를 예측 부호화하는 영상부호화단계; 및 비트스트림을 복호화하여 영상의 복호화하고자 하는 블록이 스킵 블록인지 여부를 나타내는 스킵 정보를 복원하고 상기 스킵 정보에 따라 상기 비트스트림을 복호화하여 상기 블록의 스킵 움직임 정보를 복원하거나 상기 블록의 인트라 또는 인터 예측 정보와 변환 정보를 복원하고 상기 스킵 움직임 정보를 기초로 상기 블록을 복원하거나 상기 예측 정보 및 상기 변환 정보를 기초로 상기 비트스트림을 복호화하여 복원되는 잔여 신호 정보를 복호화하여 상기 블록을 복원하는 영상복호화단계를 포함한다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
이상에서 설명한 바와 같이 본 발명의 실시예에 의하면, 동영상을 부호화하고 복호화하는 영상 압축 분야에 적용되어, 영상을 부호화하는 데 이용되는 부호화 정보를 효율적으로 부호화하고 다양한 부호화 방식과 복호화 방식을 선택적으로 이용하여 영상을 부호화할 수 있도록 함으로써 영상의 압축 효율을 향상시킬 수 있는 효과를 발생하는 매우 유용한 발명이다.

Claims (18)

  1. 영상 부호화 장치에 있어서,
    부호화하고자 하는 블록이 스킵 블록인지 여부를 나타내는 스킵 정보를 부호화하고, 상기 블록이 스킵 블록인지 여부에 따라 스킵 움직임 정보를 부호화하거나 상기 블록을 트리 구조로 분할하기 위한 분할 정보를 포함하는 변환 정보 및 상기 블록의 예측 정보를 부호화하는 부호화 정보 부호화기; 및
    상기 트리 구조에 의해 상기 블록으로부터 분할된 서브블록에 대한 잔차 신호 정보를 부호화하는 영상 부호화기
    를 포함하는 것을 특징으로 하는 영상 부호화 장치.
  2. 제 1 항에 있어서,
    상기 부호화 정보 부호화기는,
    최대 서브블록 크기와 최소 서브블록 크기 간의 차이에 대한 제1 정보 및 상기 최소 서브블록 크기에 대한 제2 정보를 포함하는 부가 정보를 부호화하고,
    상기 최대 서브블록 크기와 상기 최소 서브블록 크기에 근거하여 상기 트리 구조의 최상위 레이어로부터 각 노드가 하위 레이어의 노드들로 분할되는지 여부를 지시하는 분할 플래그를 부호화함으로써 상기 변환 정보를 부호화하고,
    상기 영상 부호화기는,
    더 이상 분할되지 않는 서브블록의 잔차 신호 정보를 부호화하는 것을 특징으로 영상 부호화 장치.
  3. 제 2 항에 있어서,
    상기 최소 서브블록 크기를 갖는 서브블록에 대응하는 노드가 분할되는지 여부를 지시하는 분할 플래그는 부호화되지 않는 것을 특징으로 하는 영상 부호화 장치.
  4. 제 2 항에 있어서,
    상기 최대 서브블록 크기보다 큰 서브블록에 대응하는 노드가 분할되는지 여부를 지시하는 분할 플래그는 부호화되지 않는 것을 특징으로 하는 영상 부호화 장치.
  5. 제 2 항에 있어서,
    어느 한 노드가 하위 레이어의 노드들로 분할될 때, 상기 어느 한 노드에 대응하는 서브블록은 상기 하위 레이어의 노드들에 각각 대응하는 4개의 동일 크기 서브블록으로 분할되는 것을 특징으로 하는 영상 부호화 장치.
  6. 제 2 항에 있어서,
    상기 블록으로부터 분할되는 서브블록은 상기 최소 서브블록 크기 이상 및 상기 최대 서브블록 크기 이하의 크기를 가지는 것을 특징으로 하는 영상 부호화 장치.
  7. 제 2 항에 있어서,
    상기 제1 정보 및 상기 제2 정보는 로그 스케일(log scale)의 값인 것을 특징으로 하는 영상 부호화 장치.
  8. 제 7 항에 있어서,
    상기 제1 정보는 log2 (최대 서브블록 크기 / 최소 서브블록 크기) 인 것을 특징으로 하는 영상 부호화 장치.
  9. 제 2 항에 있어서,
    상기 제1 정보 및 상기 제2 정보는 비트스트림에 시퀀스 단위로 부호화되는 것을 특징으로 영상 부호화 장치.
  10. 영상 부호화 방법에 있어서,
    부호화하고자 하는 블록이 스킵 블록인지 여부를 나타내는 스킵 정보를 부호화하는 단계;
    상기 블록이 스킵 블록인지 여부에 따라, 스킵 움직임 정보를 부호화하거나 상기 블록을 트리 구조로 분할하기 위한 분할 정보를 포함하는 변환 정보 및 상기 블록의 예측 정보를 부호화하는 단계; 및
    상기 블록이 스킵 블록일 때, 상기 트리 구조에 의해 상기 블록으로부터 분할된 서브블록에 대한 잔차 신호 정보를 부호화하는 단계
    를 포함하는 것을 특징으로 하는 영상 부호화 방법.
  11. 제 10 항에 있어서,
    상기 변환 정보는,
    최대 서브블록 크기와 최소 서브블록 크기 간의 차이에 대한 제1 정보 및 상기 최소 서브블록 크기에 대한 제2 정보를 포함하는 부가 정보를 부호화하고,
    상기 최대 서브블록 크기와 상기 최소 서브블록 크기에 근거하여 상기 트리 구조의 최상위 레이어로부터 각 노드가 하위 레이어의 노드들로 분할되는지 여부를 지시하는 분할 플래그를 부호화함으로써 부호화되고,
    상기 잔차 신호 정보는,
    더 이상 분할되지 않는 서브블록에 대해 부호화되는 것을 특징으로 영상 부호화 방법.
  12. 제 11 항에 있어서,
    상기 최소 서브블록 크기를 갖는 서브블록에 대응하는 노드가 분할되는지 여부를 지시하는 분할 플래그는 부호화되지 않는 것을 특징으로 하는 영상 부호화 방법.
  13. 제 11 항에 있어서,
    상기 최대 서브블록 크기보다 큰 서브블록에 대응하는 노드가 분할되는지 여부를 지시하는 분할 플래그는 부호화되지 않는 것을 특징으로 하는 영상 부호화 방법.
  14. 제 11 항에 있어서,
    어느 한 노드가 하위 레이어의 노드들로 분할될 때, 상기 어느 한 노드에 대응하는 서브블록은 상기 하위 레이어의 노드들에 각각 대응하는 4개의 동일 크기 서브블록으로 분할되는 것을 특징으로 하는 영상 부호화 방법.
  15. 제 11 항에 있어서,
    상기 블록으로부터 분할되는 서브블록은 상기 최소 서브블록 크기 이상 및 상기 최대 서브블록 크기 이하의 크기를 가지는 것을 특징으로 하는 영상 부호화 방법.
  16. 제 11 항에 있어서,
    상기 제1 정보 및 상기 제2 정보는 로그 스케일(log scale)의 값인 것을 특징으로 하는 영상 부호화 방법.
  17. 제 16 항에 있어서,
    상기 제1 정보는 log2 (최대 서브블록 크기 / 최소 서브블록 크기) 인 것을 특징으로 하는 영상 부호화 방법.
  18. 제 11 항에 있어서,
    상기 제1 정보 및 상기 제2 정보는 비트스트림에 시퀀스 단위로 부호화되는 것을 특징으로 영상 부호화 방법.
KR1020150179367A 2009-12-17 2015-12-15 영상 부호화/복호화 방법 및 장치 KR20160003593A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020090126276 2009-12-17
KR20090126276 2009-12-17

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR20100129988A Division KR20110069740A (ko) 2009-12-17 2010-12-17 영상 부호화/복호화 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20160003593A true KR20160003593A (ko) 2016-01-11

Family

ID=44401482

Family Applications (2)

Application Number Title Priority Date Filing Date
KR20100129988A KR20110069740A (ko) 2009-12-17 2010-12-17 영상 부호화/복호화 방법 및 장치
KR1020150179367A KR20160003593A (ko) 2009-12-17 2015-12-15 영상 부호화/복호화 방법 및 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR20100129988A KR20110069740A (ko) 2009-12-17 2010-12-17 영상 부호화/복호화 방법 및 장치

Country Status (2)

Country Link
US (5) US8885711B2 (ko)
KR (2) KR20110069740A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018128239A1 (ko) * 2017-01-03 2018-07-12 엘지전자 주식회사 영상 코딩 시스템에서 블록 분할 구조에 따른 영상 디코딩 방법 및 장치
KR20190028525A (ko) * 2017-02-06 2019-03-18 후아웨이 테크놀러지 컴퍼니 리미티드 인코딩 방법 및 장치와, 디코딩 방법 및 장치

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101483497B1 (ko) * 2008-09-25 2015-01-20 에스케이텔레콤 주식회사 임펄스 신호를 고려한 영상 부호화/복호화 장치 및 방법
KR20110069740A (ko) 2009-12-17 2011-06-23 에스케이 텔레콤주식회사 영상 부호화/복호화 방법 및 장치
CN102804782A (zh) 2010-01-15 2012-11-28 三星电子株式会社 用于预测编码的使用可变分区的视频编码的方法和设备以及用于预测编码的使用可变分区的视频解码的方法和设备
MX2013002086A (es) * 2010-12-06 2013-04-03 Panasonic Corp Metodo de codificacion de imagen, metodo de decodificacion de imagen, dispositivo de codificacion de imagen y dispositivo de decodificacion de imagen.
WO2013002620A2 (ko) * 2011-06-30 2013-01-03 삼성전자 주식회사 스킵 모드를 이용한 모션 정보 부호화 방법 및 장치, 그 복호화 방법 및 장치
EP2728882B1 (en) * 2011-06-30 2017-11-22 JVC KENWOOD Corporation Image decoding device, image decoding method, and image decoding program
US9025665B2 (en) 2011-07-01 2015-05-05 Cavium, Inc. Video encoder bit estimator for macroblock encoding
KR102615301B1 (ko) 2011-11-11 2023-12-19 엘지전자 주식회사 영상 정보 전송 방법 및 장치와 이를 이용한 복호화 방법 및 장치
DK3300370T3 (da) * 2012-02-29 2019-05-20 Sony Corp Anordning og fremgangsmåde til billedbehandling
US9952840B2 (en) * 2012-05-15 2018-04-24 International Business Machines Corporation Conditional sequential selection of external reference resolutions
FI2869557T3 (fi) * 2012-06-29 2023-11-02 Electronics & Telecommunications Res Inst Menetelmä ja laite kuvien koodaamiseksi/dekoodaamiseksi
US9621909B2 (en) 2012-07-02 2017-04-11 Lg Electronics Inc. Method for decoding image and apparatus using same
MX340434B (es) 2012-09-10 2016-07-08 Panasonic Ip Corp America Metodo de codificacion de imagenes, metodo de decodificacion de imagenes, aparato de codificacion de imagenes, aparato de decodificacion de imagenes y aparato de codificacion y decodificacion de imagenes.
KR20140092198A (ko) 2013-01-07 2014-07-23 한국전자통신연구원 계층적 비디오 부호화에서의 스케일러빌리티 정보 표현방식
US20160156915A1 (en) * 2013-07-18 2016-06-02 Samsung Electronics Co., Ltd. Video encoding method and apparatus and video decoding method and apparatus using video format parameter delivery
FR3030976B1 (fr) * 2014-12-22 2018-02-02 B<>Com Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes
WO2017086738A1 (ko) * 2015-11-19 2017-05-26 한국전자통신연구원 영상 부호화/복호화 방법 및 장치
KR20170058838A (ko) 2015-11-19 2017-05-29 한국전자통신연구원 화면간 예측 향상을 위한 부호화/복호화 방법 및 장치
MX2018006642A (es) * 2015-12-14 2018-08-01 Panasonic Ip Corp America Metodo de codificacion de datos tridimencionales, metodos de decodificacion de datos tridimensionales, dispositivo de codificacion de datos tridimensionales y dispositivo de decodificacion de datos tridimensionales.
JP6822470B2 (ja) * 2016-05-13 2021-01-27 ソニー株式会社 画像処理装置および方法
ES2786077B2 (es) * 2016-07-05 2023-01-09 Kt Corp Metodo y aparato para procesar una senal de video
CN109792519B (zh) * 2016-08-08 2023-06-23 Lg电子株式会社 基于帧内预测模式的图像处理方法及其装置
WO2018066980A1 (ko) * 2016-10-04 2018-04-12 김기백 영상 데이터 부호화/복호화 방법 및 장치
KR102180482B1 (ko) * 2017-11-09 2020-11-18 삼성전자주식회사 움직임 정보의 부호화 장치 및 방법, 및 복호화 장치 및 방법
US10469869B1 (en) 2018-06-01 2019-11-05 Tencent America LLC Method and apparatus for video coding
US10841617B2 (en) 2018-11-27 2020-11-17 Semiconductor Components Industries, Llc Methods and apparatus for successive intra block prediction
CN113545052A (zh) * 2019-03-08 2021-10-22 韩国电子通信研究院 图像编码/解码方法和装置以及存储比特流的记录介质
CN113454994B (zh) * 2019-03-21 2022-03-01 三星电子株式会社 用于对具有针对每个块形状设置的块尺寸的视频进行编码/解码的方法和装置
JP7189854B2 (ja) * 2019-09-19 2022-12-14 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
CN112204974A (zh) * 2019-10-31 2021-01-08 深圳市大疆创新科技有限公司 图像预测和视频编码方法、装置、可移动平台及存储介质
CN112637592A (zh) * 2020-12-11 2021-04-09 百果园技术(新加坡)有限公司 一种视频预测编码的方法及装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100378795B1 (ko) 2001-04-02 2003-04-03 엘지전자 주식회사 동영상에서 b픽쳐의 신축적인 다이렉트 모드 코딩 방법
KR101108501B1 (ko) 2002-03-15 2012-03-13 노키아 코포레이션 비디오 시퀀스에서의 움직임 부호화 방법
US7567617B2 (en) 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US8811495B1 (en) * 2007-02-06 2014-08-19 Geo Semiconductor Inc. Skipped video data recovery using multiple alternative recovery modes
JP4901772B2 (ja) * 2007-02-09 2012-03-21 パナソニック株式会社 動画像符号化方法及び動画像符号化装置
US8503527B2 (en) * 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
US20100086051A1 (en) * 2008-10-06 2010-04-08 Lg Electronics Inc. Method and an apparatus for processing a video signal
CN102771125B (zh) * 2009-12-10 2015-12-09 Sk电信有限公司 使用树形结构的编码/解码方法和装置
KR20110069740A (ko) * 2009-12-17 2011-06-23 에스케이 텔레콤주식회사 영상 부호화/복호화 방법 및 장치
EP2559238B1 (en) * 2010-04-13 2015-06-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Adaptive image filtering method and apparatus

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018128239A1 (ko) * 2017-01-03 2018-07-12 엘지전자 주식회사 영상 코딩 시스템에서 블록 분할 구조에 따른 영상 디코딩 방법 및 장치
KR20190028525A (ko) * 2017-02-06 2019-03-18 후아웨이 테크놀러지 컴퍼니 리미티드 인코딩 방법 및 장치와, 디코딩 방법 및 장치
US11095891B2 (en) 2017-02-06 2021-08-17 Huawei Technologies Co., Ltd. Encoding method and apparatus, and decoding method and apparatus

Also Published As

Publication number Publication date
US20150208077A1 (en) 2015-07-23
US20150281700A1 (en) 2015-10-01
US20150016526A1 (en) 2015-01-15
US9215462B2 (en) 2015-12-15
US20150281690A1 (en) 2015-10-01
US9462279B2 (en) 2016-10-04
US9215463B2 (en) 2015-12-15
US20120328015A1 (en) 2012-12-27
US8885711B2 (en) 2014-11-11
KR20110069740A (ko) 2011-06-23
US9118921B2 (en) 2015-08-25

Similar Documents

Publication Publication Date Title
KR20160003593A (ko) 영상 부호화/복호화 방법 및 장치
KR101874840B1 (ko) 영상 부호화/복호화 장치 및 방법
JP7210664B2 (ja) 映像符号化方法、映像復号化方法
KR101868290B1 (ko) 영상 부호화/복호화 장치 및 방법
JP6553769B2 (ja) 色差映像復号化方法
KR101984764B1 (ko) 영상 부호화/복호화 장치 및 방법
KR101479129B1 (ko) 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
KR101791242B1 (ko) 영상 부호화/복호화 장치 및 방법
KR101479141B1 (ko) 트리 구조를 이용한 부호화/복호화 방법 및 장치
KR101726680B1 (ko) 영상 부호화 방법 및 컴퓨터로 읽을 수 있는 기록 매체
KR101484058B1 (ko) 영상 복호화 방법
CN110602509A (zh) 用于最末重要系数位置编码中的上下文减少的设备和方法
KR101377529B1 (ko) 적응적 움직임 벡터 부호화/복호화를 이용한 영상 부호화/복호화 방법 및 장치
KR102533227B1 (ko) 변환 계수 코딩 방법 및 장치
KR20200004749A (ko) 잔차신호 재배열 방법 및 영상 복호화 장치
KR20130070618A (ko) 트리 구조를 이용한 부호화/복호화 방법 및 장치
KR20210025507A (ko) 차등 부호화를 이용하는 비디오 부호화 및 복호화

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E601 Decision to refuse application