KR20110036519A - 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치 - Google Patents

가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
KR20110036519A
KR20110036519A KR1020100095905A KR20100095905A KR20110036519A KR 20110036519 A KR20110036519 A KR 20110036519A KR 1020100095905 A KR1020100095905 A KR 1020100095905A KR 20100095905 A KR20100095905 A KR 20100095905A KR 20110036519 A KR20110036519 A KR 20110036519A
Authority
KR
South Korea
Prior art keywords
size
macroblock
encoding
subblock
image
Prior art date
Application number
KR1020100095905A
Other languages
English (en)
Other versions
KR101543314B1 (ko
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
Priority to CN201510302991.3A priority Critical patent/CN105049865B/zh
Priority to PL15182719T priority patent/PL2991356T3/pl
Priority to EP10820867.9A priority patent/EP2485489A4/en
Priority to US13/499,345 priority patent/US20130039415A1/en
Priority to PL19193514T priority patent/PL3595301T3/pl
Priority to EP19193515.4A priority patent/EP3595311B1/en
Priority to CN201510303536.5A priority patent/CN105007492B/zh
Application filed by 에스케이 텔레콤주식회사 filed Critical 에스케이 텔레콤주식회사
Priority to CN201510303298.8A priority patent/CN105007491B/zh
Priority to EP19193514.7A priority patent/EP3595301B1/en
Priority to EP15182719.3A priority patent/EP2991356B1/en
Priority to PCT/KR2010/006734 priority patent/WO2011040794A2/ko
Priority to PL19193515T priority patent/PL3595311T3/pl
Priority to CN201080054730.XA priority patent/CN102907098B/zh
Publication of KR20110036519A publication Critical patent/KR20110036519A/ko
Priority to US13/954,408 priority patent/US9215461B2/en
Priority to US14/744,412 priority patent/US9462278B2/en
Priority to US14/744,359 priority patent/US9462277B2/en
Application granted granted Critical
Publication of KR101543314B1 publication Critical patent/KR101543314B1/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/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
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial 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/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/146Data rate or code amount at the encoder output
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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
    • 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/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of 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/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/177Methods 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 group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/467Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking
    • 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
    • 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

Abstract

본 발명은 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치에 관한 것이다. 본 발명의 실시예에 따른 영상을 부호화하는 장치는, 가변 크기의 매크로블록을 이용하여 영상을 부호화하기 위한 블록 타입의 후보를 설정하는 후보 블록 타입 설정기; 블록 타입의 후보별로 입력 영상을 부호화하는 영상 부호화기; 블록 타입의 후보별 부호화 비용에 따라 블록 타입을 결정하고, 결정된 블록 타입으로 부호화된 영상 데이터 및 결정된 블록 타입에 대한 정보를 포함하는 비트스트림을 생성하는 블록 타입 결정기를 포함하는 것을 특징으로 한다. 본 발명의 실시예에 따르면, 영상의 특성에 따라 블록 타입을 결정함으로써 큰 크기의 블록과 매크로블록 크기, 최소 서브블록 크기, 사용 가능한 분할 블록의 종류, 매크로블록 내 예측모드의 종류 등과 같은 다양한 모드 조합을 이용하여 고해상도의 영상을 효율적으로 부호화하고 복호화할 수 있다.

Description

가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치{Video Coding/Decoding Apparatus and Method Using Variable Size Macroblock}
본 발명은 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 장치 및 방법에 관한 것이다. 더욱 상세하게는, 가변 크기의 블록을 이용하여 고해상도의 영상을 효율적으로 부호화하고 복호화하는 장치 및 방법에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 발명의 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
동영상 데이터의 압축기술로는 H.261, H.263, MPEG-2, MPEG-4 등이 있다. 이러한 비디오 압축 표준에서는 각 영상을 휘도 성분의 16x16 크기의 화소들과 각 색차 성분의 8x8 크기의 화소들의 사각 영역으로 이루어진 고정된 크기를 가지는 매크로블록(Macroblock)들로 나누어 부호화한다. 각 매크로블록의 모든 휘도와 색차 성분들은 공간적으로나 시간적으로 예측되고, 예측 잔여분은 변환 및 양자화, 엔트로피 코딩이 수행되어 전송된다.
가장 최근에 제정된 H.264/AVC 표준에 따른 부호화 장치는 16x16 화소 블록을 고정된 매크로블록의 크기로 사용하고 각각의 매크로블록을 더 작은 블록으로 분할하여 인트라 예측 또는 인터 예측을 수행한다. 인트라 예측 부호화할 때, 각 매크로블록은 16x16, 8x8, 4x4의 크기로 분할될 수 있으며, 16x16 크기의 블록에 대해서는 4 가지의 예측 모드, 8x8 크기와 4x4 크기의 블록에 대해서는 9 가지의 예측 모드중 하나를 이용하여 인트라 예측한다. 인터 예측의 경우, 매크로블록은 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4 크기를 가지는 더 작은 블록으로 분할되어 움직임 보상을 통한 인터 예측에 이용될 수 있다. 변환은 8x8 크기 또는 4x4 크기의 블록 단위로 수행되고, 변환 계수의 양자화는 스칼라(Scalar) 양자화가 사용된다.
하지만, 16x16 크기의 매크로블록은 과거의 QCIF(Quarter Common Intermediate Format), CIF(Common Intermediate Format)급의 작은 영상에 적합한 크기라 할 수 있으며, 4Kx2K 영상과 같은 고해상도 영상 압축을 위한 매크로블록의 크기로 부적합하다. 또한, 통상적인 영상 압축 기술에서는 고정된 크기의 매크로블록을 이용하여 영상을 부호화하기 때문에(비록 H.264/AVC에서는 매크로블록을 더 작은 블록 단위로 분할하여 부호화하지만, 매크로블록의 크기는 고정됨), 고해상도의 영상을 부호화하는 경우에는 효율적인 부호화가 어려운 문제점이 있다.
본 발명의 실시예는 전술한 문제점을 효율적으로 해결하기 위하여 창안된 것으로서, 영상의 특성에 따라 블록 타입을 결정할 수 있는 방법과 16x16보다 큰 크기의 화소블록이 부호화 및/또는 복호화의 단위인 매크로블록으로 사용될 때 효율적인 부호화 및 복호화 장치 및 방법을 제공하는 것을 목적으로 한다.
전술한 목적을 달성하기 위한 본 발명의 실시예에 따른 영상 부호화/복호화 장치는, 가변 크기의 매크로블록을 이용하여 영상을 부호화하기 위한 블록 타입의 후보를 설정하고, 블록 타입의 후보별로 입력 영상을 부호화하며, 블록 타입의 후보별 부호화 비용에 따라 블록 타입을 결정하고, 결정된 블록 타입으로 부호화된 영상 데이터 및 결정된 블록 타입에 대한 정보를 포함하는 비트스트림을 생성하는 영상 부호화기; 및 비트스트림으로부터 가변 크기의 매크로블록을 이용하여 영상을 부호화하기 위한 블록 타입에 대한 정보 및 부호화된 영상 데이터를 추출하고, 블록 타입에 대한 정보에 의해 식별되는 블록 타입에 따라 부호화된 영상 데이터를 복호화하여 복원 영상을 생성하는 영상 복호화기를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 실시예에 따른 영상 부호화 장치는, 가변 크기의 매크로블록을 이용하여 영상을 부호화하기 위한 블록 타입의 후보를 설정하는 후보 블록 타입 설정기; 블록 타입의 후보별로 입력 영상을 부호화하는 영상 부호화기; 블록 타입의 후보별 부호화 비용에 따라 블록 타입을 결정하고, 결정된 블록 타입으로 부호화된 영상 데이터 및 결정된 블록 타입에 대한 정보를 포함하는 비트스트림을 생성하는 블록 타입 결정기를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 실시예에 따른 영상 복호화 장치는, 비트스트림으로부터 가변 크기의 매크로블록을 이용하여 영상을 부호화하기 위한 블록 타입에 대한 정보 및 부호화된 영상 데이터를 추출하고, 블록 타입에 대한 정보에 의해 식별되는 블록 타입에 따라 부호화된 영상 데이터를 복호화하여 복원 영상을 생성하는 영상 복호화기를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 실시예에 따른 영상 부호화/복호화 방법은, 가변 크기의 매크로블록을 이용하여 영상을 부호화하기 위한 블록 타입의 후보를 설정하고, 블록 타입의 후보별로 입력 영상을 부호화하며, 블록 타입의 후보별 부호화 비용에 따라 블록 타입을 결정하고, 결정된 블록 타입으로 부호화된 영상 데이터 및 결정된 블록 타입에 대한 정보를 포함하는 비트스트림을 생성하는 단계; 및 비트스트림으로부터 가변 크기의 매크로블록을 이용하여 영상을 부호화하기 위한 블록 타입에 대한 정보 및 부호화된 영상 데이터를 추출하고, 블록 타입에 대한 정보에 의해 식별되는 블록 타입에 따라 부호화된 영상 데이터를 복호화하여 복원 영상을 생성하는 단계를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 영상 부호화 방법은, 가변 크기의 매크로블록을 이용하여 영상을 부호화하기 위한 블록 타입의 후보를 설정하는 단계; 블록 타입의 후보별로 입력 영상을 부호화하는 단계; 블록 타입의 후보별 부호화 비용에 따라 블록 타입을 결정하는 단계; 및 결정된 블록 타입으로 부호화된 영상 데이터 및 결정된 블록 타입에 대한 정보를 포함하는 비트스트림을 생성하는 단계를 포함하는 것을 특징으로 한다.
여기서, 블록 타입은, 부호화 및/또는 복호화 단위에 해당하는 매크로블록의 크기, 최소 서브블록의 크기 및 서브블록 모드 조합 중 하나 이상을 포함할 수 있다.
또한, 블록 타입의 후보를 설정하는 단계는, 입력되는 블록 타입의 후보를 설정하거나 상기 입력 영상의 특성에 따라 블록 타입의 후보를 결정하여 설정할 수 있다.
블록 타입의 후보는, 블록 타입이 상기 매크로블록의 크기 또는 최소 서브블록의 크기인 경우, 입력 영상의 가로 세로 비율에 따라 결정되어 설정될 수 있다.
또한, 블록 타입의 후보는, 블록 타입이 서브블록 모드 조합인 경우, 인트라 예측 또는 인터 예측에 따라 다르게 설정될 수도 있다.
비트스트림을 생성하는 단계는, 비트스트림에 결정된 블록 타입에 대한 정보를 한 번만 포함시키거나 입력 영상의 픽처마다 포함시킬 수 있다.
또한, 입력 영상의 해상도 또는 영상 특성에 기초하여 매크로블록의 크기를 가변적으로 선택하거나, 매크로블록의 크기에 기초하여 최소 서브블록의 크기를 가변적으로 선택하거나, 매크로블록의 크기 및 최소 서브블록의 크기에 기초하여 매크로블록 내의 서브블록 모드의 조합을 선택할 수 있다.
또한, 시퀀스, 픽처, 슬라이스 또는 매크로블록 단위로 매크로블록의 크기를 영상 복호화 장치로 전송할 수 있다.
또한, 기준 매크로블록의 크기를 설정하고, 입력 영상의 각 픽처, 슬라이스 또는 매크로블록 헤더마다 기준 매크로블록의 크기를 사용할지를 나타내는 플래그를 부호화하여 영상 복호화 장치로 전송할 수도 있다.
또한, 플래그가 기준 매크로블록의 크기를 사용하지 않음을 나타내는 경우, 선택된 매크로블록의 크기를 부호화할 수 있다.
또한, 플래그가 기준 매크로블록의 크기를 사용할 것을 나타내는 경우, 기준 매크로블록의 크기와 동일한 크기의 블록이 현재 매크로블록으로 선택될 수 있다.
또한, 플래그가 기준 매크로블록의 크기를 사용하지 않음을 나타내는 경우, 기준 매크로블록의 크기로부터 소정 비율만큼 확장 또는 축소한 블록이 현재 매크로블록으로 선택될 수 있다.
또한, 선택된 매크로블록의 크기를 부호화한 후, 다음 픽처부터는 이전 픽처의 매크로블록의 크기를 사용할지에 대한 플래그와 이전 픽처의 매크로블록의 크기를 사용하지 않을 경우 현재 픽처의 매크로블록의 크기를 부호화할 수 있다.
또한, 시퀀스 헤더에서 인트라 픽처를 위한 매크로블록의 크기와 인터 픽처를 위한 매크로블록의 크기를 다르게 하여 부호화할 수 있다.
또한, 최소 서브블록의 크기에 대한 정보를 보낼지에 대한 플래그의 부호화를 생략하고, 시퀀스, 픽처, 슬라이스 또는 매크로블록 헤더마다 최소 서브블록의 크기를 영상 복호화 장치로 전송할 수 있다.
또한, 기준 최소 서브블록의 크기를 설정하고 각 픽처, 슬라이스 또는 매크로블록 헤더마다 기준 최소 서브블록의 크기를 사용할지를 나타내는 플래그를 부호화할 수 있다.
또한, 기준 최소 서브블록의 크기를 설정하고 각 픽처, 슬라이스 또는 최소 서브블록 헤더마다 기준 최소 서브블록의 크기를 사용할지를 나타내는 플래그를 부호화할 수 있다.
또한, 플래그가 기준 최소 서브블록의 크기를 사용할 것을 나타내는 경우, 기준 최소 서브블록의 크기와 동일한 크기의 블록이 현재 최소 서브블록으로 선택될 수 있다.
또한, 플래그가 기준 최소 서브블록의 크기를 사용하지 않는 것을 나타내는 경우, 기준 최소 서브블록의 크기로부터 소정 비율만큼 확장 또는 축소한 블록을 현재 최소 서브블록으로 선택할 수 있다.
또한, 선택된 최소 서브블록의 크기를 부호화한 후, 다음 픽처부터 이전 픽처의 최소 서브블록의 크기를 사용할지에 대한 플래그와 이전 픽처의 최소 서브블록의 크기를 사용하지 않을 경우 현재 픽처의 최소 서브블록의 크기를 부호화할 수 있다.
또한, 시퀀스 헤더에서 인트라 픽처를 위한 최소 서브블록의 크기와 인터 픽처를 위한 최소 서브블록의 크기를 다르게 하여 부호화할 수 있다.
또한, 시퀀스 헤더 또는 각 픽처의 헤더에 예측 또는 변환을 위해 사용 가능한 서브블록 모드들의 정보를 보낼지에 대한 플래그를 포함시킬 수 있다.
전술한 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 영상 복호화 방법은, 비트스트림으로부터 가변 크기의 매크로블록을 이용하여 영상을 부호화하기 위한 블록 타입에 대한 정보 및 부호화된 영상 데이터를 추출하는 단계; 및 블록 타입에 대한 정보에 의해 식별되는 블록 타입에 따라 부호화된 영상 데이터를 복호화하여 복원 영상을 생성하는 단계를 포함하는 것을 특징으로 한다.
블록 타입은, 부호화 및/또는 복호화 단위에 해당하는 매크로블록의 크기, 최소 서브블록의 크기 및 서브블록 모드 조합 중 하나 이상을 포함할 수 있다.
또한, 추출하는 단계는, 비트스트림으로부터 결정된 블록 타입에 대한 정보를 한 번만 추출하거나 입력 영상의 픽처마다 추출할 수 있다.
비트스트림에 상기 매크로블록의 크기에 대한 정보를 보낼지에 대한 플래그가 포함된 경우, 시퀀스 헤더 또는 각 픽쳐의 헤더 또는 슬라이스 헤더의 약속된 위치에서 상기 매크로블록의 크기에 대한 정보를 보낼지에 대한 플래그를 복호화할 수 있다.
또한, 부호화기와 약속된 기준 매크로블록의 크기를 설정하고, 각 픽처, 슬라이스 또는 매크로블록 헤더로부터 기준 매크로블록의 크기를 사용할지를 나타내는 플래그를 복호화할 수 있다.
또한, 비트스트림으로부터 기준 매크로블록의 크기를 사용할지 여부를 나타내는 플래그 및/또는 기준 매크로블록의 크기로부터 소정 비율만큼 확장 또는 축소할 것을 나타내는 추가 정보를 추출한 후, 추출된 플래그 및/또는 추가 정보를 이용하여 현재 매크로블록의 크기를 결정할 수 있다.
또한, 매크로블록의 크기 정보를 복호화한 후, 복호화된 매크로블록의 크기 정보를 이용하여 첫 번째 픽처 복호화에 필요한 매크로블록 크기를 산출할 수 있다.
또한, 인트라 픽처와 인터 픽처의 매크로블록의 크기를 비트스트림 내 부호화기와 약속된 위치에서 각각 추출하여 픽처 종류에 따른 매크로블록의 크기를 설정할 수 있다.
또한, 비트스트림에 최소 서브블록의 크기에 대한 정보를 보낼지에 대한 플래그가 포함된 경우, 시퀀스 헤더 또는 각 픽쳐의 헤더 또는 슬라이스 헤더 등의 약속된 위치에서 최소 서브블록의 크기에 대한 정보를 보낼지에 대한 플래그를 복호화할 수 있다.
또한, 부호화기와 약속된 크기를 기준 최소 서브블록 크기로 설정하고 각 픽처, 슬라이스 또는 최소 서브블록 헤더로부터 기준 최소 서브블록의 크기를 사용할지를 나타내는 플래그를 복호화할 수 있다.
또한, 비트스트림으로부터 기준 최소 서브블록의 크기를 사용할지 여부를 나타내는 플래그 및/또는 기준 최소 서브블록의 크기로부터의 소정 비율만큼 확장 또는 축소할것을 나타내는 추가 정보를 추출한 후 정보들을 이용하여 현재 최소 서브블록의 크기를 추출할 수 있다.
또한, 첫 번째 픽처에서 기준 최소 서브블록의 크기를 사용할지에 대한 플래그와, 기준 최소 서브블록 크기를 사용하지 않는 경우, 최소 서브블록의 크기 정보를 복호화한 후 복호화된 최소 서브블록의 크기 정보를 이용하여 첫 번째 픽쳐 복호화에 필요한 최소 서브블록 크기를 구할 수 있다.
또한, 인트라 픽쳐와 인터 픽쳐의 최소 서브블록의 크기를 비트스트림 내 부호화기와 약속한 위치에서 각각 추출하여 픽쳐 종류에 따른 최소 서브블록의 크기를 설정할 수 있다.
또한, 시퀀스 헤더 또는 각 픽쳐의 헤더에 예측 또는 변환을 위한 서브블록들의 조합을 선택하여 사용할지 여부를 나타내는 플래그를 복호화하고 복호화한 플래그값이 선택하여 사용하지 않음을 나타내는 경우, 부호화기와 약속한 기본 서브블록 조합 모드를 예측 또는 변환에 사용할 수 있다.
이상에서 설명한 바와 같이 본 발명에 의하면, 영상의 특성에 따라 블록 타입을 결정함으로써 큰 크기의 블록과 매크로블록 크기, 최소 서브블록 크기, 사용 가능한 분할 블록의 종류, 매크로블록 내 예측모드의 종류 등과 같은 다양한 모드 조합을 이용하여 고해상도의 영상을 효율적으로 부호화하고 복호화할 수 있다.
도 1 내지 도 3은 본 발명의 일 실시예에 따른 MxN 화소 단위의 매크로블록을 설명하기 위한 예시도,
도 4 및 도 5는 본 발명의 일 실시예에 따른 여러 가지 서브블록 모드를 나타낸 예시도,
도 6은 본 발명의 일 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도,
도 7은 본 발명의 일 실시예에 따른 영상 복호화 장치를 간략하게 나타낸 블록 구성도,
도 8은 본 발명의 다른 실시예에 따른 영상 부호화 장치의 제 1 구현 예를 나타낸 블록 구성도,
도 9는 본 발명의 다른 실시예에 따른 영상 부호화 방법의 제 1 구현 예를 설명하기 위한 순서도,
도 10은 본 발명의 다른 실시예에 따른 영상 부호화 장치의 제 2 구현 예를 간략하게 나타낸 블록 구성도,
도 11 및 도 12는 최소 서브블록 크기에 따른 매크로블록의 서브블록 모드를 나타낸 예시도,
도 13은 본 발명의 다른 실시예에 따른 영상 부호화 방법의 제 2 구현 예를 설명하기 위한 순서도,
도 14는 본 발명의 다른 실시예에 따른 영상 부호화 장치의 제 3 구현 예를 나타낸 블록 구성도,
도 15 및 도 16은 서브블록 모드 조합을 나타낸 예시도,
도 17은 본 발명의 다른 실시예에 따른 영상 부호화 방법의 제 3 구현 예를 설명하기 위한 순서도,
도 18은 본 발명의 또 다른 실시예에 따른 영상 부호화 장치의 일 례를 간략하게 나타낸 블록 구성도,
도 19는 본 발명의 또 다른 실시예에 따른 영상 부호화 방법의 일 례를 설명하기 위한 순서도,
도 20 및 도 21은 본 발명의 일 실시예에 따른 인트라 픽처의 부호화 방법을 설명하기 위한 순서도,
도 22 및 도 23은 본 발명의 일 실시예에 따른 인터 픽처의 부호화 방법을 설명하기 위한 순서도,
도 24는 본 발명의 다른 실시예에 따른 영상 복호화 장치의 제 1 구현 예를 나타낸 블록 구성도,
도 25은 본 발명의 다른 실시예에 따른 영상 복호화 장치의 제 2 구현 예를 나타낸 블록 구성도,
도 26은 본 발명의 다른 실시예에 따른 영상 복호화 장치의 제 3 구현 예를 나타낸 블록 구성도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
이하에서 후술할 영상 부호화 장치(Video Encoding Apparatus), 영상 복호화 장치(Video Decoding Apparatus)는 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 이동통신 단말기(Mobile Communication Terminal) 등일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하거나 복호화하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.
또한, 영상 부호화 장치에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등의 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 영상 복호화 장치에서 복호화되어 영상으로 복원되고 재생될 수 있다.
통상적으로 동영상은 일련의 픽처(Picture)로 구성되어 있으며, 각 픽처들은 매크로블록(Macroblock)과 같은 소정의 영역으로 분할되며 매크로블록은 영상 부호화 및 복호화의 기준단위가 된다. 매크로블록은 부호화 방법에 따라 크게 인트라 매크로블록(Intra Macroblock), 인터 매크로블록(Inter Macroblock)으로 분류된다. 인트라 매크로블록은 인트라 예측 부호화(Intra Prediction Coding) 방식을 사용하여 부호화되는 매크로블록을 뜻한다. 인트라 예측 부호화란 현재 부호화를 수행하는 현재 픽처 내에서 이전에 부호화되고 복호화되어 복원된 블록들의 화소를 이용하여 현재 블록의 화소를 예측함으로써 예측 블록을 생성하고 현재 블록의 화소와의 차분값을 부호화하는 방식이다. 인터 매크로블록은 인터 예측 부호화(Inter Prediction Coding)를 사용하여 부호화되는 매크로블록을 뜻한다. 인터 예측 부호화란 하나 이상의 과거 픽처 또는 미래 픽처를 참조하여 현재 픽처 내의 현재 블록을 예측함으로써 예측 블록을 생성하고 현재 블록과의 차분값을 부호화하는 방식이다. 여기서, 현재 픽처를 부호화하거나 복호화하는데 참조되는 픽처를 참조 픽처(Reference Picture)라고 한다.
이하에서는 고정된 크기의 매크로블록을 사용하여 영상을 매크로블록 단위로 부호화하고 복호화하는 장치에 대한 예를 들어 설명한다. 여기서 매크로블록은 MxN(단, M과 N은 정수임, M은 매크로블록의 가로 크기이며, N은 매크로블록의 세로 크기 임. 따라서, 0<M<입력 영상의 가로 크기, 0<N<입력 영상의 세로 크기)크기의 화소 블록으로서 부호화 및 복호화의 단위에 해당한다. 다만, 영상을 매크로블록 단위로 부호화하고 복호화하는 것은 예시적인 것일 뿐, 영상을 매크로블록의 형태가 아닌 정형화된 영역 또는 비정형화된 영역 단위로 부호화하고 복호화할 수도 있을 것이다. 단, 다음에 설명하는 부호화/복호화 장치는 임의의 크기의 매크로블록을 사용할 수 있지만, 부호화기와 복호화기는 약속한 매크로블록의 크기, 사용 가능한 서브블록의 종류와 모드와 최소 서브블록의 크기를 사용하여 부호화/복호화한다.
도 1 내지 도 3은 본 발명의 일 실시예에 따른 MxN 화소 단위의 매크로블록을 설명하기 위한 예시도이다.
도 1에서는 임의의 크기를 가지는 입력 영상의 일 부분에서 표현된 MxN 화소 단위의 매크로블록(이하 'MxN 크기의 매크로블록'이라 칭함)을 예시적으로 나타내었고, 도 2에서는 396 개의 16x16 크기의 매크로블록으로 구성되는 CIF 영상을 예시적으로 나타내었으며, 도 3에서는 54 개의 64x32 크기의 매크로블록으로 구성되는 CIF 영상을 예시적으로 나타내었다.
기존의 영상 압축 기술에서는 도 2에 도시한 바와 같이, 영상을 16x16으로 고정된 크기를 가지는 매크로블록으로 분할하여 부호화하고 복호화하지만, 본 발명의 일 실시예에서는 도 3에 도시한 바와 같이, 64x32 크기(단, 64x32 크기의 매크로블록뿐만 아니라 64x64 크기, 32x64 크기와 같은 MxN 크기(단, 16x16 크기 이상)도 가능함)를 가지는 매크로블록을 이용하여 영상을 부호화하고 복호화할 수 있다.
도 4 및 도 5는 본 발명의 일 실시예에 따른 여러 가지 서브블록 모드를 나타낸 예시도이다.
도 4에서는 32x32 크기의 매크로블록에 대해 사용할 수 있는 서브블록 모드를 나타내었고, 도 5에서는 32x16 크기의 매크로블록에 대해 사용할 수 있는 서브블록 모드를 나타내었다.
본 발명의 일 실시예에 따르면, MxN 크기의 매크로블록은 도 4 및 도 5에 도시한 바와 같은 더 작은 블록 즉, 서브블록으로 분할될 수 있다. 영상의 매크로블록은 이와 같은 매크로블록 단위, 서브블록 단위 또는 지정된 예측 단위로 인트라 예측 부호화되거나 인터 예측 부호화될 수 있다.
도 6은 본 발명의 일 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.본 발명의 일 실시예에 따른 영상 부호화 장치는 16x16 크기 이상의 매크로블록을 이용하여 영상을 부호화하는 장치로서, 예측기(Predictor, 610), 부호화기(Encoder, 620), 복원기(Reproducer, 630), 필터(Filter, 640) 및 프레임 메모리(Frame Memory, 650)를 포함하여 구성될 수 있다. 여기서, 복원기(630), 필터(640) 및 프레임 메모리(650)는 구현 방식에 따라 선택적으로 생략되거나 다른 구성 요소에 포함되어 구성될 수 있다.
예측기(610)는 움직임 추정기(612), 움직임 보상기(614) 및 인트라 예측기(616)를 포함하여 구성될 수 있으며, 매크로블록을 더 작은 블록으로 분할하여 인트라 예측 또는 인터 예측을 수행함으로써 입력 영상의 매크로블록을 예측한다. 단, 종래 기술에 따르면 하나의 매크로블록 내의 서브블록들의 예측 부호화 시, 인트라 예측과 인터 예측을 동시에 사용할 수 없지만 본 발명의 일 실시예에 따르면 하나의 매크로블록 내의 서브블록들의 예측 부호화 시, 인트라 예측과 인터 예측을 함께 사용할 수도 있다.
움직임 추정기(612)는 예측하고자 하는 블록을 프레임 메모리(650)에 저장된 참조 픽처와 비교하여 해당 블록의 움직임을 추정함으로써 움직임 벡터를 생성한다.
움직임 보상기(614)는 움직임 추정기(612)에 의해 생성된 움직임 벡터를 참조하여 프레임 메모리(650)에 저장된 참조 픽처에서 예측하고자 하는 블록의 크기만큼의 블록을 가져온다. 움직임 보상기(614)가 가져온 블록이 예측하고자 하는 블록의 예측값을 가지는 예측 블록이 된다.
인트라 예측기(616)는 예측하고자 하는 블록을 인트라 예측한다. 이를 위해, 인트라 예측기(616)는 이미 부호화되고 복호화되어 복원된 주변 화소 정보를 이용하여 참조 블록을 생성하고 참조 블록과 부호화 대상 블록을 비교하여 인트라 예측 모드를 결정하고, 결정된 인트라 예측 모드에 따라 블록을 인트라 예측한다. 인트라 예측기(616)에 의해 예측된 블록이 대상 블록의 예측값을 가지는 예측 블록이 된다. 인트라 예측에서 사용 가능한 서브블록의 크기는 (M/y)x(N/y) 이며 여기서 y는 0보다 크며 min{log2(M/4), log2(N/4)}보다 작은 정수이다. 예를 들어, 64x32 크기의 매크로블록인 경우 인트라 예측을 위해 사용 가능한 서브블록의 크기는 64x32, 32x16, 16x8, 8x4이고 매크로블록의 크기가 32x32인 경우 인트라 예측을 위해 사용 가능한 서브블록의 크기는 32x32, 16x16, 8x8, 4x4이다. 다른 예로, 정사각형 모양의 블록만을 사용할 수도 있다. 64x32 크기의 매크로블록인 경우 사용 가능한 서브블록의 크기는 32x32, 16x16, 8x8, 4x4가 될 수 있다.
여기서, 16x16 이상의 크기(단, 16x16이 아닌 지정된 다른 크기일 수 있음)의 블록에 대해서는 H.264/AVC의 4 가지 인트라 예측 모드와 동일 또는 유사한 예측 모드 중 부호화 효율이 가장 좋은 모드를 선택하여 부호화하고 인트라 예측 모드를 부호화한다. 그리고 16x16 크기보다 작은 크기의 블록에 대해서는 H.264/AVC의 9 가지 인트라 예측 모드와 동일 또는 유사한 예측 모드 중 부호화 효율이 가장 좋은 예측 모드를 선택하고 예측 모드를 부호화한다.
이때 사용할 수 있는 변환의 종류는 매크로블록의 종류와 크기에 따라 다를 수 있다. 매크로블록이 인트라 매크로블록인 경우, 16x16 크기 이상의 인트라 예측을 사용하는 블록에 대해서는 예측 블록과 동일한 크기의 변환과 잔여 블록을 4x4 변환한 후 DC 성분들에 대하여 4x4 변환을 한 번 더 수행하는 변환을 사용할 수 있으며, 선택된 변환의 종류에 대한 정보를 비트스트림을 통해 전송한다. 또한, 16x16보다 작은 크기의 인트라 예측을 사용하는 블록에 대해서는 예측 블록과 동일한 크기의 변환을 사용한다. 매크로블록이 인터 매크로블록인 경우, 16x16 크기 이상의 블록에 대해서는 4x4 변환, 8x8 변환, 16x16 변환을 사용하고 1 비트 또는 2 비트를 사용하여 선택된 변환의 종류를 변환 플래그를 통해 전송한다. 그외의 경우에는 16x16 블록 단위로 변환 플래그를 전송하고 16x16 블록 내 서브 블록은 모두 같은 변환을 사용한다. 만약 16x16 블록이 두 개의 8x16 블록으로 분할된 경우에는 4x4 변환, 8x8 변환, 8x16 변환 중 부호화 비용이 작은 변환을 선택하고, 16x8 블록으로 분할된 경우에는 4x4 변환, 8x8 변환, 16x8 변환을 사용하고 부호화 비용이 작은 변환을 선택한다. 그리고 1 비트 또는 2 비트를 사용하여 선택된 변환의 종류를 변환 플래그를 통해 전송한다. 그리고 16x16 블록이 4 개의 8x8 블록으로 분할된 경우에만 4x4 변환 또는 8x8 변환을 사용할 수 있으며 선택된 변환의 종류는 변환플래그를 전송한다. 그외의 경우에는 변환 플래그를 전송하지 않는다.
부호화기(620)는 대상 매크로블록과 예측 매크로블록의 화소값의 차이인 잔여 신호를 부호화하는데, 잔여 신호를 변환 및 양자화하고 엔트로피 부호화하여 부호화할 수 있다. 또한, 부호화기(620)는 부호화하고자 하는 대상 매크로블록을 인터 예측하는 경우, 움직임 추정기(612)에서 생성한 움직임 벡터 등과 같은 움직임 정보와 매크로블록의 크기와 같은 매크로블록 모드 정보를 부호화할 수 있다. 부호화기(620)는 부호화하고자 하는 대상 매크로블록을 인트라 예측하는 경우, 인트라 예측 모드와 같은 예측 모드 정보와 매크로블록의 크기와 같은 매크로블록 모드 정보를 부호화할 수 있다. 부호화기(620)의 부호화 방법은 CAVLC 또는 CABAC 등과 같은 다양한 가변길이 부호화 방법을 이용할 수 있고, 어떠한 방법으로 부호화했는지를 나타내는 정보도 플래그 또는 부호화기와 복호화기가 약속한 테이블의 인덱스 값을 비트스트림의 헤더 정보로 포함하여 전송하도록 할 수 있다.
복원기(630)는 변화 및 양자화된 잔여 신호를 역 양자화 및 역 변환하여 예측기(610)로부터 출력되는 예측 매크로블록과 가산하여 대상 매크로블록을 복원한다.
필터(640)는 디블로킹 필터(Deblocking Filter)와 같은 필터를 이용하여 복원된 대상 매크로블록을 필터링한다. 필터링된 복원 매크로블록은 프레임 메모리(650)에 저장되어, 예측기(610)에서 다음 매크로블록 또는 다음 픽처의 매크로블록을 인터예측하는 데 활용된다.
이하에서는 도 20 및 도 21을 참고하여 인트라 픽처의 부호화 방법과 비트스트림을 통해 전송할 데이터를 설명한다. 인트라 픽처는 인트라 예측만을 사용하여 부호화할 수 있으며 인트라 픽처의 매크로블록 타입과 인트라 예측 모드를 부호화 하는 순서는 도 20 및 도 21에 도시한 바와 같다. 단, 도 20과 도21의 신택스(Syntax)의 부호화순서와 명칭은 일례일 뿐 도 20 및 도 21와 다를 수 있다
도 20 및 도 21에서 16x16 크기 이상의 블록에 대해서는 표 1를 이용하여 MxN_Block_type이 부호화된다. 16x16 크기 이상의 블록에 대해서는 4 가지의 인트라 예측 모드가 사용될 수 있으며, 잔여 블록은 use_large_transform_flag가 나타내는 변환을 사용하여 변환이 수행된다.
Figure pat00001
16x16 크기 이상의 블록일 때, use_large_transform_flag가 큰 크기의 변환을 사용하지 않음을 나타내는 경우(예를 들어, 0 인 경우)에는 4x4 변환과 4x4 변환을 통해 얻은 변환 계수들의 DC 성분들에 대해서는 하다마드 변환을 수행하고 use_large_transform_flag가 큰 크기의 변환을 사용함을 나타내는 경우(예를 들어, 1인 경우)에는 현재 블록과 동일한 크기의 변환을 수행한다.
16x16 크기보다 작은 블록일 때, 16x16 블록 단위로 use_large_tranform_flag를 한 번만 부호화하고, use_large_transform_flag가 큰 크기의 변환을 사용하지 않음을 나타내는 경우(예를 들어, 0인 경우)에는 16x16 블록을 16 개의 4x4 블록으로 분할하여 각 4x4 블록은 4x4 인트라 예측을 수행하며 잔여 블록은 4x4 변환을 수행한다. 그리고 use_large_tranform_flag가 큰 크기의 변환을 사용함을 나타내는 경우(예를 들어, 1인 경우)에는 16x16 블록을 4 개의 8x8 블록으로 분할하여 각 8x8 블록에 대해 8x8 인트라 예측을 수행하며 그 잔여 블록에 대해 8x8 변환을 수행한다. 그리고 휘도성분의 양자화된 변환 계수의 블록들에 대해서는 (M/2)x(N/2) 블록 당 1 비트를 할당하여 (M/2)x(N/2) 블록 내에 0이 아닌 계수가 있는지의 여부를 나타낸다.
이하에서는 도 22 및 도 23을 참고하여 인터 픽처의 부호화 방법과 비트스트림을 통해 전송할 데이터를 설명한다. 인터 픽처는 매크로블록 단위로 인트라 예측 또는 인터 예측을 선택적으로 사용할 수 있으며 인터 픽처 내 매크로블록 타입을 포함한 매크로블록 데이터를 부호화하는 순서는 도 22 및 도 23에 도시한 바와 같다. 단, 도 22과 도23의 신택스(Syntax)의 부호화순서와 명칭은 일례일 뿐 도 22 및 도 23과 다를 수 있다
16x16 크기 이상의 MxN 블록의 타입의 경우, P 픽처에 대해서는 표 2를 이용하여 부호화할 수 있으며, B 픽처에 대해서는 표 3을 이용하여 부호화할 수 있다.
Figure pat00002
Figure pat00003
P 픽처 내 인트라 매크로블록은 표 1을 사용하되, MxN_block_type 번호는 인트라의 MxN_block_type+5의 값을 할당한다. 즉, P 픽처 내 I_MxN_0_0_0 모드(인트라 매크로블록이고 MxN 인트라 예측을 사용하고 예측 모드 값은 0이며 휘도 성분과 색차 성분의 변환 계수가 없음을 나타내는 모드)의 값은 6이다.
B 픽처 내 인트라 매크로블록은 표 1을 사용하되. MxN_block_type 번호는 인트라의 MxN_block_type+23의 값을 할당한다.
8x8 크기 이하의 MxN 블록의 타입의 경우, P 픽처에 대해서는 표 4를 사용하여 부호화할 수 있으며, B 픽처에 대해서는 표 5를 이용하여 부호화할 수 있다.
Figure pat00004
Figure pat00005
도 7은 본 발명의 일 실시예에 따른 영상 복호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 영상 복호화 장치(700)는 복호화기(710), 예측기(720), 복원기(730), 필터(740) 및 프레임 메모리(750)를 포함하여 구성될 수 있다.복호화기(710)는 입력되는 비트스트림으로부터 매크로블록 복호화에 필요한 3가지 타입의 정보를 추출한다.
첫번째로 현재 복호화하고자 하는 매크로블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부와 매크로블록의 서브블록모드를 나타내는 매크로블록 타입 정보와 서브블록 모드 정보를 엔트로피 복호화하여 추출한다.
두번째로 예측에 필요한 정보를 엔트로피 복호화하여 추출한다. 이때 매크로블록의 종류에 따라 예측에 필요한 데이터는 달라지게 되는데 복원된 매크로블록이 인터 매크로블록인 경우에는 비트스트림으로부터 각 서브블록들의 움직임 보상에 필요한 참조픽쳐 정보와 움직임 벡터 등과 같은 움직임에 대한 정보를 추출하여 복호화하고, 인트라 블록인 경우에는 비트스트림으로부터 휘도 성분과 색차성분의 인트라 예측 모드에 대한 정보를 추출하여 복호화한다.
마지막으로 잔여신호 복호화에 필요한 정보들을 복호화하는데, 먼저 각 서브블록에 0이 아닌 변환계수가 있는지를 나타내는 정보를 복호화하고 0이아닌 변환계수가 있는 블록들에 대해서는 사용된 변환의 종류를 나타내는 변환정보와 양자화된 변환계수를 복호화한다.
변환정보 복호화 시, 변환정보 복호화에 필요한 비트수는 변환의 종류에 따라 다르며, 변환의 종류는 매크로블록의 종류와 서브블록의 크기에 따라 결정된다. 사용가능한 변환의 종류가 3가지인 경우에는 1비트 또는 2비트를 복호화하며, 사용가능한 변환의 종류가 2가지인 경우에는 1비트만을 복호화한다. 또한 사용가능한 변환의 종류가 한가지로 고정된 경우에는 변환 정보를 복호화하지 않는다.
만약 매크로블록이 인트라 매크로블록이고 서블록의 크기가 16x16 이상인 경우, 1비트를 엔트로피 복호화하여 예측 블록과 동일한 크기의 변환이 사용되었는지 또는 잔여 블록을 4x4 변환한 후 DC 성분들에 대하여 4x4 변환을 한 번 더 수행하는 변환을 사용했는지를 판단한다. 16x16보다 작은 크기의 인트라 예측을 사용하는 블록에 대해서는 변환 플래그를 엔트로피 복호화하지 않으며 이때는 예측 블록과 동일한 크기의 변환을 사용한다.
매크로블록이 인터 매크로블록인 경우, 16x16 크기 이상의 블록에 대해서는 블록 단위로 4x4 변환, 8x8 변환, 16x16 변환 중 사용된 변환의 종류로 1비트 또는 2비트를 엔트로피 복호화하여 추출한다. 그외의 경우에는 16x16 블록 단위로 변환 플래그를 복호화하고 16x16 블록 내 서브 블록은 모두 같은 변환을 사용한다. 16x16 블록이 두 개의 8x16 블록으로 분할된 경우, 복원된 변환 플래그는 4x4 변환, 8x8 변환, 8x16 변환 중 하나를 의미하게 되고 16x8 블록으로 분할된 경우에는 4x4 변환, 8x8 변환, 16x8 변환 중 하나를 의미한다. 그리고 16x16 블록이 4 개의 8x8 블록으로 분할된 경우에는 변환플래그를 복호화하여 4x4 변환 또는 8x8 변환 중 어떤 변환이 사용되었는지 정보를 추출한다. 그외의 경우에는 변환 플래그를 복호화하지 않으며 변환 종류는 4x4변환으로 설정한다.
예측기(720)는 현재 복호화하고자 하는 현재 매크로블록을 예측하는데, 움직임 보상기(722)와 인트라 예측기(724)를 포함하여 구성될 수 있다. 움직임 보상기(722)는 현재 매크로블록이 인터 매크로블록인 경우, 복호화기(710)에 의해 복호화되어 복원된 서브블록모드로 매크로블록을 서브블록으로 분할하고 복호화기(710)에 의해 복호화되어 복원된 각 서브블록의 움직임 벡터를 이용하여 프레임 메모리(750)에 저장된 참조 픽처에서 현재 매크로블록 내 서브블록의 크기만큼의 화소를 가져와서 예측 매크로블록을 생성한다. 인트라 예측기(724)는 현재 매크로블록이 인트라 블록인 경우, 복호화기(710)에 의해 복호화되어 복원된 인트라 예측 모드에 따라 이미 복호화되어 복원된 주변 화소 정보를 이용하여 현재 매크로블록을 예측하여 예측 매크로블록을 생성한다.
복원기(730)는 복호화기(710)에 의해 복호화된 양자화된 변환계수를 역 양자화하고 복호화기(710)에서 추출한 변환종류를 이용하여 역 변환하여 잔여 신호를 생성한 후,생성된 잔여신호를 예측기(720)에 의해 생성된 예측 매크로블록을 더하여 복원 매크로블록을 생성하고, 생성된 복원 매크로블록은 필터(740)에서 필터링되어 프레임 메모리(750)에 저장되고, 다음 매크로블록이나 다음 픽처를 복원하는 데 이용된다.이상에서 전술한 바와 같이, 본 발명의 일 실시예에 따른 영상 부호화 장치(600)와 영상 복호화 장치(700)는 16x16 크기 이상의 매크로블록을 이용하여 영상을 부호화하고 복호화할 수 있다.
이하에서는 도 20 및 도 21을 참고하여 비트스트림을 통해 전송받은 인트라픽쳐의 데이터와 복호화 방법을 설명한다. 인트라 픽쳐의 경우 비트스트림을 통해 전송받은 데이터의 종류와 순서는 도 20 및 도 21에 도시한 바와 같다. 먼저 엔트로피 복호화하여 MxN_Block_type값을 구하고 표 1을 이용하여 매크로블록이 4개의 서브블록으로 분할되었는지의 여부를 판단한다.
복호화된 매크로블록의 MxN_Block_type값이 0이 아닌 값을 가지는 경우 매크로블록 단위로 인트라 예측이 수행되었으며 예측모드와 CBP 정보를 MxN_Block_type값을 통해 알 수 있다. 이후 색차성분의 예측모드 정보와 변환종류, QP_delta, 양자화된 변환계수와 같은 잔여블록 복원에 필요한 데이터를 복호화한다. 단, 잔여블록 복호화와 관련된 데이터는 MxN_Block_type을 통해 얻은 CBP가 0이 아닌 경우 (즉, 매크로블록내 0이 아닌 변환계수가 있는 경우) 에만 복호화한다.
복호화된 매크로블록의 MxN_Block_type 값이 0인 경우 매크로블록은4개의 서브블록으로 분할되었음을 의미하는데, 분할된 서브블록의 크기가 16x16이상인 경우에는 도 20에서와 같이 각 서브블록 별로 도 20의 데이터들을 순서대로 복호화하고, 분할된 서브블록의 크기가 16x16보다 작은 경우 도 21의 데이터들을 순서대로 복호화한다.
변환 정보를 복호화 방법은 16x16 크기 이상의 블록에 대해서는 1비트를 엔트로피 복호화하여 use_large_transform_flag의 값을 설정한다. 설정된 use_large_transform_flag값이 큰 크기의 변환이 사용되지 않음을 나타내는 경우(예를 들어, 0 인 경우)에는 역변환 시 4x4 변환과 4x4 변환을 통해 얻은 변환 계수들의 DC 성분들에 대해서는 하다마드 변환을 사용하고 use_large_transform_flag가 큰 크기의 변환이 사용되었음을 나타내는 경우(예를 들어, 1인 경우)에는 현재 블록과 동일한 크기의 변환을 사용한다.
16x16 크기보다 작은 블록일 때, use_large_transform_flag는 16x16블록내 예측에 사용된 서브블록의 크기와 변환의 종류를 나타낸다. 이때는 16x16 블록 단위로 use_large_tranform_flag를 한 번만 복호화하고, use_large_transform_flag가 큰 크기의 변환을 사용되지 않았음을 나타내는 경우(예를 들어, 0인 경우)에는 16x16 블록을 16 개의 4x4 블록으로 분할하여 각 4x4 블록은 4x4 인트라 예측을 수행하며 잔여 블록은 4x4 역변환을 수행한다. 그리고 use_large_tranform_flag가 큰 크기의 변환을 사용함을 나타내는 경우(예를 들어, 1인 경우)에는 16x16 블록을 4 개의 8x8 블록으로 분할하여 각 8x8 블록에 대해 8x8 인트라 예측을 수행하며 그 잔여 블록에 대해 8x8 역변환을 수행한다.
이하에서는 도 22 및 도 23을 참고하여 비트스림을 통해 전송받은 인터 픽처의 데이터와 복호화 방법을 설명한다. 인터 픽쳐의 경우 비트스트림을 통해 전송받은 데이터의 종류와 순서는 도 22 및 도 23에 도시한 바와 같다. 16x16크기 이상의 MxN_Block_Type 값을 복호화하는 경우, P픽쳐에 대해서는 표 1과 표 2를 이용하여 복호화 할 수 있으며, B 픽처에 대해서는 표 1과 표 3을 이용하여 복호화 할 수 있다. P 픽처 내 인트라 매크로블록은 표 1을 사용하되, 인덱스 값들은 표 1의 MxN_block_type값에 5을 더한값을 할당한다. 예를들어 P픽쳐내 복원한 MxN_Block_Type 값이 6인 경우, MxN블록단위로 인트라 예측되었으며 인트라예측 모드값은 0이고 휘도성분과 색차성분 모두 변환계수가 모드 0임을 나타낸다. 동일한 방법으로 B 픽쳐 매크로블록은 표 3과 표 1을 사용하되 표 1의 MxN_block_type값에 23을 더한값을 할당한다. 8x8 크기 이하의 MxN 블록의 타입의 경우, P 픽처에 대해서는 표 4를 사용하여 복호화할 수 있으며, B 픽처에 대해서는 표 5를 이용하여 복호화할 수 있다.
P 픽쳐 내 매크로블록의 복호화 과정은 매크로블록이 SKIP모드인지의 여부를 나타내는 플래그(MxN_Skip_flag)를 복호화하여 판단하고 SKIP모드인 경우에는 예측움직임 벡터를 사용하여 움직임 보상을 수행하고 움직임 보상을 통해 얻은 예측 매크로블록을 복원 매크로블록으로 하여 현재 매크로블록의 복호화를 마치고 다음 매크로블록 데이터를 엔트로피 복호화한다.
현재 복호화대상 매크로블록이 SKIP모드 또는 인트라 매크로블록이 아닌 경우, MxN_Block_type값을 엔트로피 복호화한다.
복호화 한 MxN_Block_type값을 표2를 이용하여 매크로블록이 4개의 서브블록으로 분할되었는지의 여부를 판단한다. 즉, 복호화된 매크로블록의 MxN_Block_type값이 0이 아닌 값을 가지는 경우 MxN_Block_type값에 따라 서브블록의 크기와 모드를 표2에 따라 설정하고 서브블록의 개수만큼 참조픽쳐 정보와 움직임 벡터 정보를 복호화한다. 이후 CBP를 복호화하여 0이 아닌 변환계수가 있는지의 여부를 판단하고 0이 아닌 변환계수가 있는 경우 변환종류를 타나내는 Use_Large_transform_flag, QP_delta와 변환계수를 복호화한다. 복호화된 매크로블록의 MxN_Block_type 값이 0인 경우 매크로블록은4개의 서브블록으로 분할되었음을 의미하는데, 분할된 서브블록의 크기가 16x16이상인 경우에는 각 서브블록 별로 도 22의 데이터들을 순서대로 복호화하고, 분할된 서브블록의 크기가 16x16보다 작은 경우 도 23의 데이터들을 순서대로 복호화한다.
잔여블록 복호화시 필요한 변환 데이터를 엔트로피 복호화하고 부호화기에서 사용된 변환의 종류를 추출하는 방법은 블록의 종류와 크기에 따라 다음과 같이 달라진다.
16x16 크기 이상의 블록의 경우 부호화기에서 선택된 변환의 종류는 4x4, 8x8. 16x16 변환 중 하나이며 이때 변환 정보를 복호화 방법은 먼저 1비트를 엔트로피 복호화하여 복호화한 값이 큰 크기의 변환이 사용되지 않음을 나타내는 경우(예를 들어, 0 인 경우)에는 역변환 시 4x4 변환을 사용한다. 만약 복호화한 비트값이 큰 크기의 변환이 사용되었음을 나타내는 경우 (예를 들어, 1인 경우)에는 1비트를 엔트로피 복호화하여 복호화한 두번째 비트의 값이 큰 크기의 변환이 사용되지 않음을 나타내는 경우(예를 들어, 0 인 경우)에는 역변환 시 8x8 변환을 수행하고 그렇지 않은 경우에는 16x16 변환을 역변환을 수행한다.
16x16 블록이 두 개의 16x8 크기의 서브블록 또는 두 개의 8x16 크기의 서브블록으로 나뉜 경우, 1비트를 엔트로피 복호화하여 복호화한 값이 큰 크기의 변환이 사용되지 않음을 나타내는 경우에는 역변환으로 4x4변환을 사용한다. 만약 복호화한 값이 큰 크기의 변환이 사용되었음을 나타내는 경우에는 1비트를 더 엔트로피 복호화하여 복호화한 값이 큰 크기의 변환이 사용되지 않음을 나타내는 경우에는 역변환으로 8x8변환을 사용한다. 두번째로 복호화한 비트의 값이 큰 크기의 변환이 사용되었음을 나타내는 경우에는 서브블록의 크기가 16x8인 경우에는 16x8 역변환을 사용하고 서브블록의 크기가 8x16인 경우에는 8x16 역변환을 사용한다.
이하에서는 본 발명의 다른 실시예로서, 가변 크기의 매크로블록을 이용하여 영상을 효율적으로 부호화하고 복호화하기 위해 매크로블록의 크기, 사용가능한 서브블록의 종류와 크기를 결정하고 그에 따라 영상을 부호화하고 복호화하는 장치와 방법에 대해 설명한다. 여기서 매크로블록은 MxN(단, M과 N은 정수임, M은 매크로블록의 가로 크기이며, N은 매크로블록의 세로 크기 임. 따라서, 0<M<입력 영상의 가로 크기, 0<N<입력 영상의 세로 크기)크기의 화소 블록으로서 부호화 및 복호화의 단위에 해당한다.
본 발명의 다른 실시예에 따른 영상 부호화 장치는 후보 블록 타입 설정기(Candidate Block Type Configuration Unit), 영상 부호화기(Video Encoder) 및 블록 타입 결정기(Block Type Determiner)를 포함하여 구성될 수 있다.
후보 블록 타입 설정기는 임의의 크기의 매크로블록을 이용하여 영상을 부호화하기 위한 블록 타입의 후보를 설정한다. 여기서, 블록 타입은 매크로블록의 크기, 최소 서브블록의 크기 및 서브블록 모드 조합 중 하나 이상일 수 있다. 즉, 통상적인 영상 압축 기술에 따르면, 매크로블록의 크기가 16x16으로 고정되어 있으므로, 고정된 크기의 매크로블록으로 영상을 분할하여 부호화하거나 복호화하면 된다. 하지만, 본 발명의 일 실시예와 다른 실시예에 따르면, 어떠한 매크로블록 크기도 사용될 수 있기 때문에, 매크로블록 크기를 결정하여 결정된 크기의 매크로블록 단위로 영상을 분할하여 부호화할 수 있다. 또한 본 발명의 다른 실시예에 의하면, 부호화/복호화의 단위인 매크로블록의 크기는 픽쳐, 슬라이스 또는 매크로블록 계층마다 다르게 선택될 수 있다.
고해상도 영상은 큰 블록 단위로 부호화하는 것이 효율적이다. 하지만, 영상의 모든 영역(블록, 슬라이스, 픽처 등)에 대해 가장 큰 크기의 블록으로 부호화한다고 해서 부호화 효율이 항상 향상되는 것은 아니다. 예를 들어, 영상의 어느 한 픽처의 특성이 단조로운 경우에는 큰 크기의 매크로블록 단위로 부호화하는 것이 효율적일 수 있지만, 어느 한 픽처의 특성이 복잡한 경우에는 작은 크기의 매크로블록 단위로 부호화하는 것이 효율적일 수 있다. 따라서, 본 발명의 다른 실시예에서는 효율적으로 영상을 부호화할 수 있는 매크로블록 크기를 결정하고, 선택된 크기의 매크로블록 단위로 영상을 부호화하며, 복호화할 때에는 비트스트림에 포함된 정보에 의해 식별되는 매크로블록 크기로 복호화하여 영상을 복원한다.
한편, 하나의 매크로블록은 예측 또는 변환을 위해 복수의 서브블록들로 분할될 수 있다. 매크로블록의 크기가 커짐에 따라 이러한 서브블록들의 최소 크기도 달라질 수 있다. 예를 들어, 통상적인 영상 압축 기술에서는 16x16 크기의 매크로블록에 대해서는 4x4 크기의 서브블록이 예측 또는 변환을 위한 최소 서브블록이 되지만, 64x64 크기의 매크로블록을 이용하여 부호화하는 경우 4x4 크기의 서브블록을 이용하여 예측 또는 변환하는 경우, 너무 작은 서브블록을 이용하여 부호화하게 되어 영상의 특성에 따라서는 부호화 효율이 저하되므로 최소 서브블록의 크기를 8x8 크기 또는 16x16 크기로 결정하는 것이 효율적일 수 있다. 따라서, 본 발명의 다른 실시예에서는 미리 영상을 부호화하여 효율적으로 영상을 부호화할 수 있는 최소 서브블록 크기를 결정하고, 해당 크기 이상의 서브블록만을 이용하여 영상을 부호화하며, 복호화할 때에는 비트스트림에 포함된 정보에 의해 식별되는 최소 서브블록 크기 이상의 서브블록을 이용하여 복호화함으로써 영상을 복원한다.
또한, 매크로블록의 크기가 커짐에 따라 매크로블록 내에서 분할되는 서브블록의 블록 모드가 매우 다양해져서 부호화 효율이 저하될 수 있다. 예를 들어, 통상적인 영상 압축 기술에서는 16x16 크기의 매크로블록에 대한 서브블록 모드는 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4 등이 될 수 있지만, 64x64 크기의 매크로블록을 이용하여 부호화하는 경우, 64x64, 64x32, 32x64, 32x32, 32x16, 16x32, 16x16, … 등과 같이 더 많은 서브블록 모드가 이용될 수 있으므로, 매크로블록마다 분할된 서브블록에 대한 정보를 표현하거나 부호화하기 위한 비트량이 증가하여 부호화 효율이 저하될 수 있으므로, 영상 전체 또는 픽처 등의 단위 또는 인트라 모드인지 또는 인터 모드인지 여부에 따라 사용 가능한 서브블록 모드의 조합을 미리 결정하여 사용하지 않는 서브블록 모드를 제거하는 것이 효율적일 수 있다.
따라서, 본 발명의 다른 실시예에서는 효율적으로 영상을 부호화할 수 있는 서브블록 모드의 조합을 결정하고, 결정된 조합 내의 서브블록 모드만을 이용하여 영상을 부호화하며, 복호화할 때에는 비트스트림에 포함된 정보에 의해 식별되는 서브블록 모드의 조합 내의 서브블록 모드만을 이용하여 복호화함으로써 영상을 복원한다. 예를 들어, 전체 영상에 대해서 서브블록 모드 조합이 32x16, 16x16, 16x8로 결정된 경우에는, 해당 영역 또는 해당 매크로블록에 대한 서브블록 크기에 대한 정보를 표현하기 위한 모집단에 32x16, 16x16, 16x8 이외의 다른 서브블록 모드(예를 들어, 64x64, 32x64, 64x32, 32x32, 8x8, 4x4 등)를 포함시키지 않을 수 있으므로, 서브블록 모드에 대한 정보를 표현하거나 부호화하기 위한 비트량을 줄일 수 있다. 예를 들어, 표 1 내지 표 5에서, 매크로블록의 크기와 최소 서브블록의 크기, 사용 가능한 서브블록 모드에 따라 불필요한 신택스들은 사용되지 않으며, 이러한 신택스들에 할당된 코드값은 제거되므로 동일한 의미의 모드를 부호화하더라도 할당되는 값이나 비트가 달라지게 된다.
매크로블록 크기, 최소 서브블록 크기, 서브블록 모드 조합 등과 같은 블록 타입은 영상의 매크로블록 단위, 슬라이스 단위 또는 픽처 단위로 결정되거나 픽처 그룹(GOP: Group of Picture) 단위로 결정되거나 전체 영상 시퀀스 단위 등으로 결정될 수 있는데, 이러한 블록 타입에 대한 정보는 비트스트림의 헤더에 포함될 수 있다. 예를 들어, 픽처 단위로 매크로블록 크기가 결정되는 경우에는 비트스트림의 픽처 헤더에 매크로블록 크기에 대한 정보가 포함될 수 있다.
매크로블록의 크기, 최소 서브블록의 크기, 서브블록 모드 조합에 따라 매크로블록내 서브블록 타입을 부호화/복호화하는 방법은 다음과 같이 달라질 수 있다.
매크로블록의 크기 또는 최소서브블록의 크기에 따라 매크로블록 내 서브블록 타입을 부호화하는 방법은 달라지게 된다.
이하에서는 매크로블록의 크기를 부호화하는 본 발명에 따른 다양한 방법들을 설명한다. 먼저 매크로블록의 크기를 부호화하는 첫번째 방법을 설명한다.
시퀀스 헤더 또는 각 픽처의 헤더 또는 슬라이스 헤더에 매크로블록의 크기에 대한 정보를 보낼지에 대한 플래그(Set_MBsize_flag)를 포함시킬 수 있다. 상기 플래그의 값에 따라 매크로블록 크기를 전송할 수도 있고 전송하지 않을 수도 있다. 전송하지 않는 경우에는 소정 크기의 매크로블록, 예컨대 16x16 블록을 매크로블록으로 사용한다.
만약 매크로블록의 크기를 지정하는 경우에는 매크로블록의 크기에 대한 정보를 전송한다. 이때 매크로블록의 가로 크기와 세로 크기를 따로 설정하여 임의의 크기의 매크로블록을 사용할 수도 있다. 또는 정사각형 매크로브록을 사용하는 경우 한 변의 길이를 나타내는 정보만을 부호화한 후 복호화 장치로 전송할 수 있다.
부호화할 매크로블록 크기값은 실제 매크로블록의 크기를 지정할 수도 있고 소정의 크기로부터 몇 배를 키울지 또는 축소 시킬지에 대한 값을 보낼수도 있다. 또한, 매크로블록 크기값을 그대로 부호화하는 대신, 매크로블록 크기값에 로그 함수를 적용함으로써 보다 적은 비트를 이용하여 매크로블록 크기값을 나타낼 수 있다. 예컨대, log2(선택된 MBsize/X) (X는 2의 배수인 임의의 양의 정수) 의 값을 부호화한다. 이 때 사용 가능한 최소 매크로블록의 크기를 X의 값으로 선택할 수 있다. 예를 들어 사용 가능한 최소 매크로블록의 크기가 8x8이라면 X의 값을 8로 선택함이 바람직하다. 이 경우, 현재 매크로블록이 8x8 블록인 경우 0을 부호화하고, 16x16 블록인 경우 1을 부호화한다. 만약, 사용 가능한 최소 매크로블록의 크기가 16x16이라면 X의 값을 8 대신에 16으로 선택함이 바람직하다. 이 경우, 현재 매크로블록이 16x16 블록인 경우 0을 부호화하고, 32x32 블록인 경우 1을 부호화한다. 따라서 8, 16 또는 32 라는 큰 수를 부호화할 때 보다 적은 비트를 이용하여 현재 매크로블록의 크기를 나타낼 수 있다.
또한, 가로와 세로에 대한 비율을 따로 부호화 할 수도 있다.
또는 부호화기와 복호화기가 약속한 Table의 인덱스 값일 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 전송할 매크로블록 크기를 부호화할 수 있다.
이하에서는 설명의 편의를 위해, 가로와 세로의 크기를 각각 설정하는 것에 대한 내용은 기술하지 않지만, 가로와 세로의 크기를 각각 설정하는 것도 적용 가능하다. 또한, 시퀀스 헤더와 픽처 헤더 상에서 데이터를 부호화하는 것으로 예를 들었지만, 슬라이스 헤더 또는 매크로블록 헤더에서 부호화할 수도 있다.
아래는 전술한 매크로블록의 크기 부호화에 관한 첫번째 방법에 따른 신택스의 일 예를 나타낸다.
Set_MBsize_Flag
if(Set_MBsize_Flag == 1)
{
MBsize
}
또는
Set_MBsize_Flag
if(Set_MBsize_Flag == 1)
{
MBsize_width
MBsize_height
}
또는 매크로블록의 크기에 대한 정보를 보낼지에 대한 플래그 (Set_MBsize_flag)를 부호화 하지 않고 시퀀스, 픽쳐, 슬라이스 또는 매크로블록 헤더마다 매크로블록의 크기를 영상 복호화 장치로 전송할 수도 있다.
이하에서는 매크로블록의 크기를 부호화하는 두 번째 방법을 설명한다.
두 번째 방법에 따르면, MxN 크기를 기준 매크로블록의 크기로 설정하고 각 픽처 또는 슬라이스, 매크로블록 헤더마다 기준 매크로블록의 크기를 사용할지를 나타내는 플래그를 부호화하고 기준 매크로블록 크기를 사용하지 않을 경우, 선택된 매크로블록의 크기를 부호화한다. 또는 시퀀스 헤더에서 기준 매크로블록의 크기를 설정할지를 나타내는 플래그를 부호화한 후 기준 매크로블록의 크기를 설정하지 않는 경우 소정 사이즈, 예컨대 16x16 크기를 기준 매크로블록의 크기로 사용하고 기준 매크로블록의 크기를 설정하는 경우에는 기준 매크로블록의 크기를 부호화하여 시퀀스 헤더 등에 포함시킬 수도 있다.
여기서 기준 매크로블록의 크기를 나타내는 정보인 defalt_MBsize 또는 현재 매크로블록의 크기를 나타내는 정보인 MB_size 값을 부호화하는 방법은 실제 매크로블록의 크기를 지정할 수도 있고 소정의 크기로부터 몇 배를 키울지 또는 축소 시킬지에 대한 값을 보낼 수도 있다. 또는 전술한 첫번째 방법에서 설명한 바와 같이, 매크로블록 크기값을 그대로 부호화하는 대신, 매크로블록 크기값에 로그 함수를 적용함으로써 보다 적은 비트를 이용하여 매크로블록 크기값을 나타낼 수 있다.
또한, 가로와 세로에 대한 비율을 따로 부호화 할 수도 있다.
또는 부호화기와 복호화기가 약속한 Table의 인덱스 값일 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 전송할 매크로블록 크기를 부호화할 수 있다.
아래는 전술한 매크로블록의 크기 부호화에 관한 두 번째 방법에 따른 신택스의 일 예를 나타낸다.
시퀀스, 픽쳐, 또는 슬라이스 헤더Set_defaultMBsize_Flag
if(Set_MBsize_Flag == 1)
{
defalt_MBsize
}
픽쳐, 슬라이스 또는 매크로블록 헤더
use_defalt_MBsize_flag
if(use_defalt_MBsize_flag == 0)
{
MB_size
}
이하에서는 매크로블록의 크기를 부호화하는 세번째 방법을 설명한다.
세번째 방법에 따르면, MxN 크기를 기준 매크로블록의 크기로 설정하고 각 픽처 또는 슬라이스, 매크로블록 헤더마다 기준 매크로블록의 크기를 사용할지 여부를 나타내는 플래그를 부호화하여 영상 복호화 장치로 전송한다. 상기 플래그가 기준 매크로블록 크기를 사용할 것을 나타내는 경우, 기준 매크로블록의 크기와 동일한 크기의 블록이 현재 매크로블록으로 선택된다. 그러나 상기 플래그가 기준 매크로블록 크기를 사용하지 않음을 나타내는 경우, 기준 매크로블록의 크기로부터 소정 비율 만큼 확장 또는 축소한 블록이 현재 매크로블록으로서 부호화 또는 복호화 과정에서 선택된다. 예컨대, 기준 매크로블록의 가로 및 세로 길이가 두 배로 확장된 또는 1/2로 축소된 가로 및 세로 길이를 갖는 블록이 현재 매크로블록으로 선택될 수 있다.
만약, 다양한 확장 또는 축소 비율을 가지는 경우에는 상기 플래그의 길이를 2비트 이상이 되도록 하여 다양한 비율을 나타내게 할 수 있다. 또는 기준 매크로블록의 크기를 사용할지 여부를 나타내는 플래그 외에 추가로 확장 비율 또는 축소비율을 나타내는 정보를 부호화할 수 있다.
상기 플래그가 기준 매크로블록 크기를 사용하지 않음을 나타내고 또한 기준 매크로블록의 크기로부터 확장된 블록이 현재 매크로블록으로 선택되는 경우, 상기 기준 매크로블록의 크기는 현재 비트스트림의 부호화 또는 복호화시에 이용가능한 최소 매크로블록의 크기에 해당한다. 반대로, 상기 플래그가 기준 매크로블록 크기를 사용하지 않음을 나타내고 또한 기준 매크로블록의 크기로부터 축소된 블록이 현재 매크로블록으로 선택되는 경우, 상기 기준 매크로블록의 크기는 현재 비트스트림의 부호화 또는 복호화시에 이용가능한 최대 매크로블록의 크기에 해당한다.
영상 복호화 장치는 기준 매크로블록의 크기를 사용할지 여부를 나타내는 상기 플래그 및/또는 기준 매크로블록의 크기로부터 소정 비율 만큼 확장 또는 축소할 것을 지시하는 추가 정보를 이용하여 현재 매크로블록의 크기를 선택할 수 있다.
본 발명의 일 실시예에 따르면 기준 매크로블록의 크기를 설정할지를 나타내는 플래그를 비트스트림의 시퀀스 헤더에 포함시킬 수 있다. 기준 매크로블록의 크기를 설정하지 않는 경우 소정 사이즈, 예컨대 16x16 크기를 기준 매크로블록의 크기로 사용하도록 미리 약속될 수 있다.
만약, 기준 매크로블록의 크기를 설정하여 영상 복호화 장치로 시그널링하는 경우에는 기준 매크로블록의 크기를 나타내는 정보를 부호화하여 시퀀스 헤더 등에 포함시킬 수 있다. 본 발명의 일 실시예에 따르면, 영상 부호화 장치는 기준 매크로블록의 크기를 나타내는 정보로서 현재 비트스트림의 부호화 또는 복호화시에 이용가능한 최대 매크로블록의 크기를 나타내는 정보를 영상 복호화 장치로 시그널링 할 수 있다. 본 발명의 다른 실시예에 따르면, 영상 부호화 장치는 기준 매크로블록의 크기를 나타내는 정보로서 현재 비트스트림의 부호화 또는 복호화시에 이용가능한 최소 매크로블록의 크기를 나타내는 정보를 영상 복호화 장치로 시그널링 할 수 있다. 본 발명의 또 다른 실시예에 따르면, 영상 부호화 장치는 기준 매크로블록의 크기를 나타내는 정보로서 현재 비트스트림의 부호화 또는 복호화시에 이용가능한 최대 매크로블록의 크기와 최소 매크로블록의 크기 양자를 영상 복호화 장치로 시그널링 할 수 있다.
기준 매크로블록의 크기를 나타내는 정보인 defalt_MBsize를 부호화하는 방법은 실제 매크로블록의 크기를 지정할 수도 있고 소정의 크기로부터 몇 배를 키울지 또는 축소 시킬지에 대한 값을 보낼수도 있다. 또는 전술한 첫번째 방법에서 설명한 바와 같이, 매크로블록 크기값을 그대로 부호화하는 대신, 매크로블록 크기값에 로그 함수를 적용함으로써 보다 적은 비트를 이용하여 매크로블록 크기값을 나타낼 수 있다.
보다 구체적으로 설명하면, 예컨대, defalt_MBsize가 현재 비트스트림의 부호화 또는 복호화시에 이용가능한 최대 매크로블록의 크기를 나타낸다면, log2(X/defalt_MBsize) (X는 2의 배수인 임의의 양의 정수) 의 값을 부호화한다. 이 때 가능한 최대 매크로블록의 크기를 X의 값으로 선택할 수 있다. 또는 defalt_MBsize가 현재 비트스트림의 부호화 또는 복호화시에 이용가능한 최소 매크로블록의 크기를 나타낸다면, log2(defalt_MBsize/X) (X는 2의 배수인 임의의 양의 정수) 의 값을 부호화한다. 이 때 가능한 최소 매크로블록의 크기를 X의 값으로 선택할 수 있다.
또한, 가로와 세로에 대한 비율을 따로 부호화 할 수도 있다.
또는 부호화기와 복호화기가 약속한 Table의 인덱스 값일 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 전송할 매크로블록 크기를 부호화할 수 있다.
이하에서는 매크로블록의 크기를 부호화하는 네번째 방법을 설명한다.
네번째 방법에 따르면, 첫 번째 픽처에서 기준 매크로블록 크기를 사용할지에 대한 플래그와 기준 매크로블록 크기를 사용하지 않는 경우 선택된 매크로블록의 크기를 부호화한 후, 두번째 픽처부터는 이전 픽처의 매크로블록의 크기를 사용할지에 대한 플래그와 이전 픽처의 매크로블록의 크기를 사용하지 않을 경우 현재 픽처의 매크로블록의 크기를 부호화할 수도 있다.
기준 매크로블록의 크기를 나타내는 정보인 defalt_MBsize 또는 현재 매크로블록의 크기를 나타내는 정보인 MB_size를 부호화하는 방법은 실제 매크로블록의 크기를 지정할 수도 있고 소정의 크기로부터 몇 배를 키울지 또는 축소 시킬지에 대한 값을 보낼수도 있다. 또는 전술한 첫번째 방법에서 설명한 바와 같이, 매크로블록 크기값을 그대로 부호화하는 대신, 매크로블록 크기값에 로그 함수를 적용함으로써 보다 적은 비트를 이용하여 매크로블록 크기값을 나타낼 수 있다.
또한, 가로와 세로에 대한 비율을 따로 부호화 할 수도 있다. 또는 부호화기와 복호화기가 약속한 Table의 인덱스 값일 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 전송할 매크로블록 크기를 부호화할 수 있다.
아래는 전술한 매크로블록의 크기 부호화에 관한 네번째 방법에 따른 신택스의 일 예를 나타낸다.
첫번째 픽처
use_defalt_MBsize_flag
if(use_defalt_MBsize_flag == 0)
{
MB_size
}
두번째 픽처부터
use_prevPic_MBsize_flag
if(use_prevPic_MBsize_flag == 0)
{
MB_size
}
이하에서는 매크로블록의 크기를 부호화하는 다섯번째 방법을 설명한다.
다섯번째 방법에 따르면, 인트라 픽처와 인터 픽처의 매크로블록 크기를 다르게 사용한다. 즉, 시퀀스 헤더에서 인트라 픽처를 위한 매크로블록의 크기와 인터 픽처를 위한 매크로블록의 크기를 부호화한다.또는 첫번째 인트라 픽처와 인터 픽처의 헤더에만 픽처 종류에 따른 각각의 매크로블록의 크기를 부호화하도록 할 수도 있다.
인트라 픽처의 매크로블록의 크기와 인터 픽처의 매크로블록의 크기에 대한 정보를 부호화하는 방법은 앞서 설명한 방법들과 결합되어 사용할 수도 있다
시퀀스헤더
Set_intraMBsize_Flag
Set_interMBsize_Flag
if(Set_intraMBsize_Flag == 1)
{
intraMBsize
}
if(Set_interMBsize_Flag == 1)
{
interMBsize
}
이하에서는 매크로블록 크기를 복호화하는 본 발명에 따른 다양한 방법들을 설명한다.
먼저 매크로블록의 크기를 부호화하는 첫번째 방법에 따른 복호화 방법을 설명한다.
매크로블록의 크기에 대한 정보를 보낼지에 대한 플래그(Set_MBsize_flag)가 포함되어진 경우, 시퀀스 헤더 또는 각 픽쳐의 헤더 또는 슬라이스 헤더 등의 약속된 위치에서 매크로블록의 크기에 대한 정보를 보낼지에 대한 플래그(Set_MBsize_flag)를 엔트로피 복호화한다. 복호화한 플래그가 매크로블록의 크기가 전송되지 않았음을 나타내는 값인 경우, 부호화기와 약속된 소정 크기의 매크로블록, 예컨대 16x16블록을 매크로블록으로 사용한다.
만약 복호화한 매크로블록 크기 지정 플래그(Set_MBsize_flag)가 매크로블록의 크기가 지정되었음을 의미하는 경우, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary-Code), 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 엔트로피 복호화 방법들 중 부호화기와 약속된 방법으로 매크로블록의 크기를 엔트로피 복호화하여 추출한다.
만약 매크로블록의 가로 크기와 세로크기가 따로 설정되어 전송된 경우 가로크기와 세로크기를 각각 엔트로피 복호화하여 구할 수도 있고, 또는 정사각형 매크로블록을 사용하는 경우 한 변의 길이를 나타내는 정보만을 엔트로피 복호화할 수도 있다.
복호화 한 값을 실제 매크로블록의 크기로 지정할 수도 있고 복호화 한 값을 부호화기와 약속한 소정의 크기로부터 몇배를 키우거나 축소시킨 값을 매크로블록의 크기로 지정할 수도 있다. 또한 부호화기에서 매크로블록의 크기값에 로그함수를 적용한 값을 부호화한 경우 엔트로피 복호화한 값을 지수함수를 적용하여 매크로블록의 크기를 설정할 수도 있다 예컨대, 부호화기에서 log2(부호화기에서 선택된 MBsize/X) (X는 2의 배수인 임의의 양의 정수)의 값인 y를 부호화한 경우 복호화기에서는 y값을 엔트로피 복호화하고 X의 값에 2y 를 곱하여 부호화기에 선택된 매크로블록의 크기를 구할 수 있다. 여기서 X의 값은 부호화기와 복호화기가 약속한 값이거나 비트스트림으로부터 매크로블록 크기를 복호화하기전 추출한 값일 수도 있다. 만약 X의 값으로 사용 가능한 최소 매크로블록의 크기를 선택하여 사용하고 사용 가능한 최소 매크로블록의 크기가 8x8인 경우, 복호화 한 y의 값이 0이면 매크로블록의 크기를 8x8로 설정하고 복호화 한 y의 값이 1이면 매크로블록의 크기를 16x16으로 설정한다. 만약 사용 가능한 최소 매크로블록의 크기가 16x16이라면 X의 값을 8대신 16을 사용하고 복호화한 y의 값이 0인 경우 매크로블록의 크기는 16x16으로 설정한다.
또한 부호화기에서 가로와 세로에 대한 비율을 따로 복호화 한 경우 가로에 대한 비율과 세로에 대한 비율을 각각 엔트로피 복호화하여 매크로블록의 크기를 얻을 수도 있다.
또한 부호화기와 복호화기가 약속한 표의 인덱스값을 부호화한 경우, 복호화한 값을 표의 인덱스값으로 사용하여 매크로블록의 크기를 구할 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 복호화(Binary Coding) 방법을 이용하여 전송할 매크로블록 크기를 복호화 할 수 있다.이하에서는 설명의 편의를 위해, 가로와 세로의 크기를 각각 복호화하여 추출하는 것에 대한 내용은 기술하지 않지만, 가로와 세로의 크기를 각각 추출하는 것도 적용 가능하다. 또한 시퀀스 헤더와 픽쳐 헤더 상에서 데이터를 복호화하는 것으로 예를 들었지만 부호화기에서 슬라이스 헤더 또는 매크로블록 헤더에서 매크로블록의 크기를 부호화한 경우 슬라이스 헤더 또는 매크로블록 헤더에서 매크로블록의 크기를 복호화 할 수도 있다.
이하에서는 매크로블록의 크기를 부호화하는 두 번째 방법에 따른 복호화 방법을 설명한다.
두 번째 방법에 따르면, 부호화기와 약속된 NxN 크기를 기준 매크로블록 크기로 설정하고 각 픽쳐 또는 슬라이스, 매크로블록 헤더로부터 기준 매크로블록 크기를 사용할지를 나타내는 플래그를 엔트로피 복호화한다. 복호화한 플래그 값이 기준 매크로블록 크기를 사용하지 않음을 뜻하는 경우, 매크로블록 크기 정보를 엔트로피 복호화하여 매크로블록의 관련 정보를 추출하고 매크로블록의 크기를 설정한다. 복호화한 플래그 값이 기준 매크로블록 크기 사용함을 뜻하는 경우, 매크로블록 크기 정보는 비트스트림에 포함되지 않았음을 뜻하므로 사전에 설정된 기준 매크로블록의 크기를 매크로블록의 크기로 설정하여 일련의 복호화 과정을 진행한다.
기준 매크로블록의 크기는 부호화기에서 시퀀스 헤더 등에 포함되어 복호화기로 전송된 경우, 비트스트림 내 시퀀스 헤더 등의 약속된 위치에서 기준 매크로블록의 크기를 추출할 수도 있다. 여기서 기준 매크로블록의 크기 또는 현재 매크로블록의 크기는 엔트로피 복호화 한 값을 할당할 수도 있고 엔트로피 복호화 한 값으로 소정의 크기를 스케일링 (축소 또는 확대)하여 매크로블록의 크기를 얻을 수도 있다. 또는 전술한 첫번째 복호화 방법에서 설명한 바와 같이, 부호화기에서 매크로블록의 크기값에 로그함수를 적용한 값을 부호화한 경우 지수함수를 이용하여 매크로블록의 크기값을 얻을 수도 있다.
또한 부호화기에서 가로와 세로에 대한 비율을 따로 복호화 한 경우 가로에 대한 비율과 세로에 대한 비율을 각각 엔트로피 복호화하여 매크로블록의 크기를 얻을 수도 있다.
또한 부호화기와 복호화기가 약속한 표의 인덱스값을 부호화한 경우, 복호화한 값을 표의 인덱스값으로 사용하여 매크로블록의 크기를 구할 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 복호화(Binary Coding) 방법을 이용하여 전송할 매크로블록 크기를 복호화 할 수 있다.
이하에서는 매크로블록의 크기를 부호화하는 세 번째 방법에 따른 복호화 방법을 설명한다.
세 번째 방법에 따르면, 영상 복호화 장치는 기준 매크로블록의 크기를 사용할지 여부를 나타내는 플래그 및/또는 기준 매크로블록의 크기로부터의 소정 비율만큼 확장 또는 축소할것을 나타내는 추가 정보를 비트스트림으로부터 추출한 후 상기 정보들을 이용하여 현재 매크로블록의 크기를 추출할 수 있다.
먼저, NxN 크기를 기준 매크로블록의 크기로 설정하고 각 픽쳐 또는 슬라이스, 매크로블록 헤더마다 기준 매크로블록의 크기를 사용할지 여부를 나타내는 플래그를 복호화한다. 상기 플래그가 기준 매크로블록 크기를 사용하여 부호화되었음을 나타내는 경우, 현재 매크로블록의 크기는 기준 매크로블록의 크기와 동일한 값으로 설정하고 설정된 매크로블록의 크기를 이용하여 매크로블록 단위로 복호화를 진행한다. 그러나 상기 플래그가 기준 매크로블록 크기를 사용하지 않았음을 나타내는 경우, 기준 매크로블록의 크기로부터 부호화기와 약속한 소정 비율 만큼 확장 또는 축소한 값을 현재 매크로블록의 크기로 설정하여 매크로블록 단위 복호화를 진행한다. 예컨대, 기준 매크로블록의 가로 및 세로 길이가 두배로 확장된 크기 또는 1/2로 축소된 크기를 현재 매크로블록의 크기로 설정할 수도 있다.
만약, 부호화기에서 다양한 확장 또는 축소 비율을 사용하고 선택된 비율을 상기 플래그를 비트스트림에 포함하여 부호화한 경우, 복호화기는 비트스트림으로부터 상기 플래그 엔트로피 복호화 시 부호화기와 약속된 비트수만큼 복호화하여 다양한 비율을 얻을 수 있다.
또는 기준 매크로블록을 사용할지 여부를 나타내는 플래그 외에 추가로 확장 비율 또는 축소 비율을 나타내는 정보가 비트스트림으로 포함되어 부호화된 경우 기준 매크로블록을 사용할지 여부를 나타내는 플래그를 복호화한 후 플래그 값에 따라 확장 비율 또는 축소 비율을 복호화할 수도 있고 하지 않을 수도 있다. 복호화하지 않는 경우 기준 매크로블록의 크기를 현재 매크로블록의 크기로 설정하여 이후 복호화 과정들을 진행한다.
복호화한 상기 플래그가 기준 매크로블록 크기가 현재 매크로블록의 크기와 다름을 나타내고 또한 복호화한 비율이 확장 비율인 경우, 상기 기준 매크로블록의 크기를 현재 비트스트림의 부호화 또는 복호화시에 이용가능한 최소 매크로블록의 크기로 설정한 후, 엔트로피 복호화한 비율만큼 기준 매크로블록의 크기를 확장한 크기를 현재 매크로블록의 크기로 설정한다. 반대로 엔트로피 복호화한 비율이 축소비율인 경우, 상기 기준 매크로블록의 크기를 현재 비트스트림의 부호화 또는 복호화시에 이용가능한 최대 매크로블록의 크기로 설정한 후, 엔트로피 복호화한 비율만큼 기준 매크로블록의 크기를 축소한 크기를 현재 매크로블록의 크기로 설정한다.
본 발명의 일 실시예에 따르면 기준 매크로블록의 크기를 설정할지를 나타내는 플래그가 비트스트림의 시퀀스 헤더에 포함되어 전송된 경우, 복호화기는 시퀀스헤더로부터 상기 플래그를 엔트로피 복호화 한 후 상기 플래그가 기준 매크로블록의 크기가 설정되었음을 나타내는 경우 비트스트림으로부터 시퀀스 헤더등의 약속된 위치에서 기준 매크로블록의 크기 정보를 비트스트림으로부터 추출하여 추출한 정보를 이용하여 기준 매크로블록의 크기를 설정한다. 기준 매크로블로의 크기가 설정되지 않았음을 의미하는 경우에는 부호화기와 복호화기 사전에 약속한 소정의 사이즈, 예컨대 16x16크기를 기준 매크로블록의 크기로 사용할 수도 있다.
본 발명의 일 실시예에 따르면, 영상 복호화 장치는 현재 비트스트림의 부호화 또는 복호화시에 이용가능한 최대 매크로블록의 크기를 나타내는 정보를 비트스트림으로부터 추출하여 기준 매크로블록의 크기를 설정하는데 이용할 수 있다. 본 발명의 다른 실시예에 따르면, 영상 복호화 장치는 현재 비트스트림의 부호화 또는 복호화시에 이용 가능한 최소 매크로블록의 크기를 나타내는 정보를 비트스트림으로부터 추출하여 기준 매크로블록의 크기를 설정하는데 이용할 수도 있다. 본 발명의 또 다른 실시예에 따르면, 영상 복호화 장치는 현재 비트스트림의 부호화 또는 복호화시에 이용 가능한 최대 매크로블록의 크기와 최소 매크로블록의 크기를 나타내는 정보를 비트스트림으로부터 추출하여 기준 매크로블록의 크기를 설정하는데 이용할 수도 있다.
기준 매크로블록의 크기를 나타내는 정보인 default_MBsize를 복호화하는 방법은 엔트로피 복호화한 값 자체를 기준 매크로블록 크기값으로 설정할 수도 있고 엔트로피 복호화한 값을 확대 비율 또는 축소 비율로 사용하여 소정의 크기로부터 확대 또는 축소하여 기준 매크로블록의 크기를 얻을 수도 있다. 또는 전술한 첫번째 복호화 방법에서 설명한 바와 같이, 부호화기에서 매크로블록의 크기값에 로그함수를 적용한 값을 부호화한 경우 지수함수를 이용하여 매크로블록의 크기값을 얻을 수도 있다.
보다 구체적으로 설명하면, 예컨대, default_MBsize가 현재 비트스트림의 부호화 또는 복호화시에 이용가능한 최대 매크로블록의 크기를 나타내고 부호화기에서 log2(X/ default_MBsize) (X는 2의 배수인 임의의 양의 정수)의 값인 y를 부호화한 경우, 복호화기에서는 y값을 엔트로피 복호화하여 X의 값에 2y 를 곱하여 default_MBsize를 구할 수 있다. 이때 X의 값은 가능한 최대 매크로블록의 크기와 같이 부호화기와 복호화기가 약속한 값이거나 비트스트림으로부터 default_MBsize를 복호화기전에 추출한 값일 수도 있다.
또는 default_MBsize가 현재 비트스트림으로부터 이용가능한 최소 매크로블록의 크기를 나타내고, 부호화기에서 log2(default_MBsize/X) (X는 2의 배수인 임의의 양의 정수)의 값인 y값을 부호화한 경우, 복호화기에서는 y값을 엔트로피 복호화하여 비트스트림으로부터 추출하고 X의 값과 2y를 곱한 값을 default_MBsize로 설정한다. 이때 X의 값은 가능한 최소 매크로블록의 크기와 같이 부호화기와 복호호화기가 약속한 값이거나 비트스트림으로부터 default_MBsize를 복호화하기 전에 추출한 값일 수도 있다.
또한 부호화기에서 가로와 세로에 대한 비율을 따로 복호화 한 경우 가로에 대한 비율과 세로에 대한 비율을 각각 엔트로피 복호화하여 기준 매크로블록 크기를 얻을 수도 있다.
또한 부호화기와 복호화기가 약속한 표의 인덱스값을 부호화한 경우, 복호화한 값을 표의 인덱스값으로 사용하여 기준 매크로블록의 크기를 구할 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 복호화(Binary Coding) 방법을 이용하여 기준 매크로블록 크기를 복호화 할 수 있다.
이하에서는 매크로블록의 크기를 부호화하는 네 번째 방법에 따른 복호화 방법을 설명한다.
네 번째 방법에 따르면, 첫 번째 픽쳐에서 기준 매크로블록의 크기를 사용할지에 대한 플래그와 기준 매크로블록 크기를 사용하지 않는 경우 매크로블록의 크기 정보를 엔트로피 복호화한 후, 복호화된 매크로블록의 크기 정보를 이용하여 첫 번째 픽쳐 복호화에 필요한 매크로블록 크기를 구한다.
기준 매크로블록의 크기를 사용할지에 대한 플래그가 기준 매크로블록 크기를 사용함을 의미하는 경우 매크로블록의 크기를 기준 매크로블록의 크기와 동일하게 설정한 후 첫 번째 픽쳐를 복호화한다.
두 번째 픽쳐부터는 이전 픽쳐의 매크로블록의 크기를 현재 매크로블록의 크기로 사용할지에 대한 플래그를 복호화한 후, 이전 픽쳐의 매크로블록의 크기를 사용하지 않을 경우 현재 픽쳐 복호화를 위한 매크로블록의 크기 정보를 복호화한다. 이전 픽쳐의 매크로블록의 크기를 현재 픽쳐 복호화에 사용하는 경우 매크로블록의 크기를 이전 픽쳐의 매크로블록의 크기와 동일한 값으로 설정하여 두 번째 픽쳐를 복호화한다.
기준 매크로블록의 크기를 나타내는 정보인 default_MBsize 또는 현재 픽쳐의 매크로블록의 크기를 나타내는 정보인 MB_size를 복호화하는 방법은 엔트로피 복호화한 값을 매크로블록의 크기로 사용할수도 있고 엔트로피 복호화한 값을 확대 비율 또는 축소 비율로 사용하여 소정의 크기로부터 확대 또는 축소하여 매크로블록의 크기를 얻을 수도 있다. 또는 전술한 첫 번째 복호화 방법에서 설명한 바와 같이, 부호화기에서 매크로블록의 크기값에 로그함수를 적용한 값을 부호화한 경우 지수함수를 이용하여 매크로블록의 크기값을 얻을 수도 있다.
또한 부호화기에서 가로와 세로에 대한 비율을 따로 복호화 한 경우 가로에 대한 비율과 세로에 대한 비율을 각각 엔트로피 복호화하여 기준 매크로블록 크기를 얻을 수도 있다.
또한 부호화기와 복호화기가 약속한 표의 인덱스값을 부호화한 경우, 복호화한 값을 표의 인덱스값으로 사용하여 기준 매크로블록의 크기를 구할 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 복호화(Binary Coding) 방법을 이용하여 기준 매크로블록 크기를 복호화 할 수 있다.
이하에서는 매크로블록의 크기를 부호화하는 다섯 번째 방법에 따른 복호화 방법을 설명한다.
다섯 번째 방법에 따르면, 인트라 픽쳐와 인터 픽쳐의 매크로블록의 크기를 비트스트림내 부호화기와 복호화기가 약속한 위치에서 각각 추출하여 픽쳐 종류에 따른 매크로블록의 크기를 설정하도록 한다.
시퀀스헤더 또는 픽쳐 헤더에서 인트라 픽쳐를 위한 매크로블록의 크기와 인터 픽쳐를 위한 매크로블록의 크기를 복호화할지를 나타내는 각각의 플래그를 복원한 후, 플래그 값에 따라 인트라 또는 인터 픽쳐를 위한 매크로블록의 크기를 비트스트림을 통해 복호화 하거나, 약속된 매크로블록의 크기를 사용하여 영상을 복원한다.
인트라 픽처의 매크로블록의 크기와 인터 픽처의 매크로블록의 크기에 대한 정보를 복호화하는 방법은 앞서 설명한 부호화 방법에 따라 앞서 설명한 복호화 방법들과 결합되어 사용할 수도 있다.
이하에서는 선택된 최소 서브블록의 크기를 부호화하는 본 발명에 따른 다양한 방법들을 설명한다. 하나의 매크로블록은 예측 또는 변환을 위해 복수의 서브블록들로 분할될 수 있다. 본 발명에 따른 매크로블록은 가변 크기를 가질 수 있으며 상기 매크로블록의 크기를 나타내는 정보는 전술한 바와 같은 다양한 방법들을 이용하여 부호화될 수 있다.
먼저 최소 서스블록의 크기를 부호화하는 첫번째 방법을 설명한다. 시퀀스 헤더 또는 각 픽처의 헤더에 최소 서브블록의 크기를 보낼지에 대한 플래그(Set_minBlockSize_flag)를 포함시킬 수 있다. 상기 플래그의 값에 따라 최소 서브블록의 크기를 전송할 수도 있고 전송하지 않을 수도 있도록 한다. 전송하지 않는 경우에는 소정 크기의 최소 서브블록, 예컨대 4x4 블록을 최소 서브블록크기로 사용한다.
만약, 최소 서브블록의 크기를 지정하는 경우에는 최소 서브블록의 크기에 대한 정보를 전송한다. 이때, 최소 서브블록의 크기의 가로 크기와 세로 크기를 따로 설정하도록 하여 임의의 크기의 최소 서브블록을 사용할 수도 있다. 또는 최소 서브블록의 크기로 정사각형을 사용하는 경우 한 변의 길이를 나타내는 정보만을 부호화한 후 복호화 장치로 전송할 수 있다.
부호화할 최소 서브블록의 크기값은 실제 최소 서브블록의 크기를 지정할 수도 있고 소정의 크기로부터 몇 배를 키울지 또는 축소 시킬지에 대한 값을 보낼수도 있다. 또한, 최소 서브블록의 크기값을 그대로 부호화하는 대신, 최소서브블록의 크기값에 로그함수를 적용함으로써 보다 적은 비트를 이용하여 최소 서브블록의 크기값을 나타낼 수 있다. 예컨대, log2(선택된 최소 서브블록크기/X) (X는 2의 배수인 임의의 양의 정수)의 값을 부호화한다. 이 때 사용 가능한 최소 서브블록의 크기를 X의 값으로 선택할 수 있다. 예를 들어 사용 가능한 최소 최소 서브블록의 크기가 4x4이라면, X의 값을 4로 선택함이 바람직하다. 이 경우 현재 최소 서브블록이 4x4이라면 00을 부호화하고, 8x8인 경우 1을 부호화한다. 만약, 사용 가능한 최소 서브블록의 크기가 8x8이라면 X의 값을 4대신 8로 선택함이 바람직하다. 이 경우, 현재 최소 서브블록이 8x8 블록인 경우 0을 부호화하고 16x16인 경우 1을 부호화한다. 따라서 4, 8, 또는 16이라는 수를 부호화 할 때 보다 적은 비트를 이용하여 현재 매크로블록의 크기를 나타낼 수 있다.
또한, 가로와 세로에 대한 비율을 따로 부호화 할 수도 있다.
이하에서는 설명의 편의를 위해, 가로와 세로의 크기를 각각 설정하는 것에 대한 내용은 기술하지 않지만, 가로와 세로의 크기를 각각 설정하는 것도 적용 가능하다. 또한, 시퀀스 헤더와 픽처 헤더 상에서 데이터를 부호화하는 것으로 예를 들었지만, 슬라이스 헤더 또는 매크로블록 헤더에서 부호화할 수도 있다.
아래는 전술한 최소 서브블록의 크기 부호화에 관한 첫번째 방법에 따른 신택스의 일 예를 나타낸다.
Set_minBlockSize_flag
if(Set_minBlockSize_flag == 1)
{
minBlockSize
}
또는
Set_minBlockSize_flag
if(Set_minBlockSize_flag == 1)
{
minBlockSize_Width
minBlockSize_height
}
또는 최소 서브블록의 크기에 대한 정보를 보낼지에 대한 플래그 (Set_minBlockSize_flag)를 부호화 하지 않고 시퀀스, 픽쳐, 슬라이스 또는 매크로블록 헤더마다 최소 서브블록의 크기를 영상 복호화 장치로 전송할 수도 있다.
이하에서는 최소 서브블록의 크기를 부호화하는 두 번째 방법을 설명한다.
두 번째 방법에 따르면, NxN 크기를 기준 최소 서브블록의 크기로 설정하고 각 픽처 또는 슬라이스, 매크로블록 헤더마다 기준 최소 서브블록의 크기를 사용할지를 나타내는 플래그를 부호화하고 기준 최소 서브블록의 크기를 사용하지 않을 경우, 선택된 최소 서브블록의 크기를 부호화한다. 또는, 시퀀스 헤더에서 기준 최소 서브블록의 크기를 설정할지를 나타내는 플래그를 부호화한 후 기준 최소 서브블록의 크기를 설정하지 않는 경우 소정 사이즈, 예컨대 4x4 크기를 기준 최소 서브블록의 크기로 사용하고 기준 최소 서브블록의 크기를 설정하는 경우에는 기준 최소 서브블록의 크기를 부호화하여 시퀀스 헤더 등에 포함시킬 수도 있다.
여기서 기준 최소 서브블록의 크기를 나타내는 정보인 defalt_ minBlockSize 또는 현재 최소 서브블록의 크기를 나타내는 정보인 minBlockSize 값을 부호화하는 방법은 실제 최소 서브블록의 크기를 지정할 수도 있고 소정의 크기로부터 몇 배를 키울지 또는 축소 시킬지에 대한 값을 보낼 수도 있다. 또는 전술한 첫번째 방법에서 설명한 바와 같이, 최소 서브블록 크기값을 그대로 부호화하는 대신, 최소 서브블록 크기값에 로그 함수를 적용함으로써 보다 적은 비트를 이용하여 최소 서브블록 크기값을 나타낼 수 있다.
또한, 가로와 세로에 대한 비율을 따로 부호화 할 수도 있다.
또는 부호화기와 복호화기가 약속한 Table의 인덱스 값일 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 전송할 최소 서브블록 크기를 부호화할 수 있다.
아래는 전술한 최소 서브블록의 크기 부호화에 관한 두 번째 방법에 따른 신택스의 일 예를 나타낸다.
시퀀스, 픽쳐, 또는 슬라이스 헤더
Set_default minBlockSize _Flag
if(Set_ default minBlockSize _Flag == 1)
{
defalt_ minBlockSize
}
픽쳐, 슬라이스 또는 매크로블록 헤더
use_defalt_ minBlockSize _flag
if(use_defalt_ minBlockSize_flag == 0)
{
minBlockSize
}
이하에서는 최소 서브블록의 크기를 부호화하는 세번째 방법을 설명한다.
세번째 방법에 따르면, MxN 크기를 기준 최소 서브블록의 크기로 설정하고 각 픽처 또는 슬라이스, 최소 서브블록 헤더마다 기준 최소 서브블록의 크기를 사용할지 여부를 나타내는 플래그를 부호화하여 영상 복호화 장치로 전송한다. 상기 플래그가 기준 최소 서브블록 크기를 사용할 것을 나타내는 경우, 기준 최소 서브블록의 크기와 동일한 크기의 블록이 현재 최소 서브블록으로 선택된다. 그러나 상기 플래그가 기준 최소 서브블록 크기를 사용하지 않음을 나타내는 경우, 기준 최소 서브블록의 크기로부터 소정 비율 만큼 확장 또는 축소한 블록이 현재 최소 서브블록으로서 부호화 또는 복호화 과정에서 선택된다. 예컨대, 기준 최소 서브블록의 가로 및 세로 길이가 두 배로 확장된 또는 1/2로 축소된 가로 및 세로 길이를 갖는 블록이 현재 최소 서브블록으로 선택될 수 있다.
만약, 다양한 확장 또는 축소 비율을 가지는 경우에는 상기 플래그의 길이를 2비트 이상이 되도록 하여 다양한 비율을 나타내게 할 수 있다. 또는 기준 최소 서브블록의 크기를 사용할지 여부를 나타내는 플래그 외에 추가로 확장 비율 또는 축소비율을 나타내는 정보를 부호화할 수 있다.
상기 플래그가 기준 최소 서브블록 크기를 사용하지 않음을 나타내고 또한 기준 최소 서브블록의 크기로부터 확장된 블록이 현재 최소 서브블록으로 선택되는 경우, 상기 기준 최소 서브블록의 크기는 현재 비트스트림의 부호화 또는 복호화시에 이용 가능한 최소 최소 서브블록의 크기에 해당한다. 반대로, 상기 플래그가 기준 최소 서브블록 크기를 사용하지 않음을 나타내고 또한 기준 최소 서브블록의 크기로부터 축소된 블록이 현재 최소 서브블록으로 선택되는 경우, 상기 기준 최소 서브블록의 크기는 현재 비트스트림의 부호화 또는 복호화시에 이용 가능한 최대 최소 서브블록의 크기에 해당한다.
영상 복호화 장치는 기준 최소 서브블록의 크기를 사용할지 여부를 나타내는 상기 플래그 및/또는 기준 최소 서브블록의 크기로부터 소정 비율만큼 확장 또는 축소할 것을 지시하는 추가 정보를 이용하여 현재 최소 서브블록의 크기를 선택할 수 있다.
본 발명의 일 실시예에 따르면 기준 최소 서브블록의 크기를 설정할지를 나타내는 플래그를 비트스트림의 시퀀스 헤더에 포함시킬 수 있다. 기준 최소 서브블록의 크기를 설정하지 않는 경우 소정 사이즈, 예컨대 16x16 크기를 기준 최소 서브블록의 크기로 사용하도록 미리 약속될 수 있다.
만약, 기준 최소 서브블록의 크기를 설정하여 영상 복호화 장치로 시그널링하는 경우에는 기준 최소 서브블록의 크기를 나타내는 정보를 부호화하여 시퀀스 헤더 등에 포함시킬 수 있다. 본 발명의 일 실시예에 따르면, 영상 부호화 장치는 기준 최소 서브블록의 크기를 나타내는 정보로서 현재 비트스트림의 부호화 또는 복호화시에 이용 가능한 최대 최소 서브블록의 크기를 나타내는 정보를 영상 복호화 장치로 시그널링 할 수 있다. 본 발명의 다른 실시예에 따르면, 영상 부호화 장치는 기준 최소 서브블록의 크기를 나타내는 정보로서 현재 비트스트림의 부호화 또는 복호화시에 이용가능한 최소 최소 서브블록의 크기를 나타내는 정보를 영상 복호화 장치로 시그널링 할 수 있다. 본 발명의 또 다른 실시예에 따르면, 영상 부호화 장치는 기준 최소 서브블록의 크기를 나타내는 정보로서 현재 비트스트림의 부호화 또는 복호화시에 이용가능한 최대 최소 서브블록의 크기와 최소 최소 서브블록의 크기 양자를 영상 복호화 장치로 시그널링 할 수 있다.
기준 최소 서브블록의 크기를 나타내는 정보인 defalt_ minBlockSize를 부호화하는 방법은 실제 최소 서브블록의 크기를 지정할 수도 있고 소정의 크기로부터 몇 배를 키울지 또는 축소 시킬지에 대한 값을 보낼 수도 있다. 또는 전술한 첫번째 방법에서 설명한 바와 같이, 최소 서브블록 크기값을 그대로 부호화하는 대신, 최소 서브블록 크기값에 로그 함수를 적용함으로써 보다 적은 비트를 이용하여 최소 서브블록 크기값을 나타낼 수 있다.
보다 구체적으로 설명하면, 예컨대, defalt_ minBlockSize가 현재 비트스트림의 부호화 또는 복호화시에 이용 가능한 최대 최소 서브블록의 크기를 나타낸다면, log2(X/defalt_ minBlockSize) (X는 2의 배수인 임의의 양의 정수) 의 값을 부호화한다. 이 때 가능한 최대 최소 서브블록의 크기를 X의 값으로 선택할 수 있다. 또는 defalt_ minBlockSize가 현재 비트스트림의 부호화 또는 복호화시에 이용가능한 최소 최소 서브블록의 크기를 나타낸다면, log2(defalt_ minBlockSize/X) (X는 2의 배수인 임의의 양의 정수) 의 값을 부호화한다. 이 때 가능한 최소 최소 서브블록의 크기를 X의 값으로 선택할 수 있다.
또한, 가로와 세로에 대한 비율을 따로 부호화 할 수도 있다.
또는 부호화기와 복호화기가 약속한 Table의 인덱스 값일 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 전송할 최소 서브블록 크기를 부호화할 수 있다.
이하에서는 최소 서브블록의 크기를 부호화하는 네번째 방법을 설명한다.
네번째 방법에 따르면, 첫 번째 픽처에서 기준 최소 서브블록 크기를 사용할지에 대한 플래그와 기준 최소 서브블록 크기를 사용하지 않는 경우 선택된 최소 서브블록의 크기를 부호화한 후, 두 번째 픽처부터는 이전 픽처의 최소 서브블록의 크기를 사용할지에 대한 플래그와 이전 픽처의 최소 서브블록의 크기를 사용하지 않을 경우 현재 픽처의 최소 서브블록의 크기를 부호화 할 수도 있다.
기준 최소 서브블록의 크기를 나타내는 정보인 defalt_ minBlockSize또는 현재 최소 서브블록의 크기를 나타내는 정보인 minBlockSize를 부호화하는 방법은 실제 최소 서브블록의 크기를 지정할 수도 있고 소정의 크기로부터 몇 배를 키울지 또는 축소 시킬지에 대한 값을 보낼수도 있다. 또는 전술한 첫번째 방법에서 설명한 바와 같이, 최소 서브블록 크기값을 그대로 부호화하는 대신, 최소 서브블록 크기값에 로그 함수를 적용함으로써 보다 적은 비트를 이용하여 최소 서브블록 크기값을 나타낼 수 있다.
또한, 가로와 세로에 대한 비율을 따로 부호화 할 수도 있다. 또는 부호화기와 복호화기가 약속한 Table의 인덱스 값일 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 전송할 최소 서브블록 크기를 부호화할 수 있다.
아래는 전술한 최소 서브블록의 크기 부호화에 관한 네번째 방법에 따른 신택스의 일 예를 나타낸다.
첫번째 픽처
use_defalt_ minBlockSize _flag
if(use_defalt_ minBlockSize _flag == 0)
{
minBlockSize
}
두번째 픽처부터
use_prevPic_ minBlockSize _flag
if(use_prevPic_ minBlockSize e_flag == 0)
{
minBlockSize
}
이하에서는 최소 서브블록의 크기를 부호화하는 다섯번째 방법을 설명한다.
다섯번째 방법에 따르면, 인트라 픽처와 인터 픽처의 최소 서브블록의 크기를 다르게 사용한다. 즉, 시퀀스 헤더에서 인트라 픽처를 위한 최소 서브블록의 크기와 인터 픽처를 위한 최소 서브블록의 크기를 부호화한다. 또는 첫번째 인트라 픽처와 인터 픽처의 헤더에만 픽처 종류에 따른 각각의 최소 서브블록의 크기를 부호화하도록 할 수도 있다.
인트라 픽처의 최소 서브블록의 크기와 인터 픽처의 최소 서브블록의 크기에 대한 정보를 부호화하는 방법은 앞서 설명한 방법들과 결합되어 사용할 수도 있다
시퀀스헤더
Set_intra minBlockSize _Flag
Set_inter minBlockSize _Flag
if(Set_intra minBlockSize _Flag == 1)
{
intra minBlockSize
}
if(Set_inter minBlockSize _Flag == 1)
{
inter minBlockSize
}
이하에서는 최소 서브블록 크기를 복호화하는 본 발명에 따른 다양한 방법들을 설명한다.
먼저 최소 서브블록의 크기를 부호화하는 첫번째 방법에 따른 복호화 방법을 설명한다.
최소 서브블록의 크기에 대한 정보를 보낼지에 대한 플래그(Set_minBlockSize_flag)가 포함되어 진 경우, 시퀀스 헤더 또는 각 픽쳐의 헤더 또는 슬라이스 헤더 등의 약속된 위치에서 최소 서브블록의 크기에 대한 정보를 보낼지에 대한 플래그(Set_minBlockSize_flag)를 엔트로피 복호화한다. 복호화한 플래그가 최소 서브블록의 크기가 전송되지 않았음을 나타내는 값인 경우, 부호화기와 약속된 소정 크기의 최소 서브블록, 예컨대 4x4블록을 최소 서브블록으로 사용한다.
만약 복호화한 최소 서브블록 크기 지정 플래그(Set_minBlockSize_flag)가 최소 서브블록의 크기가 지정되었음을 의미하는 경우, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary-Code), 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 엔트로피 복호화 방법들 중 부호화기와 약속된 방법으로 최소 서브블록의 크기를 엔트로피 복호화하여 추출한다.
만약 최소 서브블록의 가로 크기와 세로크기가 따로 설정되어 전송된 경우 가로크기와 세로크기를 각각 엔트로피 복호화하여 구할 수도 있고, 또는 정사각형 최소 서브블록을 사용하는 경우 한 변의 길이를 나타내는 정보만을 엔트로피 복호화할 수도 있다.
복호화 한 값을 실제 최소 서브블록의 크기로 지정할 수도 있고 복호화 한 값을 부호화기와 약속한 소정의 크기로부터 몇 배를 키우거나 축소시킨 값을 최소 서브블록의 크기로 지정할 수도 있다. 또한 부호화기에서 최소 서브블록의 크기값에 로그함수를 적용한 값을 부호화한 경우 엔트로피 복호화한 값을 지수함수를 적용하여 최소 서브블록의 크기를 설정할 수도 있다 예컨대, 부호화기에서 log2(부호화기에서 선택된 최소 서브블록 크기/X) (X는 2의 배수인 임의의 양의 정수)의 값인 y를 부호화한 경우 복호화기에서는 y값을 엔트로피 복호화하고 X의 값에 2y 를 곱하여 부호화기에 선택된 최소 서브블록의 크기를 구할 수 있다. 여기서 X의 값은 부호화기와 복호화기가 약속한 값이거나 비트스트림으로부터 최소 서브블록 크기를 복호화하기전 추출한 값일 수도 있다. 만약 X의 값으로 사용 가능한 최소 최소 서브블록의 크기를 선택하여 사용하고 사용 가능한 최소 최소 서브블록의 크기가 4x4인 경우, 복호화 한 y의 값이 0이면 최소 서브블록의 크기를 4x4로 설정하고 복호화 한 y의 값이 1이면 최소 서브블록의 크기를 8x8으로 설정한다. 만약 사용 가능한 최소 최소 서브블록의 크기가 8x8이라면 X의 값을 4대신 8을 사용하고 복호화한 y의 값이 0인 경우 최소 서브블록의 크기는 8x8으로 설정한다.
또한 부호화기에서 가로와 세로에 대한 비율을 따로 복호화 한 경우 가로에 대한 비율과 세로에 대한 비율을 각각 엔트로피 복호화하여 최소 서브블록의 크기를 얻을 수도 있다.
또한 부호화기와 복호화기가 약속한 표의 인덱스값을 부호화한 경우, 복호화한 값을 표의 인덱스값으로 사용하여 최소 서브블록의 크기를 구할 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 복호화(Binary Coding) 방법을 이용하여 전송할 최소 서브블록 크기를 복호화 할 수 있다. 이하에서는 설명의 편의를 위해, 가로와 세로의 크기를 각각 복호화하여 추출하는 것에 대한 내용은 기술하지 않지만, 가로와 세로의 크기를 각각 추출하는 것도 적용 가능하다. 또한 시퀀스 헤더와 픽쳐 헤더 상에서 데이터를 복호화하는 것으로 예를 들었지만 부호화기에서 슬라이스 헤더 또는 최소 서브블록 헤더에서 최소 서브블록의 크기를 부호화한 경우 슬라이스 헤더 또는 최소 서브블록 헤더에서 최소 서브블록의 크기를 복호화 할 수도 있다.
이하에서는 최소 서브블록의 크기를 부호화하는 두 번째 방법에 따른 복호화 방법을 설명한다.
두 번째 방법에 따르면, 부호화기와 약속된 NxN 크기를 기준 최소 서브블록 크기로 설정하고 각 픽쳐 또는 슬라이스, 최소 서브블록 헤더로부터 기준 최소 서브블록 크기를 사용할지를 나타내는 플래그를 엔트로피 복호화한다. 복호화한 플래그 값이 기준 최소 서브블록 크기를 사용하지 않음을 뜻하는 경우, 최소 서브블록 크기 정보를 엔트로피 복호화하여 최소 서브블록의 관련 정보를 추출하고 최소 서브블록의 크기를 설정한다. 복호화한 플래그 값이 기준 최소 서브블록 크기 사용함을 뜻하는 경우, 최소 서브블록 크기 정보는 비트스트림에 포함되지 않았음을 뜻하므로 사전에 설정된 기준 최소 서브블록의 크기를 최소 서브블록의 크기로 설정하여 일련의 복호화 과정을 진행한다.
기준 최소 서브블록의 크기는 부호화기에서 시퀀스 헤더 등에 포함되어 복호화기로 전송된 경우, 비트스트림 내 시퀀스 헤더 등의 약속된 위치에서 기준 최소 서브블록의 크기를 추출할 수도 있다. 여기서 기준 최소 서브블록의 크기 또는 현재 최소 서브블록의 크기는 엔트로피 복호화 한 값을 할당할 수도 있고 엔트로피 복호화 한 값으로 소정의 크기를 스케일링 (축소 또는 확대)하여 최소 서브블록의 크기를 얻을 수도 있다. 또는 전술한 첫번째 복호화 방법에서 설명한 바와 같이, 부호화기에서 최소 서브블록의 크기값에 로그함수를 적용한 값을 부호화한 경우 지수함수를 이용하여 최소 서브블록의 크기값을 얻을 수도 있다.
또한 부호화기에서 가로와 세로에 대한 비율을 따로 복호화 한 경우 가로에 대한 비율과 세로에 대한 비율을 각각 엔트로피 복호화하여 최소 서브블록의 크기를 얻을 수도 있다.
또한 부호화기와 복호화기가 약속한 표의 인덱스값을 부호화한 경우, 복호화한 값을 표의 인덱스값으로 사용하여 최소 서브블록의 크기를 구할 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 복호화(Binary Coding) 방법을 이용하여 전송할 최소 서브블록 크기를 복호화 할 수 있다.
이하에서는 최소 서브블록의 크기를 부호화하는 세번째 방법에 따른 복호화 방법을 설명한다.
세번째 방법에 따르면, 영상 복호화 장치는 기준 최소 서브블록의 크기를 사용할지 여부를 나타내는 플래그 및/또는 기준 최소 서브블록의 크기로부터의 소정 비율 만큼 확장 또는 축소할것을 나타내는 추가 정보를 비트스트림으로부터 추출한 후 상기 정보들을 이용하여 현재 최소 서브블록의 크기를 추출할 수 있다.
먼저, NxN 크기를 기준 최소 서브블록의 크기로 설정하고 각 픽쳐 또는 슬라이스, 최소 서브블록 헤더마다 기준 최소 서브블록의 크기를 사용할지 여부를 나타내는 플래그를 복호화한다. 상기 플래그가 기준 최소 서브블록 크기를 사용하여 부호화되었음을 나타내는 경우, 현재 최소 서브블록의 크기는 기준 최소 서브블록의 크기와 동일한 값으로 설정하고 설정된 최소 서브블록의 크기를 이용하여 최소 서브블록 단위로 복호화를 진행한다. 그러나 상기 플래그가 기준 최소 서브블록 크기를 사용하지 않았음을 나타내는 경우, 기준 최소 서브블록의 크기로부터 부호화기와 약속한 소정 비율 만큼 확장 또는 축소한 값을 현재 최소 서브블록의 크기로 설정하여 최소 서브블록 단위 복호화를 진행한다. 예컨대, 기준 최소 서브블록의 가로 및 세로 길이가 두배로 확장된 크기 또는 1/2로 축소된 크기를 현재 최소 서브블록의 크기로 설정할 수도 있다.
만약, 부호화기에서 다양한 확장 또는 축소 비율을 사용하고 선택된 비율을 상기 플래그를 비트스트림에 포함하여 부호화한 경우, 복호화기는 비트스트림으로부터 상기 플래그 엔트로피 복호화 시 부호화기와 약속된 비트수만큼 복호화하여 다양한 비율을 얻을 수 있다.
또는 기준 최소 서브블록을 사용할지 여부를 나타내는 플래그 외에 추가로 확장 비율 또는 축소 비율을 나타내는 정보가 비트스트림으로 포함되어 부호화된 경우 기준 최소 서브블록을 사용할지 여부를 나타내는 플래그를 복호화한 후 플래그 값에 따라 확장 비율 또는 축소 비율을 복호화할수도 있고 하지 않을 수도 있다. 복호화하지 않는 경우 기준 최소 서브블록의 크기를 현재 최소 서브블록의 크기로 설정하여 이후 복호화 과정들을 진행한다.
복호화한 상기 플래그가 기준 최소 서브블록 크기가 현재 최소 서브블록의 크기와 다름을 나타내고 또한 복호화한 비율이 확장 비율인 경우, 상기 기준 최소 서브블록의 크기를 현재 비트스트림의 부호화 또는 복호화시에 이용 가능한 최소 최소 서브블록의 크기로 설정한 후, 엔트로피 복호화한 비율만큼 기준 최소 서브블록의 크기를 확장한 크기를 현재 최소 서브블록의 크기로 설정한다. 반대로 엔트로피 복호화한 비율이 축소비율인 경우, 상기 기준 최소 서브블록의 크기를 현재 비트스트림의 부호화 또는 복호화시에 이용 가능한 최대 최소 서브블록의 크기로 설정한 후, 엔트로피 복호화한 비율만큼 기준 최소 서브블록의 크기를 축소한 크기를 현재 최소 서브블록의 크기로 설정한다.
본 발명의 일 실시예에 따르면 기준 최소 서브블록의 크기를 설정할지를 나타내는 플래그가 비트스트림의 시퀀스 헤더에 포함되어 전송된 경우, 복호화기는 시퀀스헤더로부터 상기 플래그를 엔트로피 복호화 한 후 상기 플래그가 기준 최소 서브블록의 크기가 설정되었음을 나타내는 경우 비트스트림으로부터 시퀀스 헤더등의 약속된 위치에서 기준 최소 서브블록의 크기 정보를 비트스트림으로부터 추출하여 추출한 정보를 이용하여 기준 최소 서브블록의 크기를 설정한다. 기준 최소 서브블로의 크기가 설정되지 않았음을 의미하는 경우에는 부호화기와 복호화기 사전에 약속한 소정의 사이즈, 예컨대 4x4크기를 기준 최소 서브블록의 크기로 사용할 수도 있다.
본 발명의 일 실시예에 따르면, 영상 복호화 장치는 현재 비트스트림의 부호화 또는 복호화시에 이용가능한 최대 최소 서브블록의 크기를 나타내는 정보를 비트스트림으로부터 추출하여 기준 최소 서브블록의 크기를 설정하는데 이용할 수 있다. 본 발명의 다른 실시예에 따르면, 영상 복호화 장치는 현재 비트스트림의 부호화 또는 복호화시에 이용가능한 최소 최소 서브블록의 크기를 나타내는 정보를 비트스트림으로부터 추출하여 기준 최소 서브블록의 크기를 설정하는데 이용할 수도 있다. 본 발명의 또 다른 실시예에 따르면, 영상 복호화 장치는 현재 비트스트림의 부호화 또는 복호화시에 이용가능한 최대 최소 서브블록의 크기와 최소 최소 서브블록의 크기를 나타내는 정보를 비트스트림으로부터 추출하여 기준 최소 서브블록의 크기를 설정하는데 이용할 수도 있다.
기준 최소 서브블록의 크기를 나타내는 정보인 defalt_ minBlockSize 를 복호화하는 방법은 엔트로피 복호화한 값 자체를 기준 최소 서브블록 크기값으로 설정할 수도 있고 엔트로피 복호화한 값을 확대 비율 또는 축소 비율로 사용하여 소정의 크기로부터 확대 또는 축소하여 기준 최소 서브블록의 크기를 얻을 수도 있다. 또는 전술한 첫번째 복호화 방법에서 설명한 바와 같이, 부호화기에서 최소 서브블록의 크기값에 로그함수를 적용한 값을 부호화한 경우 지수함수를 이용하여 최소 서브블록의 크기값을 얻을 수도 있다.
보다 구체적으로 설명하면, 예컨대, defalt_ minBlockSize 가 현재 비트스트림의 부호화 또는 복호화시에 이용가능한 최대 최소 서브블록의 크기를 나타내고 부호화기에서 log2(X/ defalt_ minBlockSize) (X는 2의 배수인 임의의 양의 정수)의 값인 y를 부호화한 경우, 복호화기에서는 y값을 엔트로피 복호화하여 X의 값에 2y 를 곱하여 defalt_ minBlockSize 를 구할 수 있다. 이때 X의 값은 가능한 최대 최소 서브블록의 크기와 같이 부호화기와 복호화기가 약속한 값이거나 비트스트림으로부터 defalt_ minBlockSize를 복호화기전에 추출한 값일 수도 있다.
또는 defalt_ minBlockSize가 현재 비트스트림으로부터 이용 가능한 최소 최소 서브블록의 크기를 나타내고, 부호화기에서 log2(defalt_ minBlockSize/X) (X는 2의 배수인 임의의 양의 정수)의 값인 y값을 부호화한 경우, 복호화기에서는 y값을 엔트로피 복호화하여 비트스트림으로부터 추출하고 X의 값과 2y를 곱한 값을 defalt_ minBlockSize로 설정한다. 이때 X의 값은 가능한 최소 최소 서브블록의 크기와 같이 부호화기와 복호호화기가 약속한 값이거나 비트스트림으로부터 defalt_ minBlockSize를 복호화하기 전에 추출한 값일 수도 있다.
또한 부호화기에서 가로와 세로에 대한 비율을 따로 복호화 한 경우 가로에 대한 비율과 세로에 대한 비율을 각각 엔트로피 복호화하여 기준 최소 서브블록 크기를 얻을 수도 있다.
또한 부호화기와 복호화기가 약속한 표의 인덱스값을 부호화한 경우, 복호화한 값을 표의 인덱스값으로 사용하여 기준 최소 서브블록의 크기를 구할 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 복호화(Binary Coding) 방법을 이용하여 기준 최소 서브블록 크기를 복호화 할 수 있다.
이하에서는 최소 서브블록의 크기를 부호화하는 네번째 방법에 따른 복호화 방법을 설명한다.
네번째 방법에 따르면, 첫 번째 픽쳐에서 기준 최소 서브블록의 크기를 사용할지에 대한 플래그와 기준 최소 서브블록 크기를 사용하지 않는 경우 최소 서브블록의 크기 정보를 엔트로피 복호화한 후, 복호화된 최소 서브블록의 크기 정보를 이용하여 첫번째 픽쳐 복호화에 필요한 최소 서브블록 크기를 구한다.
기준 최소 서브블록의 크기를 사용할지에 대한 플래그가 기준 최소 서브블록 크기를 사용함을 의미하는 경우 최소 서브블록의 크기를 기준 최소 서브블록의 크기와 동일하게 설정한 후 첫번째 픽쳐를 복호화한다.
두번째 픽쳐부터는 이전 픽쳐의 최소 서브블록의 크기를 현재 최소 서브블록의 크기로 사용할지에 대한 플래그를 복호화한 후, 이전 픽쳐의 최소 서브블록의 크기를 사용하지 않을 경우 현재 픽쳐 복호화를 위한 최소 서브블록의 크기 정보를 복호화한다. 이전 픽쳐의 최소 서브블록의 크기를 현재 픽쳐 복호화에 사용하는 경우 최소 서브블록의 크기를 이전 픽쳐의 최소 서브블록의 크기와 동일한 값으로 설정하여 두번째 픽쳐를 복호화한다.
기준 최소 서브블록의 크기를 나타내는 정보인 defalt_ minBlockSize 또는 현재 픽쳐의 최소 서브블록의 크기를 나타내는 정보인 minBlockSize를 복호화하는 방법은 엔트로피 복호화한 값을 최소 서브블록의 크기로 사용할 수도 있고 엔트로피 복호화한 값을 확대 비율 또는 축소 비율로 사용하여 소정의 크기로부터 확대 또는 축소하여 최소 서브블록의 크기를 얻을 수도 있다. 또는 전술한 첫번째 복호화 방법에서 설명한 바와 같이, 부호화기에서 최소 서브블록의 크기값에 로그함수를 적용한 값을 부호화한 경우 지수함수를 이용하여 최소 서브블록의 크기값을 얻을 수도 있다.
또한 부호화기에서 가로와 세로에 대한 비율을 따로 복호화 한 경우 가로에 대한 비율과 세로에 대한 비율을 각각 엔트로피 복호화하여 기준 최소 서브블록 크기를 얻을 수도 있다.
또한 부호화기와 복호화기가 약속한 표의 인덱스값을 부호화한 경우, 복호화한 값을 표의 인덱스값으로 사용하여 기준 최소 서브블록의 크기를 구할 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 복호화(Binary Coding) 방법을 이용하여 기준 최소 서브블록 크기를 복호화 할 수 있다.
이하에서는 최소 서브블록의 크기를 부호화하는 다섯번째 방법에 따른 복호화 방법을 설명한다.
다섯번째 방법에 따르면, 인트라 픽쳐와 인터 픽쳐의 최소 서브블록의 크기를 비트스트림내 부호화기와 복호화기가 약속한 위치에서 각각 추출하여 픽쳐 종류에 따른 최소 서브블록의 크기를 설정하도록 한다.
시퀀스헤더 또는 픽쳐 헤더에서 인트라 픽쳐를 위한 최소 서브블록의 크기와 인터 픽쳐를 위한 최소 서브블록의 크기를 복호화할지를 나타내는 각각의 플래그를 복원한 후, 플래그 값에 따라 인트라 또는 인터 픽쳐를 위한 최소 서브블록의 크기를 비트스트림을 통해 복호화 하거나, 약속된 최소 서브블록의 크기를 사용하여 영상을 복원한다.
인트라 픽처의 최소 서브블록의 크기와 인터 픽처의 최소 서브블록의 크기에 대한 정보를 복호화하는 방법은 앞서 설명한 부호화 방법에 따라 앞서 설명한 복호화 방법들과 결합되어 사용할 수도 있다.
이하에서는 매크로블록 내 사용 가능한 서브블록 모드들의 조합을 선택하고 선택된 서브블록 모드들의 조합들 중 현재 매크로블록 부호화에 선택된 서브 블록 모드를 부호화하는 본 발명에 따른 다양한 방법들을 설명한다.
하나의 매크로블록은 예측 또는 변환을 위해 복수의 서브블록들로 분할될 수 있다. 본 발명에 따른 매크로블록의 크기와 매크로블록 내 최소 서브블록의 크기는 가변 크기를 가질 수 있으며 상기 매크로블록의 크기와 최소 서브블록의 크기를 나타내는 정보는 전술한 바와 같은 다양한 방법들을 이용하여 부호화될 수 있다.
먼저 사용 가능한 서브블록 모드들의 조합과 예측에 사용된 현재블록의 모드를 부호화하는 첫번째 방법을 설명한다.
시퀀스 헤더 또는 각 픽쳐의 헤더에 예측 또는 변환을 위해 사용가능한 서브블록 모드들의 정보를 보낼지에 대한 플래그를 포함시킬 수 있다. 상기 플래그의 값에 따라 사용 가능한 블록 모드들의 조합에 대한 정보를 전송할 수도 있고 전송하지 않을수도 있다. 전송하지 않는 경우에는 부호화기와 복호화기가 약속한 기본 서브블록 조합, 예컨대 표 1~표5에 나타나 있는 모든 서브블록 모드들을 예측 또는 변환에 사용한다.
만약 사용 가능한 서브블록 모드들의 조합을 지정하는 경우에는 다양한 블록 모드들중 현재 시퀀스 또는 현재 픽쳐, 슬라이스, 매크로블록 부호화에 사용 가능한 블록 모드들의 조합에 대한 정보를 전송한다. 부호화할 사용 가능한 서브블록 모드들의 조합에 대한 정보는 각 모드들에 대해 1비트 길이의 플래그를 통해 나타낼수도 있다. 예컨대, 64x64, 64x32, 32x64, 32x32, 32x16, 16x32, 16x16,16x8, 8x16, 8x8, 8x4, 4x8, 4x4 (순서 달라질수 있음)의 서브블록들 중 사용 가능한 서브블록모드 경우 1을 사용 가능하지 서브블록 모드인 경우 0을 부호화한다. 예를들어 64x64화소블록을 매크로블록의 크기로 하여 부호화할 때 인트라 예측 모드로 16x16이하 크기의 정사각형 서브블록 모드만이 예측에 사용 가능하다고 가정하면 플래그값으로 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1을 시퀀스 헤더 또는 픽쳐, 슬라이스 헤더에 부호화한다.
또는 부호화할 사용 가능한 서브블록 모드들의 조합에 대한 정보는 표의 인덱스값일 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 예측 및 변환에 사용 가능한 서브블록 모드들의 조합에 대한 정보를 부호화할 수 있다.
또한 인트라 모드인지 인터 모드인지에 따라 사용가능한 서브블록 모드들의 조합을다르게 설정할 수고 인트라 모드를 위한 서브블록 모드 조합 정보와 인터 모드를 위한 서브블록 모드 조합 정보를 부호화할 수도 있다.
현재 블록 부호화에 선택된 예측 모드 또는 변환타입 정보를 부호화시 표내에서 사용가능하지 않는 블록모드들은 삭제하고 사용 가능한 블록모드들에만 index를 재할당하여 재 할당된 표의 인덱스를 부호화도록 한다.. 예를들어 64x64크기의 P매크로블록에 대해 인터 예측모드로 사용가능한 서브블록의 크기는 16x16, 16x8, 4x4이고 표 2와 표4을 이용하여 서브블록 모드를 부호화하는 경우, 표2는 표2와 표4와 결합되어 다음과 같이 수정될 수 있다. 이때 MxN_Block_type부호화에 필요한 비트수는 달라지게 발생가능한 가짓수에 따라 달라지게 된다.
Figure pat00006
이하에서는 설명의 편의를 위해, 예측모드(인트라 예측 또는 인터예측)에 따라 예측 또는 변환을 위해 사용가능한 서브블록 모드 조합을 각각 설정하는 것에 대한 내용은 기술하지 않지만, 예측모드에 따라 각각 설정하는 것도 적용 가능하다. 또한, 시퀀스 헤더와 픽처 헤더 상에서 데이터를 부호화하는 것으로 예를 들었지만, 슬라이스 헤더 또는 매크로블록 헤더에서 부호화할 수도 있다.
이하에서는 사용 가능한 서브블록 모드들의 조합과 예측에 사용된 현재블록의 모드를 부호화하는 두 번째 방법을 설명한다.
두 번째 방법에 따르면, 시퀀스 헤더 또는 각 픽쳐의 헤더에 예측 또는 변환을 위해 사용가능한 서브블록 모드들의 정보를 보낼지에 대한 플래그를 포함시킬 수 있다. 상기 플래그의 값에 따라 사용 가능한 블록 모드들의 조합에 대한 정보를 전송할 수도 있고 전송하지 않을수도 있다. 전송하지 않는 경우에는 부호화기와 복호화기가 약속한 기본 서브블록 조합 내 모든 서브블록 모드들을 예측 또는 변환에 사용한다.
만약 사용 가능한 서브블록 모드들의 조합을 지정하는 경우에는 어떤 종류의 블록 모양들이 사용가능한지를 나타내는 플래그를 시퀀스 헤더 또는 각 픽쳐의 헤더에 전송한다. 예를 들어, 매크로블록이 64x64인 경우, use_MxMblock_flag는 64x64, 32x32, 16x16, 8x8, 4x4와 같은 정사각형 블록모양을 예측 또는 변환에 사용할지 여부를 나타내는 플래그이며, use_Mx(M/2)block_flag는 64x32, 32x16, 16x8, 8x4와 같은 가로로 긴 직사각형 블록 모양을 예측 또는 변환에 사용할지를 나타내고, use_(M/2)xMblock_flag는 32x64, 16x32, 8x16, 4x8과 같이 세로로 긴 직사각형 블록모양을 예측 또는 변환에 사용할지를 나타내는 플래그이다. 상기 플래그가 해당 종류에 사용하는 블록 모양들은 예측 또는 변환에 사용 가능함을 나타내는 경우, 해당 블록 모양에 속하는 다양한 크기의 블록들은 모두 사용 가능함을 뜻한다.
또는 사용 가능한 서브블록 모드들의 조합을 선택하여 사용하는 경우, 서브블록 모드들을 선택하여 사용함을 나타내는 플래그를 비트스트림으로 부호화하고 어떤 종류의 블록 모양을 사용할지에 대한 플래그를 부호화하여 복호화기로 전송하고 해당 종류에 속하는 각 서브블록들에 대해 크기별로 사용 가능함을 나타내는 플래그를 부호화한다. 예를 들어, 사용 가능한 서브블록모드들의 조합을 선택하여 사용하고, 예측 및 변환에 사용가능한 서브블록 모드들이 64x64, 16x16, 8x8 블록인 경우, use_MxMblock_flag값으로 1을 부호화하고 use_(M/2)xMblock_flag와 use_Mx(M/2)block_flag는 0으로 부호화하여 정사각형 모양들의 서브블록들이 예측 또는 변환에 사용가능함을 복호화기에 알려주고, 정사각형 서브블록 모드 조합에 속하는 64x64, 32x32, 16x16, 8x8, 4x4 서브블록 각각에 대해 사용가능한지의 여부를 나타내는 플래그를 부호화한다.
또는 부호화할 사용 가능한 서브블록 모드들의 조합에 대한 정보는 표의 인덱스값일 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 예측 및 변환에 사용 가능한 서브블록 모드들의 조합에 대한 정보를 부호화할 수 있다.
현재 블록 부호화에 선택된 예측 모드 또는 변환타입 정보를 부호화시 표내에서 사용가능하지 않는 블록모드들은 삭제하고 사용 가능한 블록모드들에만 index를 재할당하여 재 할당된 표의 인덱스를 부호화도록 한다.
이하에서는 사용 가능한 서브블록 모드들의 조합과 예측에 사용된 현재블록의 모드를 부호화하는 세번째 방법을 설명한다.
세번째 방법에 따르면, 시퀀스 헤더 또는 각 픽쳐의 헤더에 예측 또는 변환을 위해 사용가능한 서브블록 모드들의 정보를 보낼지에 대한 플래그를 포함시킬 수 있다. 상기 플래그의 값에 따라 사용 가능한 블록 모드들의 조합에 대한 정보를 전송할 수도 있고 전송하지 않을수도 있다. 전송하지 않는 경우에는 부호화기와 복호화기가 약속한 기본 서브블록 조합 내 모든 서브블록 모드들을 예측 또는 변환에 사용한다.
만약 사용 가능한 서브블록 모드들의 조합을 지정하는 경우에는 서브블록 크기 별로 그룹을 지어 해당 그룹에 속하는 서브블록 모양이 사용가능한지의 여부를 나타내는 플래그를 시퀀스 헤더 또는 각 픽쳐의 헤더에 전송하고, 사용 가능한 서브블록 그룹들에 대해서는 각 서브블록 모양 별로 플래그를 부호화한다.. 예를 들어, 32x32 크기의 매크로블록인 경우, use_larger_(M/2)x(N/2)blk_flag는 32x32, 32x16, 16x32, 16x16 블록 모양을 사용할 지 여부를 나타내는 플래그이며, use_larger_(M/4)x(N/4)blk_flag는 16x16, 16x8, 8x16, 8x8을 사용할지를 나타내고, use_larger_(M/8)x(N/8)blk_flag는 8x8, 8x4, 4x8, 4x4 블록모드를 사용할지를 나타내는 플래그이다.
상기 플래그가 예측 또는 변환에 사용 가능함을 나타내는 경우, 그룹내 속하는 서브블록들은 모두 사용 가능함을 뜻한다.
또는 상기 플래그가 예측 또는 변환에 사용 가능함을 나타내는 경우, 그룹 내 속하는 다양한 서브블록들 각각에 대해 사용 가능한지의 여부를 나타내는 플래그를 추가적으로 부호화하도록할 수도 있다.
또는 부호화할 사용 가능한 서브블록 모드들의 조합에 대한 정보는 표의 인덱스값일 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 부호화(Binary Coding) 방법을 이용하여 예측 및 변환에 사용 가능한 서브블록 모드들의 조합에 대한 정보를 부호화할 수 있다.
현재 블록 부호화에 선택된 예측 모드 또는 변환타입 정보를 부호화시 표 내에서 사용가능하지 않는 블록모드들은 삭제하고 사용 가능한 블록모드들에만 index를 재할당하여 재 할당된 표의 인덱스를 부호화도록 한다.
이하에서는 사용 가능한 서브블록 모드들의 조합과 예측에 사용된 현재블록의 모드를 복호화하는 본 발명에 따른 다양한 방법들을 설명한다.
먼저 사용 가능한 서브블록 모드들의 조합과 예측에 사용된 현재블록의 모드를 부호화하는 첫번째 방법에 따른 복호화 방법을 설명한다.
시퀀스 헤더 또는 각 픽쳐의 헤더에 예측 또는 변환을 위한 서브블록들의 조합을 선택하여 사용할지 여부를 나타내는 플래그를 복호화하고 복호화한 플래그값이 선택하여 사용하지 않음을 나타내는 경우, 부호화기와 복호화기가 약속한 기본 서브블록 조합, 예컨대 표 1~표5에 나타나 있는 모든 서브블록 모드들을 예측 또는 변환에 사용한다. 복호화한 플래그값이 서브블록들의 조합을 선택하여 사용함을 나타내는 경우, 추가적으로 각 서브블록 모드 별로 1비트씩 엔트로피 복호화하여 사용가능한지 여부를 설정한다.
또한 사용 가능한 서브블록 모드들의 조합에 대한 정보 부호화시 부호화기와 복호화기가 약속한 표의 인덱스값을 부호화한 경우, 표의 인덱스값을 복호화한 후 약속된 표를 이용하여 각 서브블록 모드들이 사용가능한지의 여부를 설정하도록 할 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 복호화(Binary Coding) 방법을 이용하여 예측 또는 변환에 사용 가능한 서브 블록들의 조합에 대한 정보들을 추출 할 수도 있다.
또한 인트라 모드인지 인터 모드인지에 따라 사용 가능한 서브블록 모드들의 조합을 다르게 설정하기로 약속된 경우, 인트라 모드를 위한 서브블록 모드 조합 정보와 인터 모드를 위한 서브블록 모드 조합 정보를 복호화한다.
예측 또는 변환에 사용 가능한 서브블록 모드 정보를 추출한 후, 추출한 정보를 이용하여 예측 모드 또는 변환 타입 정보 복호화에 필요한 Table을 만든다. 이때 기본 Table에서 사용 가능하지 않은 블록모드들은 삭제하고 사용 가능한 블록모드들에만 index를 재할당하도록 한다. 사용 가능한 서브블록들의 모드들의 개수에 따라 예측 모드 또는 변환정보를 엔트로피 복호화하기 위한 비트수를 결정하고 결정된 비트수만큼 엔트로피 복호화를 수행하여 예측모드 또는 변환정보를 비트스트림으로부터 추출한다. 이때 수정된 Table을 이용하도록 한다.
이하에서는 설명의 편의를 위해, 예측모드(인트라 예측 또는 인터예측)에 따라 예측 또는 변환을 위해 사용가능한 서브블록 모드 조합의 정보를 비트스트림으로부터 추출하고 설정된 정보에 따라 복호화하는 방법에 대한 내용은 기술하지 않지만, 예측모드에 따라 각각 설정하는 것도 적용 가능하다. 또한, 시퀀스 헤더와 픽처 헤더 상에서 데이터를 복호화하는 것으로 예를 들었지만, 슬라이스 헤더 또는 매크로블록 헤더에서 복호화할 수도 있다.
이하에서는 사용 가능한 서브블록 모드들의 조합과 예측에 사용된 현재블록의 모드를 부호화하는 두번째 방법에 따른 복호화 방법을 설명한다.
두번째 방법에 따르면, 시퀀스 헤더 또는 각 픽쳐의 헤더에 예측 또는 변환을 위한 서브블록들의 조합을 선택하여 사용할지 여부를 나타내는 플래그를 복호화하고 복호화한 플래그값이 선택하여 사용하지 않음을 나타내는 경우, 부호화기와 복호화기가 약속한 기본 서브블록 조합에 있는 모든 서브블록 모드들을 예측 또는 변환에 사용한다.
복호화한 플래그값이 서브블록들의 조합을 선택하여 사용함을 나타내는 경우, 어떤 종류의 블록 모양들이 사용가능한지를 나타내는 플래그들을 시퀀스 헤더 또는 각 픽쳐의 헤더에서 추출한다. 예를 들어, use_MxMblock_flag, use_Mx(M/2)block_flag, use_(M/2)xMblock_flag값을 1비트씩 엔트로피 복호화하고 복호화한 값이 예측 또는 변환에 사용가능함을 나타내는 값인 경우, 해당 블록 모양에 속하는 다양한 크기의 블록들은 모두 사용 가능함으로 설정한다.
또는 어떤 종류의 블록 모양들이 사용가능한지를 나타내는 플래그들을 시퀀스 헤더 또는 각 픽쳐의 헤더에서 추출하고 추출한 플래그값이 예측 또는 변환에 사용가능함을 나타내는 값인 경우 해당 종류에 속하는 각 서브블록들에 대해 크기별로 사용 가능함을 나타내는 플래그를 추가적으로 엔트로피 복호화하여 사용가능한 블록 모드 조합을 결정할 수도 있다.
또한 사용 가능한 서브블록 모드들의 조합에 대한 정보 부호화시 부호화기와 복호화기가 약속한 표의 인덱스값을 부호화한 경우, 표의 인덱스값을 복호화한 후 약속된 표를 이용하여 각 서브블록 모드들이 사용가능한지의 여부를 설정하도록 할 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 복호화(Binary Coding) 방법을 이용하여 예측 또는 변환에 사용 가능한 서브 블록들의 조합에 대한 정보들을 추출 할 수도 있다.
예측 또는 변환에 사용가능한 서브블록 모드 정보를 추출한 후, 추출한 정보를 이용하여 예측 모드 또는 변환 타입 정보 복호화에 필요한 Table을 만든다. 이때 기본 Table에서 사용 가능하지 않은 블록모드들은 삭제하고 사용 가능한 블록모드들에만 index를 재할당하도록 한다. 사용 가능한 서브블록들의 모드들의 개수에 따라 예측 모드 또는 변환정보를 엔트로피 복호화하기 위한 비트수를 결정하고 결정된 비트수만큼 엔트로피 복호화를 수행하여 예측모드 또는 변환정보를 비트스트림으로부터 추출한다. 이때 수정된 Table을 이용하도록 한다.
이하에서는 사용 가능한 서브블록 모드들의 조합과 예측에 사용된 현재블록의 모드를 부호화하는 세 번째 방법에 따른 복호화 방법을 설명한다.
세 번째 방법에 따르면, 시퀀스 헤더 또는 각 픽쳐의 헤더에 예측 또는 변환을 위한 서브블록들의 조합을 선택하여 사용할지 여부를 나타내는 플래그를 복호화하고 복호화한 플래그 값이 선택하여 사용하지 않음을 나타내는 경우, 부호화기와 복호화기가 약속한 기본 서브블록 조합에 있는 모든 서브블록 모드들을 예측 또는 변환에 사용한다.
복호화한 플래그 값이 서브블록들의 조합을 선택하여 사용함을 나타내는 경우 서브블록 크기 별 그룹별 사용가능한지를 나타내는 플래그들을 시퀀스 헤더 또는 각 픽쳐의 헤더에서 추출한다. 예를 들어, 매크로블록이 32x32인 경우, use_larger_(M/2)x(N/2)blk_flag, use_larger_(M/4)x(N/4)blk_flag, use_larger_(M/8)x(N/8)blk_flag를 복호화를 위해 1비트씩 엔트로피 복호화하고 복호화한 값이 예측 또는 변환에 사용 가능함을 나타내는 값인 경우, 해당 크기 그룹에 속하는 다양한 모양의 블록들은 모두 사용 가능함으로 설정한다.
또는 어떤 크기그룹의 서브블록들이 사용가능한지를 나타내는 플래그들을 시퀀스 헤더 또는 각 픽쳐의 헤더에서 추출하고 추출한 플래그 값이 예측 또는 변환에 사용 가능함을 나타내는 값인 경우 해당 그룹에 속하는 다양한 서브블록 모양들에 대해 사용 가능함을 나타내는 플래그를 추가적으로 엔트로피 복호화하여 사용 가능한 블록 모드 조합을 결정할 수도 있다.
또한 사용 가능한 서브블록 모드들의 조합에 대한 정보 부호화시 부호화기와 복호화기가 약속한 표의 인덱스 값을 부호화한 경우, 표의 인덱스 값을 복호화한 후 약속된 표를 이용하여 각 서브블록 모드들이 사용가능한지의 여부를 설정하도록 할 수도 있다.
또한 사용 가능한 서브블록 모드들의 조합에 대한 정보 부호화시 부호화기와 복호화기가 약속한 표의 인덱스 값을 부호화한 경우, 표의 인덱스 값을 복호화한 후 약속된 표를 이용하여 각 서브블록 모드들이 사용가능한지의 여부를 설정하도록 할 수도 있다.
이때, 단항 코드(Unary Code), 트런케이티드 단항 코드(Truncated Unary Code) 및 익스포넨셜 골룸 코드(Exp-Golomb Code) 등과 같은 다양한 이진 복호화(Binary Coding) 방법을 이용하여 예측 또는 변환에 사용 가능한 서브 블록들의 조합에 대한 정보들을 추출 할 수도 있다.
예측 또는 변환에 사용가능한 서브블록 모드 정보를 추출한 후, 추출한 정보를 이용하여 예측 모드 또는 변환 타입 정보 복호화에 필요한 Table을 만든다. 이때 기본 Table에서 사용 가능하지 않은 블록모드들은 삭제하고 사용 가능한 블록모드들에만 index를 재할당하도록 한다. 사용 가능한 서브블록들의 모드들의 개수에 따라 예측 모드 또는 변환정보를 엔트로피 복호화하기 위한 비트수를 결정하고 결정된 비트수만큼 엔트로피 복호화를 수행하여 예측모드 또는 변환정보를 비트스트림으로부터 추출한다. 이때 수정된 Table을 이용하도록 한다.
후보 블록 타입 설정기는 사용자 등에 의해 입력되는 블록 타입의 후보를 설정하거나 입력 영상의 특성에 따라 블록 타입의 후보를 스스로 결정하여 설정할 수 있다. 이때, 블록 타입의 후보는 블록 타입이 매크로블록의 크기 또는 최소 서브블록의 크기인 경우, 입력 영상의 가로 세로 비율에 따라 결정되어 설정될 수 있으며, 블록 타입이 서브블록 모드 조합인 경우, 매크로블록의 크기, 인트라 예측 또는 인터 예측에 따라 다르게 설정될 수 있다.
블록 타입 결정기는 비트스트림에 결정된 블록 타입에 대한 정보를 한 번만 포함시키거나 입력 영상의 픽처마다 포함시킬 수 있다.따라서, 본 발명의 다른 실시예에 따른 영상 부호화 방법에 따르면, 본 발명의 다른 실시예에 따른 영상 부호화 장치는 16x16 크기 이상의 매크로블록을 이용하여 영상을 부호화하기 위한 블록 타입의 후보를 설정하고, 블록 타입의 후보별로 입력 영상을 부호화하며, 블록 타입의 후보별 부호화 비용에 따라 블록 타입을 결정하며, 결정된 블록 타입으로 부호화된 영상 데이터 및 결정된 블록 타입에 대한 정보를 포함하는 비트스트림을 생성한다.
여기서, 블록 타입은 매크로블록의 크기, 최소 서브블록의 크기 및 서브블록 모드 조합 중 하나 이상일 수 있으며, 전술한 실시예들에 의한 부호화 방법을 사용하여 부호화한다. 본 발명의 다른 실시예에 따른 영상 부호화 장치는 블록 타입의 후보를 설정하는 데 있어서, 입력되는 블록 타입의 후보를 설정하거나 입력 영상의 특성에 따라 블록 타입의 후보를 결정하여 설정할 수 있는데, 블록 타입의 후보는 블록 타입이 매크로블록의 크기 또는 최소 서브블록의 크기인 경우, 입력 영상의 가로 세로 비율에 따라 결정되어 설정되거나, 블록 타입이 서브블록 모드 조합인 경우, 인트라 예측 또는 인터 예측에 따라 다르게 설정될 수 있다. 또한, 본 발명의 다른 실시예에 따른 영상 부호화 장치는 비트스트림을 생성하는 데 있어서, 비트스트림에 결정된 블록 타입에 대한 정보를 한 번만 포함시키거나 입력 영상의 픽처마다 포함시킬 수 있다.
또한, 본 발명의 다른 실시예에 따른 영상 복호화 장치는 비트스트림으로부터 16x16 크기 이상의 매크로블록을 이용하여 영상을 복호화하기 위한 블록 타입에 대한 정보 및 부호화된 영상 데이터를 추출하고, 블록 타입에 대한 정보로 식별되는 블록 타입에 따라 부호화된 영상 데이터를 복호화하여 복원 영상을 생성하는 영상 복호화기를 포함하여 구성될 수 있다.
여기서, 블록 타입은 매크로블록의 크기, 최소 서브블록의 크기 및 서브블록 모드 조합 중 하나 이상일 수 있는데, 본 발명의 다른 실시예에 따른 영상 복호화 장치는 비트스트림으로부터 블록 타입에 대한 정보를 한 번만 추출하거나 입력 영상의 픽처마다 또는 슬라이스마다 추출할 수 있다.
따라서, 본 발명의 다른 실시예에 따른 영상 복호화 방법에 따르면, 본 발명의 다른 실시예에 따른 영상 복호화 장치는 비트스트림으로부터 16x16 크기 이상의 매크로블록을 이용하여 영상을 복호화하기 위한 블록 타입에 대한 정보 및 부호화된 영상 데이터를 추출하고, 블록 타입에 대한 정보로 식별되는 블록 타입에 따라 부호화된 영상 데이터를 복호화하여 복원 영상을 생성한다.
이하에서는 도 8 내지 도 17을 통해, 본 발명의 다른 실시예에 따른 영상 부호화 장치를 블록 타입의 종류에 따라 구현한 구현 예에 대해 설명한다.
도 8은 본 발명의 다른 실시예에 따른 영상 부호화 장치의 제 1 구현 예를 나타낸 블록 구성도이다.
본 발명의 다른 실시예에 따른 영상 부호화 장치의 제 1 구현 예에 따르면, 영상 부호화 장치(800)는 후보 매크로블록 크기 설정기(Candidate Macroblock Size Configuration Unit, 810), 영상 부호화기(Video Encoder, 820) 및 매크로블록 크기 결정기(Macroblock Size Determiner, 830)를 포함하여 구성될 수 있다.
후보 매크로블록 크기 설정기(810)는 본 발명의 다른 실시예에 따른 영상 부호화 장치(800)가 사용할 수 있는 매크로블록 크기의 후보를 설정한다. 매크로블록 크기의 후보는 사용자 등에 의해 입력되거나 기타 다른 장치로부터 입력되는 정해진 후보군(예를 들어, 64x64 크기, 32x32 크기, 16x16 크기)이거나, 영상의 특성에 따라 결정될 수 있다.
매크로블록 크기의 후보가 영상의 특성에 따라 결정되는 경우를 예를 들면, 영상의 해상도가 4K x 2K의 영상이고 가로와 세로 비율이 16:9인 경우, 매크로블록 크기의 후보는 128x128 크기, 128x64 크기, 64x128 크기, 64x64 크기, 64x32 크기, 32x64 크기, 32x32 크기, 32x16 크기, 16x32 크기, 16x16 크기일 수 있다.
영상 부호화기(820)는 도 6을 통해 전술한 본 발명의 일 실시예에 따른 영상 부호화 장치(600)로 구현될 수 있다. 즉, 영상 부호화기(820)는 후보 매크로블록 크기 설정기(810)에 의해 설정된 매크로블록 크기의 후보별로 영상을 부호화하여, 매크로블록 크기별 영상 데이터를 생성한다. 이때, 각 매크로블록은 내부적으로 더 작은 블록인 서브블록(여기서, 서브블록으로 결정되는 최소 서브블록 크기는 4x4 화소 단위의 블록일 수 있음)으로 분할되어 인트라 부호화 또는 인터 부호화를 수행한다.
영상 부호화기(820)의 또 다른 동작 방법으로 16x16 크기와 32x32 크기를 매크로블록의 크기로 하여 부호화해 본 후, 32x32 크기의 매크로블록을 사용했을 때 부호화 비용이 더 큰 경우 16x16 크기를 매크로블록의 크기로 결정한다. 만약, 32x32 크기의 매크로블록을 사용했을 때의 부호화 비용이 더 작은 경우에는 같은 방식으로 64x64 크기의 매크로블록을 사용하여 부호화했을 때의 비용과 비교하여 매크로블록의 크기를 결정한다.
또한, 영상 부호화기(820)의 또 다른 동작 방법으로 16x16 크기, 32x16 크기, 16x32 크기, 32x32 크기를 매크로블록 크기로 하여 부호화해 본 후, 가장 부호화 효율이 좋은 매크로블록의 크기를 선택하고 선택된 매크로블록의 가로, 세로, 가로와 세로를 각각 2 배 했을 때의 화소 블록을 매크로블록으로 사용하여 부호화한다. 만약, 매크로블록의 크기를 키웠을때의 부호화 효율이 좋아지지 않으면 부호화를 멈추고 매크로블록의 크기를 결정한다.
매크로블록 크기 결정기(830)는 영상 부호화기(820)가 매크로블록 크기별로 영상을 부호화했을 때의 부호화 비용(즉, 매크로블록 크기별 영상 데이터의 부호화 비용)을 계산하고 각 매크로블록 크기별로 부호화 비용을 서로 비교하여 매크로블록 크기의 후보들 중 최적의 매크로블록 크기를 결정한다. 여기서, 최적의 매크로블록 크기는 각 매크로블록 크기의 후보들 중 해당 매크로블록 크기로 부호화했을 때의 부호화 비용이 최소인 매크로블록 크기가 될 수 있지만, 부호화 비용을 이용하는 경우라면 그를 이용하여 다양하게 결정될 수 있다.
또한, 매크로블록 크기 결정기(830)는 매크로블록 크기가 결정되면, 해당 매크로블록 크기로 부호화된 영상 데이터를 비트스트림으로 생성하는데, 이때 결정된 매크로블록 크기에 대한 정보를 전술한 실시예들에 의해 매크로블록 크기 부호화 방법을 사용하여 부호화하여 비트스트림에 포함시킬 수 있다. 이러한 매크로블록 크기에 대한 정보는 전체 영상에 대한 비트스트림에 한 번만 포함될 수도 있지만, 전체 영상의 픽처마다 비트스트림에 포함될 수도 있다. 또한 본 발명의 다른 실시예에 의하면, 부호화/복호화의 단위인 매크로블록 사이즈는 픽쳐, 슬라이스 또는 매크로블록 계층마다 다르게 선택될 수 있다.
도 9는 본 발명의 다른 실시예에 따른 영상 부호화 방법의 제 1 구현 예를 설명하기 위한 순서도이다.
영상 부호화 장치(800)는 매크로블록 크기의 후보를 설정하고(S910), 매크로블록 크기의 후보별로 입력 영상을 부호화하여(S920), 매크로블록 크기의 후보별 영상 데이터의 부호화 비용에 따라 매크로블록 크기를 결정하며(S930), 결정된 매크로블록 크기로 부호화된 영상 데이터 및 결정된 매크로블록 크기에 대한 정보를 포함하는 비트스트림을 생성한다(S940). 영상 부호화 장치(800)가 매크로블록 크기의 후보를 설정하고, 매크로블록 크기의 후보별로 영상을 부호화하며, 매크로블록 크기의 후보별로 부호화된 영상 데이터의 부호화 비용에 따라 매크로블록 크기를 결정하는 것에 대해서는 도 8을 통해 전술하였으므로, 상세한 설명은 생략한다.
도 24는 본 발명의 다른 실시예에 따른 영상 복호화 장치의 제 1 구현예를 나타낸 블록 구성도이다.
본 발명의 다른 실시예에 따른 영상 복호화 장치의 제 1 구현 예에 따르면, 영상 복호화 장치는 매크로블록 크기 설정기와 영상 복호화기를 포함하여 구성될 수 있다.
매크로블록 크기 설정기는 매크로블록단위 복호화를 수행하기 전에 매크로블록 크기에 대한 정보를 전술한 실시예에 의한 매크로블록 크기 복호화 방법을 사용하여 비트스트림으로부터 매크로블록 크기 정보를 추출하고 추출한 정보를 이용하여 매크로블록 크기를 설정한다.
매크로블록 크기에 대한 정보는 전체 영상에 대한 비트스트림에 한번만 포함하기로 부호화기와 약속된 경우 전제 영상에 대한 비트스트림에 한번만 복호화하여 전체 영상 복호화에 추출한 매크로블록 크기를 이용하여 영상을 복원할 수도 있고 픽쳐마다 매크로블록 크기를 부호화/복호화하기로 약속된 경우 비트스트림으로부터 각 픽쳐마다 매크로블록 크기를 추출하여 각 픽쳐마다 다른 매크로블록 크기를 사용하여 영상을 복원할 수도 있다. 또한 본 발명에 따른 다른 실시예에 의하면 매크로블록 크기는 픽쳐, 슬라이스 또는 매크로블록 계층마다 추출하도록 하여 선택된 매크로블록의 크기를 이용하여 영상을 복원할 수도 있다.
영상 복호화기는 도 7을 통해 전술한 본 발명의 일 실시예에 따른 영상 복호화기로 구현될 수 있다. 매크로블록 데이터를 복호화하는 방법은 도20~도23를 통해 전술한 본 발명의 일 실시예에 따른 방법을 통해 복호화 할 수 있다. 도 20~도 23을 통해서도 기술하였지만, 매크로블록 데이터 복호화하는 방법은 매크로블록의 크기에 따라 달라지게 된다.
도 10은 본 발명의 다른 실시예에 따른 영상 부호화 장치의 제 2 구현 예를 간략하게 나타낸 블록 구성도이다.
본 발명의 다른 실시예에 따른 영상 부호화 장치의 제 2 구현 예에 따르면, 영상 부호화 장치(1000)는 후보 최소 서브블록 크기 설정기(Candidate Minimum Subblock Size Configuration Unit, 1010), 영상 부호화기(Video Encoder, 1020) 및 최소 서브블록 크기 결정기(Minimum Subblock Size Determiner, 1030)를 포함하여 구성될 수 있다.
후보 최소 서브블록 크기 설정기(810)는 본 발명의 다른 실시예에 따른 영상 부호화 장치(800)가 사용할 수 있는 최소 서브블록 크기의 후보를 설정한다. 후보 최소 서브블록 크기의 후보는 사용자 등에 의해 입력되거나 기타 다른 장치로부터 입력되는 정해진 후보군(예를 들어, 4x4 크기, 8x8 크기, 16x16 크기 등)이거나, 영상의 특성에 따라 결정될 수 있다.
최소 서브블록 크기의 후보가 영상의 특성에 따라 결정되는 경우를 예를 들면, 영상의 크기와 가로와 세로 비율 등을 고려하여 결정될 수 있다. 예를 들어, 최소 서브블록 크기의 후보는 4x4 크기, 4x8 크기, 8x4 크기, 8x8 크기, 16x8 크기, 8x16 크기, 16x16 크기 등일 수 있다.
최소 서브블록 크기에 따른 매크로블록의 서브블록 모드를 예시적으로 나타낸 도 11 및 도 12를 참조하면, 최소 서브블록 크기에 따라 매크로블록은 도시한 바와 같이 더 작은 블록으로 분할되어 인트라 예측 부호화 또는 인터 예측 부호화가 수행될 수 있다. 도 11에서는 매크로블록이 64x64 크기의 매크로블록이고 최소 서브블록 크기가 4x8인 경우 매크로블록의 서브블록 모드를 예시적으로 나타내었고, 도 12에서는 매크로블록이 64x64 크기의 매크로블록이고 최소 서브블록 크기가 8x8인 경우 매크로블록의 서브블록 모드를 예시적으로 나타내었다.
영상 부호화기(1020)는 도 6을 통해 전술한 본 발명의 일 실시예에 따른 영상 부호화 장치(600)로 구현될 수 있다. 즉, 영상 부호화기(1020)는 후보 최소 서브블록 크기 설정기(1010)에 의해 설정된 최소 서브블록 크기의 후보별로 해당 서브블록 크기 이상의 서브블록만을 이용하여 영상을 부호화함으로써 최소 서브블록 크기별로 부호화된 영상 데이터를 생성한다.
최소 서브블록 크기 결정기(1030)는 영상 부호화기(1020)가 최소 서브블록 크기별로 영상을 부호화했을 때의 부호화 비용(즉, 최소 서브블록 크기별로 부호화된 영상 데이터의 부호화 비용)을 계산하고 각 최소 서브블록 크기별로 부호화된 영상 데이터의 부호화 비용을 서로 비교하여 최소 서브블록 크기의 후보들 중 최적의 최소 서브블록 크기를 결정한다. 여기서, 최적의 최소 서브블록 크기는 각 최소 서브블록 크기의 후보들 중 해당 최소 서브블록 크기로 영상을 부호화했을 때의 부호화 비용이 최소인 최소 서브블록 크기가 될 수 있지만, 부호화 비용을 이용하는 경우라면 그를 이용하여 다양하게 결정될 수 있다.
또한, 최소 서브블록 크기 결정기(1030)는 최소 서브블록 크기가 결정되면, 해당 최소 서브블록 크기로 부호화된 영상 데이터를 비트스트림으로 생성하는데, 이때 결정된 최소 서브블록 크기에 대한 정보를 그대로 또는 부호화하여 비트스트림에 포함시킬 수 있다. 이러한 최소 서브블록 크기에 대한 정보는 전체 영상에 대한 비트스트림에 한 번만 포함될 수도 있지만, 전체 영상의 픽처마다 비트스트림에 포함될 수도 있다.
도 13은 본 발명의 다른 실시예에 따른 영상 부호화 방법의 제 2 구현 예를 설명하기 위한 순서도이다.
영상 부호화 장치(1000)는 최소 서브블록 크기의 후보를 설정하고(S1310), 최소 서브블록 크기의 후보별로 입력 영상을 부호화하여(S1320), 최소 서브블록 크기의 후보별 영상 데이터의 부호화 비용에 따라 최소 서브블록 크기를 결정하며(S1330), 결정된 최소 서브블록 크기로 부호화된 영상 데이터 및 결정된 최소 서브블록 크기에 대한 정보를 포함하는 비트스트림을 생성한다(S1340). 영상 부호화 장치(1000)가 최소 서브블록 크기의 후보를 설정하고, 최소 서브블록 크기의 후보별로 영상을 부호화하며, 최소 서브블록 크기의 후보별로 부호화된 영상 데이터의 부호화 비용에 따라 최소 서브블록 크기를 결정하는 것에 대해서는 도 10을 통해 전술하였으므로, 상세한 설명은 생략한다.
도 25는 본 발명의 다른 실시예에 따른 영상 복호화 장치의 제 2 구현예를 나타낸 블록 구성도이다.
본 발명의 다른 실시예에 따른 영상 복호화 장치의 제 2 구현 예에 따르면, 영상 복호화 장치는 최소 서브블록 크기 설정기와 영상 복호화기를 포함하여 구성될 수 있다.
최소 서브블록 크기 설정기는 매크로블록단위 복호화를 수행하기 전에 최소 서브블록 크기에 대한 정보를 전술한 실시예에 의한 최소 서브블록 크기 복호화 방법을 사용하여 비트스트림으로부터 최소 서브블록 크기 정보를 추출하고 추출한 정보를 이용하여 최소 서브블록 크기를 설정한다.
최소 서브블록 크기에 대한 정보는 전체 영상에 대한 비트스트림에 한번만 포함하기로 부호화기와 약속된 경우 전제 영상에 대한 비트스트림에 한번만 복호화하여 전체 영상 복호화에 추출한 최소 서브블록 크기를 이용하여 영상을 복원할 수도 있고 픽쳐마다 최소 서브블록 크기를 부호화/복호화하기로 약속된 경우 비트스트림으로부터 각 픽쳐마다 최소 서브블록 크기를 추출하여 각 픽쳐마다 다른 최소 서브블록 크기를 사용하여 영상을 복원할 수도 있다. 또한 본 발명에 따른 다른 실시예에 의하면 최소 서브블록 크기는 픽쳐, 슬라이스 또는 매크로블록 계층마다 추출하도록 하여 선택된 최소 서브블록의 크기를 이용하여 영상을 복원할 수도 있다.
영상 복호화기는 도 7을 통해 전술한 본 발명의 일 실시예에 따른 영상 복호화기로 구현될 수 있다. 매크로블록 데이터를 복호화하는 방법은 도20~도23를 통해 전술한 본 발명의 일 실시예에 따른 방법을 통해 복호화 할 수 있다. 도 20~도 23을 통해서도 기술하였지만, 매크로블록 데이터를 부호화/복호화하는 방법은 최소 서브블록의 크기에 따라서도 다음의 예와 같이 달라지게 된다.
예를 들어 P픽쳐에 대해서 매크로블록의 크기가 32x32이고 매크로블록이 4개의 16x16 서브블록으로 분할되었으며 매크로블록 타입과 서브브블록 타입 부호화에 표 2와 표4를 사용하여 부호화한다고 가정한다.
첫번째 경우로 최소블록의 크기가 4x4인 경우, 매크로블록 타입 부호화시 표 2의 인덱스값 3을 부호화한 후, 32x32내 각 16x16블록들에 대해서 4개의 서브블록 타입 부호화시 표2의 인덱스값 0을 부호한다. 즉, 부호화하는 총 데이터는 3, 0, 0, 0, 0이다.
두 번째 경우로 최소블록의 크기가 16x16인 경우, 매크로블록 타입 부호화시 표 2의 인덱스값 3을 부호화한다. 즉, 부호화하는 총 데이터는 3이다.
이와 동일하게 복호화기에서의 동작을 살펴보면 첫번째 경우, 매크로블록의 타입을 엔트로피 복호화한다. 복호화한 매크로블록의 타입값을 표2에 적용하면 32x32 매크로블록은 4개의 16x16으로 분할되었음을 알 수 있고 각각의 16x16블록은 더 작은 블록으로 분할될 수 있으므로 (최소 서브블록의 크기는 4x4이기 때문에)음을 의미하므로 각 16x16블록의 서브블록 타입을 복호화해야 한다. 다음으로 엔트로피 복호화한 서브블록의 타입값이 0이므로 첫번째 16x16 블록은 16x16예측이 되었음을 알 수 있다. 이후 첫번재 16x16블록이 더 작은 블록으로 분할되지 않았으므로 이와 동일하게 나머지 16x16의 서브블록 타입들을 복호화한다.
두 번째 경우, 매크로블록의 타입을 엔트로피 복호화한다. 복호화한 매크로블록의 타입값을 표2에 적용하면 32x32 매크로블록은 4개의 16x16으로 분할되었음을 알 수 있고 각각의 16x16블록은 더 작은 블록으로 분할될수 없으므로 (최소 서브블록의 크기는 16x16이기 때문에) 현재 매크로블록의 매크로블록 타입과 서브블록 타입 복호화를 마친다.
도 14는 본 발명의 다른 실시예에 따른 영상 복호화 장치의 제 3 구현 예를 나타낸 블록 구성도이다.
본 발명의 다른 실시예에 따른 영상 부호화 장치의 제 3 구현 예에 따르면, 영상 부호화 장치(1400)는 후보 서브블록 모드 조합 설정기(Candidate Subblock Mode Combination Configuration Unit, 1410), 영상 부호화기(Video Encoder, 1420) 및 서브블록 모드 조합 결정기(Subblock Mode Combination Determiner, 1430)를 포함하여 구성될 수 있다.
후보 서브블록 모드 조합 설정기(1410)는 본 발명의 다른 실시예에 따른 영상 부호화 장치(1400)가 사용할 수 있는 서브블록 모드 조합의 후보를 설정한다. 서브블록 모드의 후보는 사용자 등에 의해 입력되거나 기타 다른 장치로부터 입력되는 정해진 후보군(예를 들어, 4x4와 8x8의 조합, 16x16, 32x32, 64x64의 조합 등)이거나, 인트라 예측 또는 인터 예측 등 예측 방식에 따라 다르게 결정될 수 있다.
서브블록 모드 조합을 예시적으로 나타낸 도 15 및 도 16을 참조하면, 64x64 크기의 매크로블록에 대한 서브블록 모드 조합이 도시한 바와 같이 다양하게 설정되거나 결정될 수 있다. 도 15에서는 64x64 크기의 매크로블록에 대한 서브블록 모드 조합으로 64x64, 32x32, 16x16, 8x8의 조합이 설정된 경우를 예시적으로 나타내었고, 도 16에서는 64x64 크기의 매크로블록에 대한 서브블록 모드 조합으로 64x64, 64x32, 32x64, 32x32, 32x16, 16x32, 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4의 조합이 설정된 경우를 예시적으로 나타내었다.
영상 부호화기(1420)는 도 6을 통해 전술한 본 발명의 일 실시예에 따른 영상 부호화 장치(600)로 구현될 수 있다. 즉, 영상 부호화기(1420)는 후보 서브블록 모드 조합 설정기(1410)에 의해 설정된 서브블록 모드 조합의 후보별로 해당 서브블록 모드 조합 내의 서브블록만을 이용하여 영상을 부호화함으로써 서브블록 모드 조합별로 부호화된 영상 데이터를 생성한다.
서브블록 모드 조합 결정기(1430)는 영상 부호화기(1420)가 서브블록 모드 조합별로 영상을 부호화했을 때의 부호화 비용(즉, 서브블록 모드 조합별로 부호화된 영상 데이터의 부호화 비용)을 계산하고 각 서브블록 모드 조합별로 부호화된 영상 데이터의 부호화 비용을 서로 비교하여 서브블록 모드 조합의 후보들 중 최적의 서브블록 모드 조합을 결정한다. 여기서, 최적의 서브블록 모드 조합은 각 서브블록 모드 조합의 후보들 중 해당 서브블록 모드 조합 내의 서브블록 모드만을 이용하여 영상을 부호화했을 때의 부호화 비용이 최소인 서브블록 모드 조합이 될 수 있지만, 부호화 비용을 이용하는 경우라면 그를 이용하여 다양하게 결정될 수 있다.
또한, 서브블록 모드 조합 결정기(1430)는 서브블록 모드 조합이 결정되면, 해당 서브블록 모드 조합으로 부호화된 영상 데이터를 비트스트림으로 생성하는데, 이때 결정된 서브블록 모드 조합에 대한 정보를 그대로 또는 부호화하여 비트스트림에 포함시킬 수 있다. 이러한 서브블록 모드 조합에 대한 정보는 전체 영상에 대한 비트스트림에 한 번만 포함될 수도 있지만, 전체 영상의 픽처마다 비트스트림에 포함될 수도 있다.
도 17은 본 발명의 다른 실시예에 따른 영상 부호화 방법의 제 3 구현 예를 설명하기 위한 순서도이다.
영상 부호화 장치(1400)는 서브블록 모드 조합의 후보를 설정하고(S1710), 서브블록 모드 조합의 후보별로 입력 영상을 부호화하여(S1720), 서브블록 모드 조합의 후보별 영상 데이터의 부호화 비용에 따라 서브블록 모드 조합을 결정하며(S1730), 결정된 서브블록 모드 조합으로 부호화된 영상 데이터 및 결정된 서브블록 모드 조합에 대한 정보를 포함하는 비트스트림을 생성한다(S1740). 영상 부호화 장치(1400)가 서브블록 모드 조합의 후보를 설정하고, 서브블록 모드 조합의 후보별로 영상을 부호화하며, 서브블록 모드 조합의 후보별로 부호화된 영상 데이터의 부호화 비용에 따라 서브블록 모드 조합을 결정하는 것에 대해서는 도 14를 통해 전술하였으므로, 상세한 설명은 생략한다.
도 26은 본 발명의 다른 실시예에 따른 영상 복호화 장치의 제 3 구현예를 나타낸 블록 구성도이다.
본 발명의 다른 실시예에 따른 영상 복호화 장치의 제 3 구현 예에 따르면, 영상 복호화 장치는 예측 또는 변환에 사용 가능한 서브블록 모드 설정기, 표 생성기, 영상 복호화기를 포함하여 구성될 수 있다.
서브블록 모드 설정기는 매크로블록단위 복호화를 수행하기 전에 예측 또는 변환에 사용 가능한 서브블록 모드 조합에 대한 정보를 전술한 실시예에 의한 예측 또는 변환에 사용 가능한 서브블록 모드 정보 복호화 방법을 사용하여 비트스트림으로부터 사용 가능한 서브블록 모드 조합 정보를 추출하고 추출한 정보를 이용하여 다양한 서브블록 모드들 각각에 대하여 사용가능한지의 여부를 설정한다.
서브블블록 모드 조합에 대한 정보는 전체 영상에 대한 비트스트림에 한번만 포함하기로 부호화기와 약속된 경우 전제 영상에 대한 비트스트림에 한번만 복호화하여 전체 영상 복호화에 추출한 서브블블록 모드 조합을 이용하여 영상을 복원할 수도 있고 픽쳐마다 서브블블록 모드 조합을 부호화/복호화하기로 약속된 경우 비트스트림으로부터 각 픽쳐마다 사용가능한 서브블블록 모드 조합 정보를 추출하여 각 픽쳐마다 다른 서브블록 모드 조합을 사용하여 영상을 복원할 수도 있다. 또한 본 발명에 따른 다른 실시예에 의하면 상기 정보는 픽쳐, 슬라이스 또는 매크로블록 계층마다 추출하도록 하여 선택된 서브블록 모드들만을 이용하여 영상을 복원할 수도 있다.
표 생성기는 서브블록 모드 설정기에서 추출한 예측 또는 변환에 사용가능한 서브블록 모드 정보를 이용하여 매크로블록 데이터 복호화에 필요한 Table을 업데이트 한다. 부호화기와 약속한 기본 Table에서 사용가능하지 않는 블록모드들은 삭제하고 사용 가능한 블록모드들에만 index를 재할당하도록 한다.
영상 복호화기는 도 7을 통해 전술한 본 발명의 일 실시예에 따른 영상 복호화기로 구현될 수 있다. 다만, 본 발명이 다른 실시예에 따른 영상 복호화 장치는 서브블록 모드 설정기에 설정된 예측 또는 변환에 사용가능한 서브블록 모드들만을 이용하여 부호화된 영상 데이터를 복호화함으로써 복원 영상을 생성한다. 특히 복원기에서 매크로블록 데이터 추출시, 사용가능한 서브블록들의 모드들의 개수에 따라 예측 모드 또는 변환정보를 엔트로피 복호화하기 위한 비트수를 달리하여 예측정보를 엔트로피 복호화하고 표 생성기에서 업데이트된 표를 이용하고 예측정보를 설정하도록 한다.
이하에서는, 매크로블록 내의 서브블록에 대해 인트라 예측 또는 인터 예측을 선택적으로 이용하여 부호화하고 복호화하는 방법에 대해 본 발명의 또 다른 실시예로서 설명한다.
통상적인 영상 압축 기술에서는 인터 픽처의 고정된 크기의 어느 한 매크로블록의 서브블록들에 대해서는 동일한 예측 방법을 이용하여 예측 부호화하고 예측 복호화하였다. 즉, 하나의 매크로블록 내의 각 서브블록에 대해 모두 인터 예측 부호화하거나 모두 인트라 예측 부호화하였다. 하지만, 본 발명의 또 다른 실시예에서는 16x16 크기 이상의 매크로블록을 이용하여 영상을 부호화함에 따라 매크로블록 내의 서브블록의 크기도 커지므로, 인터 픽처 내 인터 매크로블록인 경우 매크로블록 내의 각 서브블록에 대해 인터 예측 또는 인트라 예측을 선택적으로 이용하여 부호화하거나 복호화할 수 있다. 또는 인터 픽처의 매크로블록 타입을 인트라 매크로블록, 인터 매크로블록, 인트라/인터 매크로블록의 3가지로 구분하여 매크로블록의 타입이 인트라/인터 매크로블록 타입인 경우에만 적용할 수도 있다. 즉 인트라 매크로블록 내의 각 서브블록은 모두 인트라 예측 부호화하고 인터 매크로블록 내의 각 서브블록은 모두 인터예측 부호화하고 인트라/인터 매크로블록인 경우 매크로블록 내의 각 서브블록에 대해 인터 예측 또는 인트라 예측을 선택적으로 이용하여 부호화하거나 복호화할 수 있다. 매크로블록 내 각 서브블록에 대해 인트라예측 또는 인터 예측을 선택적으로 사용하여 부호화하는 경우에만 각 블록별로 인트라 예측모드를 사용하는지 인터 예측 모드를 사용하는지에 대한 정보를 부호화한다.
이러한 본 발명의 또 다른 실시예에 따른 영상 부호화 장치는 도 6을 통해 전술한 본 발명의 일 실시예에 따른 영상 부호화 장치와 동일 또는 유사하게 구성될 수 있다. 다만, 본 발명의 또 다른 실시예에 따른 영상 부호화 장치는 인트라 예측만을 사용했을 때의 부호화 비용, 인터 예측만 사용했을 때의 부호화 비용, 인트라 예측과 인터 예측을 모두 사용했을 때의 부호화 비용을 비교하여 매크로블록의 타입을 결정하고 선택된 예측 방식에 따라 각 서브블록을 예측 부호화하여 비트스트림을 생성한다. 따라서, 본 발명의 또 다른 실시예에 따르면, 하나의 매크로블록 내에 모든 서브블록이 인터 예측을 이용하여 예측 부호화될 수도 있고, 모든 서브블록이 인트라 예측을 이용하여 예측 부호화될 수도 있으며, 일부 서브블록은 인터 예측 부호화되고 나머지 서브블록은 인트라 예측 부호화될 수 있다.
또한, 본 발명의 또 다른 실시예에 따른 영상 부호화 장치는 매크로블록내 각 서브블록이 인트라 예측 또는 인터예측을 선택적으로 사용할 수 있는 매크로블록 타입인 경우, 각 서브블록에 대해 인터 예측을 이용하여 부호화하는지 또는 인트라 예측을 이용하여 부호화하는지 여부를 나타내는 인터 예측 또는 인트라 예측에 대한 정보를 그대로 또는 부호화하여 비트스트림에 포함시킬 수 있다. 이러한 본 발명의 또 다른 실시예에 따른 영상 부호화 방법에 따르면, 영상 부호화 장치는 16x16 크기 이상의 매크로블록을 인트라 예측만을 사용했을 때의 부호화 비용, 인터예측만 사용했을 때의 부호화 비용, 인트라 예측과 인터 예측을 모두 사용했을 때의 부호화 비용을 비교하여 매크로블록의 타입을 결정하고 선택된 예측방식에 따라 각 서브블록을 예측 부호화하여 비트스트림을 생성한다.
본 발명의 또 다른 실시예에 따른 영상 복호화 장치는 도 7을 통해 전술한 본 발명의 일 실시예에 따른 영상 복호화 장치와 동일 또는 유사하게 구성될 수 있다. 다만, 본 발명의 또 다른 실시예에 따른 영상 복호화 장치는 비트스트림으로부터 16x16 크기 이상의 매크로블록의 매크로블록의 타입을 복호화하여 복원하고 복원된 매크로블록의 타입인 인트라 예측만을 사용할 수 있는 블록인 경우 각 블록의 인트라예측 모드에 대한 정보를 추출하고 복호화하여 복원한다. 매크로블록의 타입이 인터 예측만을 사용할 수 있는 블록인 경우에는 각 블록의 움직임 정보를 추출하고 복호화하여 복원하고 매크로블록의 타입이 각 서브블록별로 인트라 예측모드와 인터 예측 모드를 선택하여 사용할 수 있는 경우, 16x16 크기 이상의 매크로블록 내의 각 서브블록에 대해 선택된 인터 예측 또는 인트라 예측에 대한 정보를 추출하고 복호화하여 복원하고, 복원된 인터 예측 또는 인트라 예측에 대한 정보를 이용하여 각 서브블록에 대해 인터 예측 또는 인트라 예측하여 매크로블록을 복호화하여 복원한다.한편, 전술한 바와 같이 매크로블록 내의 각 서브블록에 대해 인터 예측 또는 인트라 예측을 선택적으로 이용하여 예측할 수도 있지만, 매크로블록의 크기에 따라 인터 예측과 인트라 예측 중 하나만을 이용하여 예측 부호화하거나 인터 예측 또는 인트라 예측을 선택적으로 이용하여 예측 부호화할 수 있다. 즉 매크로블록 크기에 따라 사용가능한 매크로블록의 타입이 다를 수 있다. 예를 들어, 32x32크기의 매크로블록의 각 서브블록에 대해서는 인터예측 또는 인트라 예측을 선택적으로 이용하여 예측 부호화할 수 있지만 16x16 크기의 매크로블록은 매크로블록 단위로 인트라예측 또는 인터예측을 선택적으로 사용한다.
또는, 블록의 크기에 따라 인터 예측과 인트라 예측 중 하나만을 이용하여 예측 부호화하거나 인터 예측 또는 인트라 예측을 선택적으로 이용하여 예측 부호화할 수 있다. 예를 들어, 인터픽처의 인터 매크로블록내 8x8 크기보다 큰 서브블록에 대해서는 인터예측과 인트라 예측 중 하나만을 이용하여 예측 부호화하고 8x8 크기 이하의 블록은 인터예측 또는 인트라예측을 선택적으로 이용하여 예측 부호화할 수 있다. 왜냐하면, 인트라 모드와 인터 모드를 모두 사용 가능한 경우 배경과 같이 텍스쳐가 없는 영역은 인터 모드를 사용하는 것이 좋으며, 이 경우 블록의 크기는 대체적으로 크기 때문이다. 반면, 복잡한 영역은 인트라 모드와 인터 모드 중 하나를 선택하도록 하기 위함인데, 이러한 복잡한 영역은 주로 서브블록의 크기가 작기 때문이다. 이는 16x16 크기 이상의 매크로블록의 경우 매크로블록 내 다양한 영역이 존재할 수 있는데, 매크로블록 단위로 인터 예측 또는 인트라 예측을 선택적으로 이용하여 예측 부호화하는 경우 부호화 효율이 저하될 수 있기 때문이다.
도 18은 본 발명의 또 다른 실시예에 따른 영상 부호화 장치의 일 례를 간략하게 나타낸 블록 구성도이다.
본 발명의 또 다른 실시예에 따른 영상 부호화 장치(1800)의 일 례는 후보 예측 기본 단위 설정기(Candidate Prediction Basic Unit Configuration, 1810), 영상 부호화기(1820) 및 예측 기본 단위 결정기(Prediction Basic Unit Determiner, 1830)를 포함하여 구성될 수 있다.
후보 예측 기본 단위 설정기(1810)는 16x16 크기 이상의 매크로블록에 대한 예측 기본 단위의 후보를 설정한다. 예측 기본 단위의 후보는 사용자 등에 의해 입력되거나 기타 다른 장치로부터 입력되는 정해진 후보군(예를 들어, 16x16, 32x32 등)이거나, 영상의 특성에 따라 결정될 수 있다. 예측 기본 단위의 후보가 영상의 특성에 따라 결정되는 경우를 예를 들면, 영상의 크기와 가로와 세로 비율 등을 고려하여 16x16 이상의 다양한 후보군으로 결정될 수 있다.
여기서, 예측 기본 단위란 매크로블록 내에서 인터 예측 또는 인트라 예측을 선택할 수 있는 블록의 크기를 말한다. 즉, 매크로블록은 인코딩 디코딩 처리의 기본 단위이며 예측 기본 단위는 예측 방법을 선택할 수 있는 단위를 말한다. 예를 들어, 32x32 크기의 매크로블록의 예측 기본 단위가 16x16 크기의 블록인 경우에는 16x16보다 큰 크기의 블록은 인터 예측만을 사용할 수 있으며 16x16 단위로는 인트라 예측 또는 인터 예측을 선택할 수 있다. 이때, 선택된 예측 모드에 대한 정보(인트라 예측인지 또는 인터 예측인지 여부를 나타내는 정보)는 매크로블록이 16x16이하로 분할된 경우 16x16 블록 단위로 부호화된다. 즉, 16x16 내 서브블록들은 예측 모드 정보에 따라 인트라 예측만을 사용하거나 인터 예측만을 사용할 수 있다.
영상 부호화기(1820)는 도 6을 통해 전술한 본 발명의 일 실시예에 따른 영상 부호화 장치(600)로 구현될 수 있다. 즉, 영상 부호화기(1820)는 후보 예측 기본 단위 설정기(1810)에 의해 설정된 예측 기본 단위의 후보별로 해당 예측 기본 단위로 인터 예측 또는 인트라 예측을 선택적으로 이용하여 부호화함으로써 예측 기본 단위의 후보별로 부호화된 영상 데이터를 생성한다.
예측 기본 단위 결정기(1830)는 영상 부호화기(1820)가 예측 기본 단위의 후보별로 영상을 부호화했을 때의 부호화 비용(즉, 예측 기본 단위의 후보별로 부호화된 영상 데이터의 부호화 비용)을 계산하고 각 예측 기본 단위의 후보별로 부호화된 영상 데이터의 부호화 비용을 서로 비교하여 예측 기본 단위의 후보들 중 최적의 예측 기본 단위를 결정한다. 여기서, 최적의 예측 기본 단위는 각 예측 기본 단위의 후보들 중 해당 예측 기본 단위의 후보로 영상을 부호화했을 때의 부호화 비용이 최소인 예측 기본 단위의 후보가 될 수 있지만, 부호화 비용을 이용하는 경우라면 그를 이용하여 다양하게 결정될 수 있다.
또한, 예측 기본 단위 결정기(1830)는 예측 기본 단위가 결정되면, 해당 예측 기본 단위로 부호화된 영상 데이터를 비트스트림으로 생성하는데, 이때 결정된 예측 기본 단위에 대한 정보를 그대로 또는 부호화하여 비트스트림에 포함시킬 수 있다. 이러한 예측 기본 단위에 대한 정보는 전체 영상에 대한 비트스트림에 한 번만 포함될 수도 있지만, 전체 영상의 픽처마다 또는 슬라이스마다 비트스트림에 포함될 수도 있다.
다음은 예측의 기본단위를 결정하는 또 다른 방법이다 (예측 기본 단위 결정기를 사용하지 않는 경우임).
영상 부호화기(1820)는 매크로블록을 각 블록에 대해 인트라예측모드와 인터예측모드를 사용했을 때의 부호화비용을 비교하여 각 블록의 최적의 예측모드를 결정한 후, 매크로블록내 모든 서브블록이 인트라예측 모드를 사용하는 경우에는 매크로블록 타입을 인트라 매크로블록을 나타내는 값으로 매크로블록 타입을 설정하여 부호화하고 매크로블록 내 모든 서브블록이 인터예측만 사용하는 경우에는 매크로블록 타입을 인터 매크로블록을 나타내는 값으로 매크로블록 타입을 설정하여 부호화한다. 만약 매크로블록내 인트라 예측과 인터예측 모드를 사용하는 블록이 있는 경우, 매크로블록 타입을 인트라/인터 매크로블록을 나타내는 값으로 설정하여 부호화하고, 인트라 예측이 선택된 서브블록의 최대크기를 예측의 기본단위로 설정하여 예측의 기본단위를 나타내는 정보와 예측모드 단위로 인트라 예측 모드가 선택되었는지 인터 예측 모드가 선택되었는지를 나타내는 정보를 부호화한다.
이하에서는 선택된 예측의 기본 단위를 부호화하는 방법을 설명한다. 시퀀스 헤더 또는 각 픽처의 헤더에 예측의 기본 단위의 크기를 보낼지에 대한 플래그(Set_predBlockSize_flag)로 예측의 기본 단위를 전송할 수도 있고 전송하지 않을 수도 있도록 한다. 전송하지 않는 경우에는 16x16을 예측의 기본 단위로 사용한다.
만약, 예측의 기본 단위를 지정하는 경우에는 예측의 기본 단위에 대한 정보를 전송한다. 이때, 예측의 기본 단위의 가로 크기와 세로 크기를 따로 설정하도록 하여 임의의 크기의 예측의 기본 단위를 사용할 수도 있다. 또한, 특정 값으로 예측의 기본 단위를 지정할 수도 있고 16x16 크기로부터 몇 배를 키울지에 대한 값을 보낼 수도 있다. 즉, log2(선택된 예측의 기본단위/16)의 값을 부호화하는데, 예를 들어 선택된 예측의 기본 단위가 16x16인 경우 0을 부호화하고 32x32인 경우 1을 부호화한다. 이하에서는 가로와 세로의 크기를 각각 설정하는 것에 대한 내용은 기술하지 않지만, 가로와 세로의 크기를 각각 설정하는 것도 적용 가능하다. 또한, 시퀀스 헤더와 픽처 헤더 상에서 데이터를 부호화하는 것으로 예를 들었지만, 슬라이스 헤더에서 부호화할 수도 있다. 또한, 16x16으로부터 몇 배씩 줄일지에 대한 값을 보낼 수도 있다.
Set_ predBlockSize _flag
if(Set_ predBlockSize _flag == 1)
{
predBlockSize
}
또는
Set_ predBlockSize _flag
if(Set_ predBlockSize _flag == 1)
{
predBlockSize _Width
predBlockSize _height
}
두 번째 방법으로 16x16을 기본 예측의 기본 단위로 설정하고 각 픽처 헤더마다 기본 예측의 기본 단위를 사용할지를 나타내는 플래그를 부호화하고 기본 예측의 기본 단위를 사용하지 않을 경우, 선택된 예측의 기본 단위를 부호화한다. 또는 시퀀스 헤더에서 기본 예측의 기본 단위를 설정할지를 나타내는 플래그를 부호화한 후 기본 예측의 기본 단위를 설정하지 않는 경우 16x16을 기본 예측의 기본 단위로 사용하고 기본 예측의 기본 단위를 설정하는 경우에는 기본 예측의 기본 단위를 부호화할 수도 있다.
시퀀스 헤더:
Set_default predBlockSize _Flag
if(Set_ default predBlockSize _Flag == 1)
{
defalt_ predBlockSize
}
픽처헤더:
use_defalt_ predBlockSize _flag
if(use_defalt_ predBlockSize e_flag == 0)
{
predBlockSize
}
세 번째 방법으로는 첫 번째 픽처에서 기본 예측의 기본 단위를 사용할지에 대한 플래그와 기본 예측의 기본 단위를 사용하지 않는 경우 선택된 예측의 기본 단위를 부호화한 후, 두 번째 픽처부터는 이전 픽처의 예측의 기본 단위를 사용할지에 대한 플래그와 이전 픽처의 예측의 기본 단위를 사용하지 않을 경우 현재 픽처의 예측의 기본 단위를 부호화할 수도 있다.
첫 번째 픽처의 픽처 헤더
use_defalt_ predBlockSize _flag
if(use_defalt_ predBlockSize _flag == 0)
{
predBlockSize
}
두 번째 픽처부터
use_prevPic_ predBlockSize _flag
if(use_prevPic_ predBlockSize e_flag == 0)
{
predBlockSize
}
도 19는 본 발명의 또 다른 실시예에 따른 영상 부호화 방법의 일 례를 설명하기 위한 순서도이다.
영상 부호화 장치(1800)는 예측 기본 단위의 후보를 설정하고(S1910), 예측 기본 단위의 후보별로 입력 영상을 부호화하여(S1920), 예측 기본 단위의 후보별 영상 데이터의 부호화 비용에 따라 예측 기본 단위를 결정하며(S1930), 결정된 예측 기본 단위에 따라 매크로블록의 각 서브블록에 대해 인터 예측 또는 인트라 예측을 선택적으로 이용하여 부호화된 영상 데이터 및 결정된 예측 기본 단위에 대한 정보를 포함하는 비트스트림을 생성한다(S1940). 영상 부호화 장치(1800)가 예측 기본 단위의 후보를 설정하고, 예측 기본 단위의 후보별로 영상을 부호화하며, 예측 기본 단위의 후보별로 부호화된 영상 데이터의 부호화 비용에 따라 예측 기본 단위를 결정하는 것에 대해서는 도 10을 통해 전술하였으므로, 상세한 설명은 생략한다.
본 발명의 또 다른 실시예에 따른 영상 복호화 장치의 일 례는 도 7을 통해 전술한 본 발명의 일 실시예에 따른 영상 복호화 장치(700)와 동일 또는 유사하게 구성될 수 있다. 다만, 본 발명의 또 다른 실시예에 따른 영상 복호화 장치의 일 례는 비트스트림으로부터 부호화된 영상 데이터뿐만 아니라 비트스트림으로부터 16x16 크기 이상의 매크로블록에 대해 인터 예측 또는 인트라 예측을 선택적으로 이용하기 위한 예측 기본 단위에 대한 정보를 추출하고, 추출된 예측 기본 단위에 대한 정보에 의해 식별되는 예측 기본 단위(또는 필요에 따라서는 추출된 예측 기본 단위에 대한 정보를 복호화하여 식별되는 예측 기본 단위) 크기 이하의 매크로블록 내의 각 서브블록들에 대해서는 인터 예측 또는 인트라 예측을 선택적으로 이용하여 부호화된 영상 데이터를 복호화함으로써 복원 영상을 생성한다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재할 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
이상에서 설명한 바와 같이 본 발명의 실시예는, 영상 압축 처리 분야에 적용되어, 영상의 특성에 따라 블록 타입을 결정함으로써 큰 크기의 블록을 이용하여 고해상도의 영상을 효율적으로 부호화하고 복호화할 수 있는 효과를 발생하는 매우 유용한 발명이다.
610, 720: 예측기
612: 움직임 추정기 614, 722: 움직임 보상기
616, 724: 인트라 예측기 630, 730: 복원기
640, 740: 필터 650, 750: 프레임 메모리

Claims (42)

  1. 영상을 부호화/복호화하는 장치에 있어서,
    가변 크기의 매크로블록을 이용하여 영상을 부호화하기 위한 블록 타입의 후보를 설정하고, 상기 블록 타입의 후보별로 입력 영상을 부호화하며, 상기 블록 타입의 후보별 부호화 비용에 따라 블록 타입을 결정하고, 상기 결정된 블록 타입으로 부호화된 영상 데이터 및 상기 결정된 블록 타입에 대한 정보를 포함하는 비트스트림을 생성하는 영상 부호화기; 및
    상기 비트스트림으로부터 가변 크기의 매크로블록을 이용하여 영상을 부호화하기 위한 블록 타입에 대한 정보 및 부호화된 영상 데이터를 추출하고, 상기 블록 타입에 대한 정보에 의해 식별되는 블록 타입에 따라 상기 부호화된 영상 데이터를 복호화하여 복원 영상을 생성하는 영상 복호화기
    를 포함하는 것을 특징으로 하는 영상 부호화/복호화 장치.
  2. 영상을 부호화하는 장치에 있어서,
    가변 크기의 매크로블록을 이용하여 영상을 부호화하기 위한 블록 타입의 후보를 설정하는 후보 블록 타입 설정기;
    상기 블록 타입의 후보별로 입력 영상을 부호화하는 영상 부호화기;
    상기 블록 타입의 후보별 부호화 비용에 따라 블록 타입을 결정하고, 상기 결정된 블록 타입으로 부호화된 영상 데이터 및 상기 결정된 블록 타입에 대한 정보를 포함하는 비트스트림을 생성하는 블록 타입 결정기
    를 포함하는 것을 특징으로 하는 영상 부호화 장치.
  3. 영상을 복호화하는 장치에 있어서,
    비트스트림으로부터 가변 크기의 매크로블록을 이용하여 영상을 부호화하기 위한 블록 타입에 대한 정보 및 부호화된 영상 데이터를 추출하고, 상기 블록 타입에 대한 정보에 의해 식별되는 블록 타입에 따라 상기 부호화된 영상 데이터를 복호화하여 복원 영상을 생성하는 영상 복호화기
    를 포함하는 것을 특징으로 하는 영상 복호화 장치.
  4. 영상을 부호화/복호화하는 방법에 있어서,
    가변 크기의 매크로블록을 이용하여 영상을 부호화하기 위한 블록 타입의 후보를 설정하고, 상기 블록 타입의 후보별로 입력 영상을 부호화하며, 상기 블록 타입의 후보별 부호화 비용에 따라 블록 타입을 결정하고, 상기 결정된 블록 타입으로 부호화된 영상 데이터 및 상기 결정된 블록 타입에 대한 정보를 포함하는 비트스트림을 생성하는 단계; 및
    상기 비트스트림으로부터 가변 크기의 매크로블록을 이용하여 영상을 부호화하기 위한 블록 타입에 대한 정보 및 부호화된 영상 데이터를 추출하고, 상기 블록 타입에 대한 정보에 의해 식별되는 블록 타입에 따라 상기 부호화된 영상 데이터를 복호화하여 복원 영상을 생성하는 단계
    를 포함하는 것을 특징으로 하는 영상 부호화/복호화 방법.
  5. 영상을 부호화하는 방법에 있어서,
    가변 크기의 매크로블록을 이용하여 영상을 부호화하기 위한 블록 타입의 후보를 설정하는 단계;
    상기 블록 타입의 후보별로 입력 영상을 부호화하는 단계;
    상기 블록 타입의 후보별 부호화 비용에 따라 블록 타입을 결정하는 단계; 및
    상기 결정된 블록 타입으로 부호화된 영상 데이터 및 상기 결정된 블록 타입에 대한 정보를 포함하는 비트스트림을 생성하는 단계
    를 포함하는 것을 특징으로 하는 영상 부호화 방법.
  6. 제 5 항에 있어서, 상기 블록 타입은,
    부호화 및/또는 복호화 단위에 해당하는 매크로블록의 크기, 최소 서브블록의 크기 및 서브블록 모드 조합 중 하나 이상을 포함하는 것을 특징으로 하는 영상 부호화 방법.
  7. 제 5항에 있어서, 상기 블록 타입의 후보를 설정하는 단계는,
    입력되는 블록 타입의 후보를 설정하거나 상기 입력 영상의 특성에 따라 블록 타입의 후보를 결정하여 설정하는 것을 특징으로 하는 영상 부호화 방법.
  8. 제 5 항에 있어서, 상기 블록 타입의 후보는,
    상기 블록 타입이 상기 매크로블록의 크기 또는 상기 최소 서브블록의 크기인 경우, 상기 입력 영상의 가로 세로 비율에 따라 결정되어 설정되는 것을 특징으로 하는 영상 부호화 방법.
  9. 제 5 항에 있어서, 상기 블록 타입의 후보는,
    상기 블록 타입이 상기 서브블록 모드 조합인 경우, 인트라 예측 또는 인터 예측에 따라 다르게 설정되는 것을 특징으로 하는 영상 부호화 방법.
  10. 제 5 항에 있어서, 상기 비트스트림을 생성하는 단계는,
    상기 비트스트림에 상기 결정된 블록 타입에 대한 정보를 한 번만 포함시키거나 상기 입력 영상의 픽처마다 포함시키는 것을 특징으로 하는 영상 부호화 방법.
  11. 제 5항에 있어서,
    상기 입력 영상의 해상도 또는 영상 특성에 기초하여 상기 매크로블록의 크기를 가변적으로 선택하는 것을 특징으로 하는 영상 부호화 방법.
  12. 제 5항에 있어서,
    상기 매크로블록의 크기에 기초하여 최소 서브블록의 크기를 가변적으로 선택하는 것을 특징으로 하는 영상 부호화 방법.
  13. 제 5항에 있어서,
    상기 매크로블록의 크기 및 최소 서브블록의 크기에 기초하여 상기 매크로블록 내의 서브블록 모드의 조합을 선택하는 것을 특징으로 하는 영상 부호화 방법.
  14. 제 5항에 있어서,
    시퀀스, 픽처, 슬라이스 또는 매크로블록 단위로 상기 매크로블록의 크기를 영상 복호화 장치로 전송하는 것을 특징으로 하는 영상 부호화 방법.
  15. 제 5항에 있어서,
    기준 매크로블록의 크기를 설정하고, 상기 입력 영상의 각 픽처, 슬라이스 또는 매크로블록 헤더마다 상기 기준 매크로블록의 크기를 사용할지를 나타내는 플래그를 부호화하여 영상 복호화 장치로 전송하는 것을 특징으로 하는 영상 부호화 방법.
  16. 제 15항에 있어서,
    상기 플래그가 상기 기준 매크로블록의 크기를 사용하지 않음을 나타내는 경우, 선택된 상기 매크로블록의 크기를 부호화하는 것을 특징으로 하는 영상 부호화 방법.
  17. 제 15항에 있어서,
    상기 플래그가 상기 기준 매크로블록의 크기를 사용할 것을 나타내는 경우, 상기 기준 매크로블록의 크기와 동일한 크기의 블록이 현재 매크로블록으로 선택되는 것을 특징으로 하는 영상 부호화 방법.
  18. 제 15항에 있어서,
    상기 플래그가 상기 기준 매크로블록의 크기를 사용하지 않음을 나타내는 경우, 상기 기준 매크로블록의 크기로부터 소정 비율만큼 확장 또는 축소한 블록이 현재 매크로블록으로 선택되는 것을 특징으로 하는 영상 부호화 방법.
  19. 제 5항에 있어서,
    선택된 상기 매크로블록의 크기를 부호화한 후, 다음 픽처부터는 이전 픽처의 매크로블록의 크기를 사용할지에 대한 플래그와 이전 픽처의 매크로블록의 크기를 사용하지 않을 경우 현재 픽처의 매크로블록의 크기를 부호화하는 것을 특징으로 하는 영상 부호화 방법.
  20. 제 5항에 있어서,
    시퀀스 헤더에서 인트라 픽처를 위한 매크로블록의 크기와 인터 픽처를 위한 매크로블록의 크기를 다르게 하여 부호화하는 것을 특징으로 하는 영상 부호화 방법.
  21. 제 5항에 있어서,
    최소 서브블록의 크기에 대한 정보를 보낼지에 대한 플래그의 부호화를 생략하고, 시퀀스, 픽처, 슬라이스 또는 매크로블록 헤더마다 상기 최소 서브블록의 크기를 영상 복호화 장치로 전송하는 것을 특징으로 하는 영상 부호화 방법.
  22. 제 5항에 있어서,
    기준 최소 서브블록의 크기를 설정하고 각 픽처, 슬라이스 또는 매크로블록 헤더마다 상기 기준 최소 서브블록의 크기를 사용할지를 나타내는 플래그를 부호화하는 것을 특징으로 하는 영상 부호화 방법.
  23. 제 5항에 있어서,
    기준 최소 서브블록의 크기를 설정하고 각 픽처, 슬라이스 또는 최소 서브블록 헤더마다 상기 기준 최소 서브블록의 크기를 사용할지를 나타내는 플래그를 부호화하는 것을 특징으로 하는 영상 부호화 방법.
  24. 제 23항에 있어서,
    상기 플래그가 상기 기준 최소 서브블록의 크기를 사용할 것을 나타내는 경우, 상기 기준 최소 서브블록의 크기와 동일한 크기의 블록이 현재 최소 서브블록으로 선택되는 것을 특징으로 하는 영상 부호화 방법.
  25. 제 23항에 있어서,
    상기 플래그가 상기 기준 최소 서브블록의 크기를 사용하지 않는 것을 나타내는 경우, 상기 기준 최소 서브블록의 크기로부터 소정 비율만큼 확장 또는 축소한 블록을 현재 최소 서브블록으로 선택하는 것을 특징으로 하는 영상 부호화 방법.
  26. 제 5항에 있어서,
    선택된 최소 서브블록의 크기를 부호화한 후, 다음 픽처부터 이전 픽처의 최소 서브블록의 크기를 사용할지에 대한 플래그와 이전 픽처의 최소 서브블록의 크기를 사용하지 않을 경우 현재 픽처의 최소 서브블록의 크기를 부호화하는 것을 특징으로 하는 영상 부호화 방법.
  27. 제 5항에 있어서,
    시퀀스 헤더에서 인트라 픽처를 위한 최소 서브블록의 크기와 인터 픽처를 위한 최소 서브블록의 크기를 다르게 하여 부호화하는 것을 특징으로 하는 영상 부호화 방법.
  28. 제 5항에 있어서,
    시퀀스 헤더 또는 각 픽처의 헤더에 예측 또는 변환을 위해 사용 가능한 서브블록 모드들의 정보를 보낼지에 대한 플래그를 포함시키는 것을 특징으로 하는 영상 부호화 방법.
  29. 영상을 복호화하는 방법에 있어서,
    비트스트림으로부터 가변 크기의 매크로블록을 이용하여 영상을 부호화하기 위한 블록 타입에 대한 정보 및 부호화된 영상 데이터를 추출하는 단계; 및
    상기 블록 타입에 대한 정보에 의해 식별되는 블록 타입에 따라 상기 부호화된 영상 데이터를 복호화하여 복원 영상을 생성하는 단계
    를 포함하는 것을 특징으로 하는 영상 복호화 방법.
  30. 제 29 항에 있어서, 상기 블록 타입은,
    부호화 및/또는 복호화 단위에 해당하는 매크로블록의 크기, 최소 서브블록의 크기 및 서브블록 모드 조합 중 하나 이상을 포함하는 것을 특징으로 하는 영상 복호화 방법.
  31. 제 29 항에 있어서, 상기 추출하는 단계는,
    상기 비트스트림으로부터 상기 결정된 블록 타입에 대한 정보를 한 번만 추출하거나 상기 입력 영상의 픽처마다 추출하는 것을 특징으로 하는 영상 복호화 방법.
  32. 제 29항에 있어서,
    상기 비트스트림에 상기 매크로블록의 크기에 대한 정보를 보낼지에 대한 플래그가 포함된 경우, 시퀀스 헤더 또는 각 픽쳐의 헤더 또는 슬라이스 헤더의 약속된 위치에서 상기 매크로블록의 크기에 대한 정보를 보낼지에 대한 플래그를 복호화하는 것을 특징으로 하는 영상 복호화 방법.
  33. 제 29항에 있어서,
    부호화기와 약속된 기준 매크로블록의 크기를 설정하고, 각 픽처, 슬라이스 또는 매크로블록 헤더로부터 상기 기준 매크로블록의 크기를 사용할지를 나타내는 플래그를 복호화하는 것을 특징으로 하는 영상 복호화 방법.
  34. 제 29항에 있어서,
    상기 비트스트림으로부터 상기 기준 매크로블록의 크기를 사용할지 여부를 나타내는 플래그 및/또는 상기 기준 매크로블록의 크기로부터 소정 비율만큼 확장 또는 축소할 것을 나타내는 추가 정보를 추출한 후, 상기 추출된 플래그 및/또는 상기 추가 정보를 이용하여 현재 매크로블록의 크기를 결정하는 것을 특징으로 하는 영상 복호화 방법.
  35. 제 29항에 있어서,
    상기 매크로블록의 크기 정보를 복호화한 후, 복호화된 상기 매크로블록의 크기 정보를 이용하여 첫 번째 픽처 복호화에 필요한 매크로블록 크기를 산출하는 것을 특징으로 하는 영상 복호화 방법.
  36. 제 29항에 있어서,
    인트라 픽처와 인터 픽처의 매크로블록의 크기를 비트스트림 내 부호화기와 약속된 위치에서 각각 추출하여 픽처 종류에 따른 매크로블록의 크기를 설정하는 것을 특징으로 하는 영상 복호화 방법.
  37. 제 29항에 있어서,
    상기 비트스트림에 최소 서브블록의 크기에 대한 정보를 보낼지에 대한 플래그가 포함된 경우, 시퀀스 헤더 또는 각 픽쳐의 헤더 또는 슬라이스 헤더 등의 약속된 위치에서 상기 최소 서브블록의 크기에 대한 정보를 보낼지에 대한 플래그를 복호화하는 것을 특징으로 하는 영상 복호화 방법.
  38. 제 29항에 있어서,
    부호화기와 약속된 크기를 기준 최소 서브블록 크기로 설정하고 각 픽처, 슬라이스 또는 최소 서브블록 헤더로부터 상기 기준 최소 서브블록의 크기를 사용할지를 나타내는 플래그를 복호화하는 것을 특징으로 하는 영상 복호화 방법.
  39. 제 29항에 있어서,
    상기 비트스트림으로부터 기준 최소 서브블록의 크기를 사용할지 여부를 나타내는 플래그 및/또는 상기 기준 최소 서브블록의 크기로부터의 소정 비율만큼 확장 또는 축소할것을 나타내는 추가 정보를 추출한 후 상기 정보들을 이용하여 현재 최소 서브블록의 크기를 추출하는 것을 특징으로 하는 영상 복호화 방법.
  40. 제 29항에 있어서,
    첫 번째 픽처에서 기준 최소 서브블록의 크기를 사용할지에 대한 플래그와, 기준 최소 서브블록 크기를 사용하지 않는 경우, 최소 서브블록의 크기 정보를 복호화한 후 복호화된 상기 최소 서브블록의 크기 정보를 이용하여 첫 번째 픽쳐 복호화에 필요한 최소 서브블록 크기를 구하는 것을 특징으로 하는 영상 복호화 방법.
  41. 제 29항에 있어서,
    인트라 픽쳐와 인터 픽쳐의 최소 서브블록의 크기를 상기 비트스트림 내 부호화기와 약속한 위치에서 각각 추출하여 픽쳐 종류에 따른 상기 최소 서브블록의 크기를 설정하는 것을 특징으로 하는 영상 복호화 방법.
  42. 제 29항에 있어서,
    시퀀스 헤더 또는 각 픽쳐의 헤더에 예측 또는 변환을 위한 서브블록들의 조합을 선택하여 사용할지 여부를 나타내는 플래그를 복호화하고 복호화한 플래그값이 선택하여 사용하지 않음을 나타내는 경우, 부호화기와 약속한 기본 서브블록 조합 모드를 예측 또는 변환에 사용하는 것을 특징으로 하는 영상 복호화 방법.
KR1020100095905A 2009-10-01 2010-10-01 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치 KR101543314B1 (ko)

Priority Applications (16)

Application Number Priority Date Filing Date Title
EP10820867.9A EP2485489A4 (en) 2009-10-01 2010-10-01 METHOD AND DEVICE FOR CODING AND DECODING IMAGES THROUGH VARIABLE SIZE MACROBLOCKS
US13/499,345 US20130039415A1 (en) 2009-10-01 2010-10-01 Method and apparatus for encoding/decoding image using variable-size macroblocks
PL19193514T PL3595301T3 (pl) 2009-10-01 2010-10-01 Sposób i urządzenie do kodowania/dekodowania obrazu z zastosowaniem makrobloków o zmiennym rozmiarze
EP19193515.4A EP3595311B1 (en) 2009-10-01 2010-10-01 Method and apparatus for encoding/decoding image using variable-sized macroblocks
CN201510303536.5A CN105007492B (zh) 2009-10-01 2010-10-01 由视频解码装置执行的视频解码方法
EP15182719.3A EP2991356B1 (en) 2009-10-01 2010-10-01 Method and apparatus for encoding/decoding image using variable sized macroblocks
CN201510303298.8A CN105007491B (zh) 2009-10-01 2010-10-01 视频解码装置
EP19193514.7A EP3595301B1 (en) 2009-10-01 2010-10-01 Method and apparatus for encoding/decoding image using variable-sized macroblocks
CN201510302991.3A CN105049865B (zh) 2009-10-01 2010-10-01 视频解码装置
PCT/KR2010/006734 WO2011040794A2 (ko) 2009-10-01 2010-10-01 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
PL19193515T PL3595311T3 (pl) 2009-10-01 2010-10-01 Sposób i urządzenie do kodowania/dekodowania obrazu z zastosowaniem makrobloków o zmiennym rozmiarze
PL15182719T PL2991356T3 (pl) 2009-10-01 2010-10-01 Sposób i urządzenie do kodowania/dekodowania obrazu z zastosowaniem makrobloków o zmiennym rozmiarze
CN201080054730.XA CN102907098B (zh) 2009-10-01 2010-10-01 使用可变尺寸宏块对图像进行编码/解码的方法和装置
US13/954,408 US9215461B2 (en) 2009-10-01 2013-07-30 Method and apparatus for encoding/decoding image using variable sized macroblocks
US14/744,412 US9462278B2 (en) 2009-10-01 2015-06-19 Method and apparatus for encoding/decoding image using variable sized macroblocks
US14/744,359 US9462277B2 (en) 2009-10-01 2015-06-19 Method and apparatus for encoding/decoding image using variable sized macroblocks

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020090093982 2009-10-01
KR20090093982 2009-10-01

Related Child Applications (2)

Application Number Title Priority Date Filing Date
KR1020130088205A Division KR101543319B1 (ko) 2009-10-01 2013-07-25 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
KR1020140182218A Division KR101635830B1 (ko) 2009-10-01 2014-12-17 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20110036519A true KR20110036519A (ko) 2011-04-07
KR101543314B1 KR101543314B1 (ko) 2015-08-12

Family

ID=44044434

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020100095905A KR101543314B1 (ko) 2009-10-01 2010-10-01 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
KR1020130088205A KR101543319B1 (ko) 2009-10-01 2013-07-25 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
KR1020140182218A KR101635830B1 (ko) 2009-10-01 2014-12-17 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020130088205A KR101543319B1 (ko) 2009-10-01 2013-07-25 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
KR1020140182218A KR101635830B1 (ko) 2009-10-01 2014-12-17 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치

Country Status (9)

Country Link
US (4) US20130039415A1 (ko)
EP (4) EP3595311B1 (ko)
KR (3) KR101543314B1 (ko)
CN (4) CN105007492B (ko)
DK (1) DK2991356T3 (ko)
ES (3) ES2823231T3 (ko)
HU (3) HUE051313T2 (ko)
PL (3) PL3595311T3 (ko)
WO (1) WO2011040794A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016204373A1 (ko) * 2015-06-18 2016-12-22 엘지전자 주식회사 영상 코딩 시스템에서 영상 특성에 기반한 적응적 필터링 방법 및 장치
WO2018038316A1 (ko) * 2016-08-22 2018-03-01 광운대학교 산학협력단 보안 카메라용 영상 코덱에서 블록 분할 정보 전송 방법 및 장치
WO2019017651A1 (ko) * 2017-07-17 2019-01-24 김기백 영상 부호화/복호화 방법 및 장치

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8675730B2 (en) * 2009-07-13 2014-03-18 Nvidia Corporation Macroblock grouping in a destination video frame to improve video reconstruction performance
KR101479141B1 (ko) * 2009-12-10 2015-01-07 에스케이텔레콤 주식회사 트리 구조를 이용한 부호화/복호화 방법 및 장치
AU2011241283B2 (en) 2010-04-13 2015-02-05 Samsung Electronics Co., Ltd. Video-encoding method and video-encoding apparatus based on encoding units determined in accordance with a tree structure, and video-decoding method and video-decoding apparatus based on encoding units determined in accordance with a tree structure
ES2886357T3 (es) 2011-06-27 2021-12-17 Samsung Electronics Co Ltd Codificación y decodificación de información de movimiento
US20130301713A1 (en) * 2012-05-14 2013-11-14 Qualcomm Incorporated Systems and methods for intra prediction video coding
WO2015015681A1 (ja) * 2013-07-31 2015-02-05 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 画像符号化方法および画像符号化装置
US9992501B2 (en) 2013-09-10 2018-06-05 Kt Corporation Method and apparatus for encoding/decoding scalable video signal
TWI536811B (zh) 2013-12-27 2016-06-01 財團法人工業技術研究院 影像處理方法與系統、解碼方法、編碼器與解碼器
CN108307192A (zh) * 2014-10-11 2018-07-20 华为技术有限公司 预测块的划分方法、编码设备和解码设备
KR101718969B1 (ko) * 2015-10-02 2017-03-23 인하대학교 산학협력단 Hevc 인트라 예측의 속도 향상을 위한 블록 사이즈 후보 조기 결정 방법
WO2017082670A1 (ko) * 2015-11-12 2017-05-18 엘지전자 주식회사 영상 코딩 시스템에서 계수 유도 인트라 예측 방법 및 장치
BR112018069135B1 (pt) * 2016-05-10 2023-12-26 Samsung Electronics Co., Ltd Método de decodificação de imagem para decodificar uma imagem, aparelho de decodificação de imagens para decodificar uma imagem, método de codificação de imagem para codificar uma imagem, e aparelho de codificação de imagens para codificar uma imagem
KR102426131B1 (ko) * 2016-06-17 2022-07-27 세종대학교산학협력단 비디오 신호의 부호화 또는 복호화 방법 및 장치
KR102534604B1 (ko) * 2016-06-17 2023-05-26 세종대학교 산학협력단 비디오 신호의 부호화 또는 복호화 방법 및 장치
FR3053555A1 (fr) * 2016-06-29 2018-01-05 B<>Com Procede de codage d'une image numerique, procede de decodage, dispositifs, terminal et programmes d'ordinateurs associes
ES2737843B2 (es) * 2016-07-05 2021-07-15 Kt Corp Metodo y aparato para procesar una senal de video
WO2018044087A1 (ko) * 2016-08-31 2018-03-08 주식회사 케이티 비디오 신호 처리 방법 및 장치
US20190215521A1 (en) * 2016-09-22 2019-07-11 Mediatek Inc. Method and apparatus for video coding using decoder side intra prediction derivation
CN117097911A (zh) * 2016-11-18 2023-11-21 株式会社Kt 视频解码方法、视频编码方法和压缩视频数据发送设备
CN116744022A (zh) 2016-11-25 2023-09-12 株式会社Kt 用于对视频进行编码和解码的方法
EP3806463A1 (en) * 2016-12-23 2021-04-14 Huawei Technologies Co., Ltd. An intra-prediction apparatus for extending a set of predetermined directional intra-prediction modes
KR102435881B1 (ko) * 2017-05-26 2022-08-24 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법
CN117201819A (zh) 2017-05-26 2023-12-08 Sk电信有限公司 对视频数据进行编码或解码的方法和存储比特流的方法
EP3793195A4 (en) * 2018-05-10 2022-03-30 Samsung Electronics Co., Ltd. PICTURE CODING METHOD AND APPARATUS, AND PICTURE DECODING METHOD AND APPARATUS
TWI728390B (zh) 2018-06-29 2021-05-21 大陸商北京字節跳動網絡技術有限公司 查找表尺寸
EP3791586A1 (en) 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
TWI724442B (zh) 2018-06-29 2021-04-11 大陸商北京字節跳動網絡技術有限公司 用於查找表更新的編碼的運動信息的選擇
KR102646649B1 (ko) 2018-06-29 2024-03-13 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut에서의 모션 후보들의 검사 순서
SG11202013028PA (en) 2018-06-29 2021-01-28 Beijing Bytedance Network Technology Co Ltd Interaction between lut and amvp
SG11202011714RA (en) 2018-06-29 2020-12-30 Beijing Bytedance Network Technology Co Ltd Partial/full pruning when adding a hmvp candidate to merge/amvp
JP7460617B2 (ja) 2018-06-29 2024-04-02 北京字節跳動網絡技術有限公司 Lut更新条件
CN114845108A (zh) 2018-06-29 2022-08-02 抖音视界(北京)有限公司 查找表的更新:fifo、约束的fifo
TWI731364B (zh) 2018-07-02 2021-06-21 大陸商北京字節跳動網絡技術有限公司 Hmvp+非相鄰運動
CN111064959B (zh) 2018-09-12 2023-09-01 北京字节跳动网络技术有限公司 要检查多少个hmvp候选
EP3743855A1 (en) * 2018-09-18 2020-12-02 Google LLC Receptive-field-conforming convolution models for video coding
CN111050172A (zh) * 2018-10-15 2020-04-21 华为技术有限公司 图像块的变换、反变换方法和装置
KR20200087086A (ko) * 2019-01-10 2020-07-20 세종대학교산학협력단 영상 부호화/복호화 방법 및 장치
CN113273186A (zh) 2019-01-10 2021-08-17 北京字节跳动网络技术有限公司 Lut更新的调用
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
WO2020147773A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Inserting order of motion candidates in lut
CN113615193A (zh) 2019-03-22 2021-11-05 北京字节跳动网络技术有限公司 Merge列表构建和其他工具之间的交互
US10887589B2 (en) * 2019-04-12 2021-01-05 Realnetworks, Inc. Block size determination for video coding systems and methods

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003045069A2 (en) * 2001-11-16 2003-05-30 Qualcomm Incorporated Block size assignment using local contrast ratio
KR100987765B1 (ko) * 2003-09-30 2010-10-13 삼성전자주식회사 동영상 부호화기에서의 예측 수행 방법 및 장치
KR100679031B1 (ko) * 2004-12-03 2007-02-05 삼성전자주식회사 다 계층 기반의 비디오 인코딩 방법, 디코딩 방법 및 상기방법을 이용한 장치
KR100888963B1 (ko) * 2004-12-06 2009-03-17 엘지전자 주식회사 영상 신호의 스케일러블 인코딩 및 디코딩 방법
US20060193386A1 (en) * 2005-02-25 2006-08-31 Chia-Wen Lin Method for fast mode decision of variable block size coding
US7642396B2 (en) 2005-08-31 2010-01-05 Kimberly-Clark Worldwide, Inc. Method and device for detecting the presence of multiple insults in an absorbent article
US9071844B2 (en) * 2005-12-16 2015-06-30 Texas Instruments Incorporated Motion estimation with motion vector penalty
KR100728031B1 (ko) * 2006-01-23 2007-06-14 삼성전자주식회사 가변 블록 크기 움직임 예측을 위한 부호화 모드 결정 방법및 장치
KR100896978B1 (ko) * 2006-11-27 2009-05-14 한양대학교 산학협력단 Mpeg-2에서 h.264/avc로의 고속 트랜스코딩에서 움직임 벡터 예측 방법과 모드 예측 방법 및 기록매체
CN101222641B (zh) * 2007-01-11 2011-08-24 华为技术有限公司 帧内预测编解码方法及其装置
US8422803B2 (en) * 2007-06-28 2013-04-16 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method and image decoding method
US8432970B1 (en) * 2007-12-14 2013-04-30 Marvell International Ltd. Block type selection
CN101304529A (zh) * 2008-06-06 2008-11-12 浙江大学 宏块模式的选择方法和装置
CN101350928A (zh) * 2008-07-29 2009-01-21 北京中星微电子有限公司 一种运动估计方法及装置
US8503527B2 (en) * 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
CN101527854A (zh) * 2009-01-20 2009-09-09 源见科技(苏州)有限公司 帧间模式选择方法
KR101543430B1 (ko) 2009-02-23 2015-08-11 삼성전자주식회사 반도체 장치의 제조 방법
US20110002391A1 (en) * 2009-06-11 2011-01-06 Motorola, Inc. Digital image compression by resolution-adaptive macroblock coding
US20110194613A1 (en) * 2010-02-11 2011-08-11 Qualcomm Incorporated Video coding with large macroblocks

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016204373A1 (ko) * 2015-06-18 2016-12-22 엘지전자 주식회사 영상 코딩 시스템에서 영상 특성에 기반한 적응적 필터링 방법 및 장치
US10600156B2 (en) 2015-06-18 2020-03-24 Lg Electronics Inc. Image properties-based adaptive filtering method and device in image coding system
WO2018038316A1 (ko) * 2016-08-22 2018-03-01 광운대학교 산학협력단 보안 카메라용 영상 코덱에서 블록 분할 정보 전송 방법 및 장치
US10887591B2 (en) 2016-08-22 2021-01-05 Goldenwavepartners Co., Ltd. Method and device for transmitting block division information in image codec for security camera
US11399178B2 (en) 2016-08-22 2022-07-26 Goldenwavepartners Co., Ltd. Method and device for transmitting block division information in image codec for security camera
US11924424B2 (en) 2016-08-22 2024-03-05 Goldenwavepartners Co., Ltd. Method and device for transmitting block division information in image codec for security camera
WO2019017651A1 (ko) * 2017-07-17 2019-01-24 김기백 영상 부호화/복호화 방법 및 장치
CN110892719A (zh) * 2017-07-17 2020-03-17 汉阳大学校产学协力团 影像编码/解码方法及装置
US11044475B2 (en) 2017-07-17 2021-06-22 Industry-University Cooperation Foundation Hanyang University Method and apparatus for encoding/decoding image
US11399179B2 (en) 2017-07-17 2022-07-26 Industry-University Cooperation Foundation Hanyang University Method and apparatus for encoding/decoding image
CN110892719B (zh) * 2017-07-17 2023-06-09 汉阳大学校产学协力团 影像编码/解码方法及装置
US11882281B2 (en) 2017-07-17 2024-01-23 Industry-University Cooperation Foundation Hanyang University Method and apparatus for encoding/decoding image

Also Published As

Publication number Publication date
CN105007492B (zh) 2018-02-06
US20150288961A1 (en) 2015-10-08
HUE051313T2 (hu) 2021-03-01
US20150288960A1 (en) 2015-10-08
PL2991356T3 (pl) 2020-03-31
WO2011040794A2 (ko) 2011-04-07
HUE052466T2 (hu) 2021-04-28
WO2011040794A3 (ko) 2011-09-01
ES2829810T3 (es) 2021-06-02
PL3595311T3 (pl) 2021-01-25
EP3595301B1 (en) 2020-08-12
EP2991356A1 (en) 2016-03-02
EP3595301A1 (en) 2020-01-15
CN105007491B (zh) 2018-02-06
CN105049865A (zh) 2015-11-11
EP2485489A4 (en) 2014-01-15
CN105049865B (zh) 2018-01-05
CN102907098B (zh) 2016-04-20
US20130039415A1 (en) 2013-02-14
KR101543319B1 (ko) 2015-08-12
KR20150014414A (ko) 2015-02-06
PL3595301T3 (pl) 2021-01-25
EP2485489A2 (en) 2012-08-08
CN102907098A (zh) 2013-01-30
KR20130088110A (ko) 2013-08-07
CN105007491A (zh) 2015-10-28
KR101635830B1 (ko) 2016-07-05
EP3595311B1 (en) 2020-08-12
US9462277B2 (en) 2016-10-04
HUE047479T2 (hu) 2020-04-28
KR101543314B1 (ko) 2015-08-12
EP3595311A1 (en) 2020-01-15
ES2823231T3 (es) 2021-05-06
US20130315299A1 (en) 2013-11-28
DK2991356T3 (da) 2019-12-02
CN105007492A (zh) 2015-10-28
EP2991356B1 (en) 2019-09-04
US9462278B2 (en) 2016-10-04
ES2747977T3 (es) 2020-03-12
US9215461B2 (en) 2015-12-15

Similar Documents

Publication Publication Date Title
KR101635830B1 (ko) 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
KR101874840B1 (ko) 영상 부호화/복호화 장치 및 방법
KR101698509B1 (ko) 분할 레이어를 이용한 영상 부호화/복호화 방법 및 장치
US11889052B2 (en) Method for encoding video information and method for decoding video information, and apparatus using same
KR101479129B1 (ko) 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
KR101791242B1 (ko) 영상 부호화/복호화 장치 및 방법
KR102030717B1 (ko) 영상 부호화 방법, 영상 복호화 방법, 영상 부호화기 및 영상 복호화기
KR101673028B1 (ko) 영상 부호화/복호화 장치 및 방법
KR20110115987A (ko) 영상 부호화/복호화 장치 및 방법
JP2014534753A (ja) 映像データを復号化する方法
KR20130116845A (ko) 영상 부호화 방법 및 컴퓨터로 읽을 수 있는 기록 매체
KR20110043407A (ko) 영상 부호화/복호화 장치 및 방법
KR20130054981A (ko) 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
KR101720195B1 (ko) 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
JP2023504940A (ja) 残差コーディングに関する画像デコード方法およびその装置
KR101464980B1 (ko) 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
KR20210036479A (ko) 비디오 코덱에서 행렬 변환 기반 예측 조건에 따른 2차 변환 블록 크기 제한 방법
KR101464979B1 (ko) 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
KR20210034790A (ko) 비디오 코덱에서 이차 변환 부호화 방법
KR20210035602A (ko) 비디오 코덱에서 행렬 변환 기반 인트라 예측에 따른 2차 변환 적용 방법
KR20180111374A (ko) 향상된 산술부호화를 제공하는 영상 처리 방법, 그를 이용한 영상 복호화, 부호화 방법 및 그 장치

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
A107 Divisional application of patent
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant