KR20120058384A - 인트라 프리딕션 방법 - Google Patents

인트라 프리딕션 방법 Download PDF

Info

Publication number
KR20120058384A
KR20120058384A KR1020110064301A KR20110064301A KR20120058384A KR 20120058384 A KR20120058384 A KR 20120058384A KR 1020110064301 A KR1020110064301 A KR 1020110064301A KR 20110064301 A KR20110064301 A KR 20110064301A KR 20120058384 A KR20120058384 A KR 20120058384A
Authority
KR
South Korea
Prior art keywords
prediction
mode
block
unit
pixels
Prior art date
Application number
KR1020110064301A
Other languages
English (en)
Inventor
오수미
Original Assignee
오수미
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 오수미 filed Critical 오수미
Priority to KR1020110064301A priority Critical patent/KR20120058384A/ko
Priority to LTEP16184572.2T priority patent/LT3125555T/lt
Priority to EP16184572.2A priority patent/EP3125555B1/en
Priority to PL16184578T priority patent/PL3125558T3/pl
Priority to HUE16184569A priority patent/HUE040410T2/hu
Priority to PT161845680T priority patent/PT3125553T/pt
Priority to CN201610809897.1A priority patent/CN106851287B/zh
Priority to ES16184569.8T priority patent/ES2685668T3/es
Priority to LTEP16184557.3T priority patent/LT3125552T/lt
Priority to ES16184574T priority patent/ES2696898T3/es
Priority to ES16184586.2T priority patent/ES2693905T3/es
Priority to HUE16184572A priority patent/HUE039207T2/hu
Priority to KR1020137020599A priority patent/KR101854489B1/ko
Priority to PL16184582T priority patent/PL3125559T3/pl
Priority to DK16184557.3T priority patent/DK3125552T3/en
Priority to RS20180454A priority patent/RS57112B1/sr
Priority to SI201131494T priority patent/SI3125552T1/en
Priority to KR1020137020598A priority patent/KR20130091799A/ko
Priority to EP16184586.2A priority patent/EP3125560B1/en
Priority to ES16184578T priority patent/ES2696931T3/es
Priority to KR1020147010246A priority patent/KR20140057672A/ko
Priority to CN201510038581.2A priority patent/CN104602004B/zh
Priority to RS20161024A priority patent/RS55325B1/sr
Priority to CN201610809602.0A priority patent/CN106851284B/zh
Priority to EP16184557.3A priority patent/EP3125552B1/en
Priority to PL16184572T priority patent/PL3125555T3/pl
Priority to KR1020187009842A priority patent/KR20180039753A/ko
Priority to PL16184568T priority patent/PL3125553T3/pl
Priority to PT161846167T priority patent/PT3125561T/pt
Priority to EP16184569.8A priority patent/EP3125554B1/en
Priority to CN201610809896.7A priority patent/CN107105234B/zh
Priority to PT161845722T priority patent/PT3125555T/pt
Priority to ES11818362.3T priority patent/ES2602779T3/es
Priority to DK16184568.0T priority patent/DK3125553T3/en
Priority to CN201510055953.2A priority patent/CN104602005B/zh
Priority to PT118183623T priority patent/PT2608541T/pt
Priority to CN201610809898.6A priority patent/CN107071426B/zh
Priority to KR1020187009843A priority patent/KR20180039754A/ko
Priority to KR1020187009839A priority patent/KR20180039750A/ko
Priority to JP2013524784A priority patent/JP5982612B2/ja
Priority to PT161845573T priority patent/PT3125552T/pt
Priority to PL16184586T priority patent/PL3125560T3/pl
Priority to PCT/KR2011/005941 priority patent/WO2012023762A2/ko
Priority to DK16184572.2T priority patent/DK3125555T3/en
Priority to HUE11818362A priority patent/HUE031186T2/hu
Priority to CN201610809895.2A priority patent/CN106851286B/zh
Priority to ES16184572.2T priority patent/ES2670326T3/es
Priority to PL11818362T priority patent/PL2608541T3/pl
Priority to RS20180499A priority patent/RS57165B1/sr
Priority to CN201610809894.8A priority patent/CN107105250B/zh
Priority to SI201131041A priority patent/SI2608541T1/sl
Priority to EP16184578.9A priority patent/EP3125558B1/en
Priority to HUE16184616A priority patent/HUE038963T2/hu
Priority to HUE16184574A priority patent/HUE042510T2/hu
Priority to RS20180526A priority patent/RS57166B1/sr
Priority to HUE16184586A priority patent/HUE040604T2/hu
Priority to TR2018/07094T priority patent/TR201807094T4/tr
Priority to CN201180050177.7A priority patent/CN103168472B/zh
Priority to EP16184582.1A priority patent/EP3125559B1/en
Priority to RS20180573A priority patent/RS57233B1/sr
Priority to ES16184582.1T priority patent/ES2693903T3/es
Priority to CN201610808102.5A priority patent/CN106231308B/zh
Priority to EP16184574.8A priority patent/EP3125556B1/en
Priority to EP11818362.3A priority patent/EP2608541B1/en
Priority to DK16184616.7T priority patent/DK3125561T3/en
Priority to KR1020147010248A priority patent/KR101474987B1/ko
Priority to EP16184616.7A priority patent/EP3125561B1/en
Priority to KR1020147014100A priority patent/KR20140075020A/ko
Priority to KR1020187009840A priority patent/KR20180039751A/ko
Priority to KR1020127028865A priority patent/KR101373819B1/ko
Priority to ES16184616.7T priority patent/ES2670327T3/es
Priority to KR1020147014092A priority patent/KR20140071507A/ko
Priority to SI201131499T priority patent/SI3125555T1/en
Priority to TR2018/06128T priority patent/TR201806128T4/tr
Priority to LTEP11818362.3T priority patent/LT2608541T/lt
Priority to SI201131498T priority patent/SI3125553T1/en
Priority to PL16184557T priority patent/PL3125552T3/pl
Priority to CN201610809603.5A priority patent/CN107071425B/zh
Priority to LTEP16184568.0T priority patent/LT3125553T/lt
Priority to CN201610809604.XA priority patent/CN106851285B/zh
Priority to HUE16184582A priority patent/HUE040601T2/hu
Priority to ES16184577.1T priority patent/ES2685669T3/es
Priority to LTEP16184616.7T priority patent/LT3125561T/lt
Priority to KR1020187009846A priority patent/KR20180039757A/ko
Priority to KR1020147010247A priority patent/KR20140057673A/ko
Priority to PL16184569T priority patent/PL3125554T3/pl
Priority to PL16184577T priority patent/PL3125557T3/pl
Priority to ES16184557.3T priority patent/ES2670324T3/es
Priority to SI201131484T priority patent/SI3125561T1/en
Priority to EP16184568.0A priority patent/EP3125553B1/en
Priority to HUE16184568A priority patent/HUE039205T2/hu
Priority to KR1020187009845A priority patent/KR20180039756A/ko
Priority to ES16184568.0T priority patent/ES2670325T3/es
Priority to PL16184616T priority patent/PL3125561T3/pl
Priority to KR1020187009841A priority patent/KR20180039752A/ko
Priority to DK11818362.3T priority patent/DK2608541T3/en
Priority to HUE16184557A priority patent/HUE039248T2/hu
Priority to PL16184574T priority patent/PL3125556T3/pl
Priority to EP16184577.1A priority patent/EP3125557B1/en
Priority to KR1020187009844A priority patent/KR20180039755A/ko
Priority to NO16184557A priority patent/NO3125552T3/no
Publication of KR20120058384A publication Critical patent/KR20120058384A/ko
Priority to US13/624,844 priority patent/US9491478B2/en
Priority to JP2016123336A priority patent/JP6371798B2/ja
Priority to US15/189,346 priority patent/US10063854B2/en
Priority to US15/189,485 priority patent/US9918087B2/en
Priority to JP2016123337A priority patent/JP6322232B2/ja
Priority to US15/189,521 priority patent/US10085019B2/en
Priority to JP2016123339A priority patent/JP6371800B2/ja
Priority to JP2016123335A priority patent/JP6322231B2/ja
Priority to JP2016123332A priority patent/JP6371795B2/ja
Priority to JP2016123333A priority patent/JP6371796B2/ja
Priority to US15/189,219 priority patent/US9716886B2/en
Priority to US15/189,561 priority patent/US9924187B2/en
Priority to US15/189,273 priority patent/US10123010B2/en
Priority to JP2016123334A priority patent/JP6371797B2/ja
Priority to US15/189,243 priority patent/US10123009B2/en
Priority to JP2016123331A priority patent/JP6322230B2/ja
Priority to US15/189,596 priority patent/US10003795B2/en
Priority to US15/189,305 priority patent/US10136130B2/en
Priority to JP2016123340A priority patent/JP6371801B2/ja
Priority to US15/189,452 priority patent/US9924186B2/en
Priority to JP2016123330A priority patent/JP6371794B2/ja
Priority to JP2016123338A priority patent/JP6371799B2/ja
Priority to US15/189,374 priority patent/US9918086B2/en
Priority to SM201600449T priority patent/SMT201600449B/it
Priority to CY20161101330T priority patent/CY1118382T1/el
Priority to HRP20170053TT priority patent/HRP20170053T1/hr
Priority to CY20181100489T priority patent/CY1120190T1/el
Priority to HRP20180834TT priority patent/HRP20180834T1/hr
Priority to CY181100612T priority patent/CY1120815T1/el
Priority to CY181100614T priority patent/CY1120795T1/el
Priority to CY181100613T priority patent/CY1120813T1/el
Priority to HRP20181098TT priority patent/HRP20181098T1/hr
Priority to HRP20181147TT priority patent/HRP20181147T1/hr
Priority to HRP20181145TT priority patent/HRP20181145T1/hr
Priority to US16/171,548 priority patent/US10567760B2/en
Priority to US16/725,167 priority patent/US10944965B2/en
Priority to US17/161,113 priority patent/US11284072B2/en

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/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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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

Landscapes

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

Abstract

본 발명은 인트라 프리딕션 방법에 관한 것으로, 본 발명은 동영상 인코딩 디코딩시에 압축효율을 보다 향상시키도록 하는 효과가 있다.

Description

인트라 프리딕션 방법{Intra prediction process}
본 발명은 인트라 프리딕션 방법에 관한 것이다.
영상을 고효율로 압축 재생하기 위해서는 인트라 프리딕션 방법이 사용된다.
본 발명은 고효율의 인트라 프리딕션을 수행하도록 하는 방법을 제공하기 위한 것이다.
본 발명의 인트라 프리딕션 방법은 예측 블록의 크기에 따라 서로 다른 종류의 intra 예측 모드가 적용될 수 있도록 한 것을 특징으로 한다.
본 발명은 동영상을 인코딩/디코딩시에 고성능의 압축 및 재생효율을 발휘하도록 하는 효과가 있다.
도 1은 본 발명의 실시예를 설명하기 위한 도며이다.
도 2는 본 발명의 실시예를 설명하기 위한 도면이다.
Test Model under Consideration의 내용
I. 픽쳐 분할
1) 픽쳐는 복수의 슬라이스로 구성되고 슬라이스는 복수의 largest coding unit(LCU)으로 구성됨. LCU(largest coding unit)의 위치는 address(lcuAddr)에 의해 정해짐.
2) LCU는 4개의 하위 CU로 분할가능(flag?)하고, 분할이 허용되지 않는 경우의 CU는 prediction unit(PU)으로 간주되며, PU의 위치는 LCU의 upper-left sample에 대한 PU index(puIdx)로 알 수 있음
3) PU는 복수개의 partition을 가질 수 있고, 위치는 PU의 upper-left sample에 대한 PU partition index(puPartIdx)로 알 수 있음. PU는 복수개의 transform unit(TU)을 가질 수 있고, TU는 4개의 더 작은 크기의 TU로 분할될 수 있음
4) Inverse coding unit Scanning process(p.6) : 복호화 과정
먼저 largest coding unit 어드레스를 비트스트림을 파싱하여 읽어들인다. Largest coding unit의 크기도 읽어들인다. 이는 부호기와 복호기가 미리 약정한 값일수도 있고 부호기가 복호기로 전송하는 비트스트림(sequence header 또는 picture header)에 포함될 수도 있다. 상기 값들을 이용하여 largest coding unit의 upper-left sample의 위치를 출력하게 된다.
Largest coding unit 내의 하위 단위의 coding unit은 raster scan된다. Coding unit은 4개의 더 작은 coding unit으로 분할될 수 있고 이들은 또한 이내에서 raster scan된다. 따라서, coding unit은 도면에서와 같이 recursively raster scanning 된다.
1) Inverse prediction unit, partition, and transform unit Scanning process(p.8) : 복호화 과정
Coding unit이 더 이상 분할되지 않으면 prediction unit이 scanning 된다. prediction unit의 위치는 prediction unit의 index로 특정된다. Prediction unit은 분할될 수 있다. 따라서, prediction unit index를 입력으로하여 prediction unit의 upper-left sample위치를 구하게 되고, ㅔprediction unit partition index를 입력으로 하여 prediction unit partition 의 upper-left sample 위치를 구하게 된다.
마찬가지로 transform unit index를 통해 transform unit의 upper-left sample 위치를 구할 수 있다.
Ⅱ. Syntax
1. Sequence parameter(header)
(1) CU, PU, TU의 가장 작은 크기를 나타내는 정보(smallest unit size)와, PU내에서의 arbitrary shape region을 나타내는 정보(prediction unit partition)와, LCU으로부터 분할이 허용되는 최대 수를 나타내는 정보(maximum hierarchy depth)가 포함될 수 있다. 이들은 sequence마다 바뀔 수 있다. 가장 큰 CU size는 128이다. 가장 큰 TU size는 가장 큰 CU size보다 작거나 같아야 한다.
2. Slice header
1) Slice header는 slice type을 포함한다. Slice type이 P 또는 B인 경우에는 인터 예측 샘플을 얻기 위해 사용되는 방법을 나타내는 정보(mc_interpolation_idc), MV competition이 사용되는지를 나타내는 정보가 포함된다. mv competition이 사용되면 복호기는 temporal MV가 사용되는지를 나타내는 정보를 포함한다. Temporal MV는 이미 부호화된 프레임의 동일 위치 또는 그 주변에 존재하는 PU의 움직임 벡터를 말한다. (이전 부호화된 프레임의 동일위치에 복수개의 temporal MV가 존재하는 경우에는 좌상측의 PU의 움직임 벡터가 선택될 수도 있고, 또는 이들의 median 이 될 수도 있다. 또한, 이전 프레임의 동일위치를 포함하는 PU가 존재하는 경우에는 이를 temporal MV로 할수도 있다) temporal MV가 사용될 경우에는 참조픽쳐가 reference picture list0에 속하는지 reference picture list 1에 속하는지를 나타내는 정보가 포함될 수 있다. 이 정보가 포함되지 않는 경우에는 그 값이 1인 것으로(즉, list 0사용) 간주된다.
2) 또한, 슬라이스 헤더는 mv_competition_temporal_flag(specifying whether temporally collocated motion vector is used in the motion competition process)를 포함한다. 슬라이스 헤더는 edge_based_prediction_flag indicating whether the edge based prediction process shall be invoked during intra prediction를 포함한다. 값이 0이면, edge based prediction process가 적용되지 않고, 1이면 인트라 예측을 위한 복수개의 모드 중에서 하나가 edge based prediction mode임을 나타낸다. 이때, edge based prediction mode가 DC prediction mode로 대체될 수 있다. 이는 소정의 판정과정을 거쳐서 이루어지며, 이를 판정하기 위한 정보 (threshold_edge)가 슬라이스 헤더에 포함된다.
3) Slice type이 P 또는 B인 경우에 슬라이스 헤더는 참조 픽쳐 저장을 위한 메모리 관리를 정보들을 포함한다. 상기 정보들은 ~
Slice type이 P 또는 B인 경우뿐만 아니라 I 등인 경우에도 슬라이스 헤더는 적응적 루프 필터링이 현재 슬라이스에 적용되지는 여부를 나타내는 정보를 포함한다. 상기 정보가 적응적 루프 필터링 적용됨을 나타내면, 슬라이스 헤더는 추가적으로 적응적 루프 필터 과정에서 사용되는 luma component의 수평 및 수직 방향의 필터 길이를 나타내는 정보를 포함한다. 적응적 루프 필터는 복원된 영상에 적용될수도 있고, 예측 신호에 적용될 수도 있고, 양자화된 예측 에러신호에 적용될 수도 있다. 따라서, 슬라이스 헤더는 상기 각각에 적용 가능한 필터 정보를 모두 또는 적어도 하나 이상 포함할 수 있다. 필터 정보들은 양자화되어 전송될 수 있다. 이 경우 슬라이스 헤더는 양자화 스텝 사이즈를 나타내는 정보들을 포함한다. 즉 따라서, 부호화시에는 필터계수를 양자화한 후 재부호화(엔트로피 부호화1) 부호화)하여 전송하고, 복호화시에는 엔트로피 복호화를 행한후 역양자화하여 얻은 필터 계수를 이용하여 적응적 루프 필터링을 수행한다.
슬라이스 헤더는 사용되는 필터 세트들의 수를 나타내는 정보를 전송할 수 있다. 이때 필터의 수가 2개 이상이면 필터 계수들은 필터 예측 방법이 사용될 수 있다. 따라서, 예측 방법이 사용되지는 여부를 나타내는 정보를 포함할 수 있으며, 예측 방법이 사용될 경우에는 예측된 필터계수들을 부호화하여 전송하고, 그렇지 않은 경우에는 예측되지 않은 필터계수들을 부호화하여 전송한다.
한편, luma 뿐만 아니라 chroma component들도 적응적으로 필터링될 수 있다. 따라서, chroma component 각각이 필터링되는지 여부를 나타내는 정보들을 슬라이스 헤더가 포함할 수 있으며, 이 경우, 비트수를 줄이기 위해 Cr와 Cb에 대한 필터링 여부를 함께 나타내기 정보를 multiplexing하여 나타낼 수 있다. Chroma 성분들 모두를 필터링하지 않는 경우가 가장 빈번하기 때문에 이에 대해 가장 작은 정보를 할당하는 엔트로피 부호화를 수행하는 것이 바람직하다. 또한, chroma component 중 적어도 하나 이상이 필터링되는 경우에는, luma filter가 chroma에도 그대로 적용될 수 있는 경우가 존재하기 때문에 luma filter가 그대로 사용되는지 또는 별도의 chroma filter가 사용되는지를 나타내는 정보를 포함할 수 있다. Chroma filter가 적응적으로 사용될 경우, 적응적 루프 필터는 복원된 영상에 적용될 수도 있고, 예측 신호에 적용될 수도 있고, 양자화된 예측 에러신호에 적용될 수도 있다. 별도의 charoma filter가 사용될 경우, 필터 정보들은 양자화되어 전송될 수 있다. 이 경우 슬라이스 헤더는 양자화 스텝 사이즈를 나타내는 정보들을 포함하여, 부호화시에는 필터계수를 양자화한 후 재부호화(엔트로피 부호화)하여 전송하고, 복호화시에는 엔트로피 복호화를 행한후 역양자화하여 얻은 필터 계수를 이용하여 적응적 루프 필터링을 수행한다. Chroma에 대한 필터 계수의 수평 또는/및 수직 방향의 필터 길이, 양자화 계수 등이 luma와 같이 또는 luma와 별도로 정해질 수 있다.
또한, luma component에 대한 루프 필터링 과정이 슬라이스 내의 모든 루마 샘블에 적용되는지 여부를 나타내는 정보를 슬라이스 헤더가 포함할 수 있다. 적용될 경우에는 슬라이스 내의 모든 luma component에 적응적 루프 필터 과정이 적용된다. 그러나, 그렇지 않을 경우에는 각각의 CU마다 필터링이 수행되는지 여부를 나타내는 정보가 CU 헤더에 포함되어야 한다. 적용될 경우에는 슬라이스 헤더가 루프필터의 적용 가능 CU size 정보를 나타내는 정보를 포함하는 것이 바람직하다. 상기 적용 가능 CU size 정보는 가장 큰 CU로부터 적용되는 가장 작은 크기의 CU size를 나타내는 정보를 depth 정보로서 표현할 수 있다.
2) 한편, 슬라이스 타입이 P 또는 B인 경우, 슬라이스 헤더는 슬라이스 단위로 적용 가능한 움직임 보상을 위한 필터 정보(Switched filter with offset 정보)를 포함할 수 있다. 필터 정보에는 필터 정보를 예측을 사용하여 부호화되는지 여부를 나타내는 정보를 포함할 수 있다. 예측을 사용할 경우에는 현재 전송할 필터정보가 이전에 전송된 필터정보와 동일한지 여부를 나타내는 정보를 포함할 수 있다. 상기 정보가 동일한 값을 나타낼 경우에는 이전 필터정보가 나타내는 필터의 계수들을 현재 필터 계수들로 이용하고(이 경우, 단지 필터 인덱스를 이용할수도 있음), 동일하지 않음을 나타내면 이전 필터값과 현재 필터값과의 차이값 또는 현재 필터값 또는 이들에 대응하는 필터정보가 전송될 수 있다. 상기 필터정보와 함께 offset 값을 나타내는 정보를 적응적으로 포함할 수 있다(포함하지 않을 경우 모든 offset값을 0으로 간주할수도 있다). 상기 정보는 모든 offset 값이 특정 기준값(예를 들어, 0)인지 아닌지를 나타내는 정보를 포함할 수 있으며, 특정 기준값이 아닌 경우에는 적용될 offset값들을 포함할 수 있다. Offset 값들은 P, B picture 모두에 적용할 값들과, B picture에만 적용할 값들을 포함할 수 있다.
3. Coding unit syntax
한편, 슬라이스는 슬라이스 헤더와 복수개의 CU를 포함한다. CU는 CU가 더 작은 size로 분할되는지 여부를 나타내는 정보(split_coding_unit_flag)를 포함할 수 있다. 현재의 CU가 가장 작은 CU인 경우에는 상기 정보를 포함하지 않는다. 한편, 상기 정보를 포함하지 않게 하는 대신에, 부호기와 복호기가 현재의 CU가 가장 작은 CU인지 아닌지를 판단하여, 가장 작은 CU가 아닌 경우에는 더 작은 CU로 분할되는 것으로 약속할수도 있고, 분할되지 않는 것으로 약속할 수도 있다. 따라서, 복호기에서는 상기 정보의 존재 여부를 판단하여 현재 CU의 분할 여부를 판단할 수 있게 된다.
또한, CU는 적응적 루프 필터를 적용할지 여부를 나타내는 정보(alf_flag)를 포함할 수 있으며, 존재하지 않는 경우에는 적용하지 않는 것으로 간주할 수 있다. 따라서 복호기에서는 상기 정보의 존재 여부를 판단하여 존재하지 않는 경우에는 루프 필터를 적용하지 않고, 존재하는 경우에는 그 값에 따라 적응적으로 루프 필터를 적용할 수 있다.
그리고, 포함된 CU가 더 작은 size로 분할되는지 여부를 나타내는 정보(split_coding_unit_flag)가 분할됨을 나타낼 경우에는 복수개의 하위 coding unit 을 가질 수 있다. 이는 recursive 하게 더 하위의 coding unit을 포함할 수 있다. 그러나, 상기 정보(split_coding_unit_flag)가 분할되지 않음을 나타낼 때에는 prediction unit을 포함한다.
또한, prediction mode가 skip mode가 아니거나, 인트라 예측의 planar preidction이 아닌 경우에는 transform unit을 포함할 수도 있다.
4 Prediction Unit syntax
Prediction unit은 slice가 I slice가 아닌 경우에 존재한다.
Prediction unit 헤더는 슬라이스의 타입의 I slice가 아니면 현재 coding unit의 skip 여부를 나타내는 정보(skip_flag)를 포함할 수 있다. 상기 정보가 skip을 나타내면 list 0 및/또는 list 1의 움직임 벡터 예측 index만을 포함할 수 있다. 상기 인덱스가 존재하지 않으면 상기 값들은 0으로 설정된 것으로 볼 수 있다.
그러나, 상기 정보가 skip을 나타내지 않으면, prediction mode를 나타내는 정보(pred_mode)를 포함할 수 있다. 상기 정보는 현재 prediction unit의 mode를 나타내는 것으로, 상기 mode는 intra, inter, direct, skip 등을 나타낼 수 있다. P 또는 B 슬라이스의 prediction unit은 상기 모드 중의 어느 하나를 가질 수 있다.
상기 정보(pred_mode)가 intra prediction을 나타낼 경우에는 planar prediction이 적용될 지 여부를 나타내는 정보(planar flag)를 포함할 수 있다. 상기 정보가 포함되어 planar prediction이 적용됨을 나타내면 planar prediction을 적용하기 위해 필요한 정보(planar_qdelta_indicatiorn)를 포함할 수 있다. 상기 정보는 부호기가 전송하는 현재 prediction 예측에 사용된 정보(예를 들어 bottom-right 픽셀값)를 복원하기 위한 값일 수 있다. 상기 값을 이용하여 부호기에서 planar 예측에 사용한 값과 동일 또는 유사한 값을 추출하여 잔차 신호와 더하여질 예측 블록을 생성할 수 있다. 또한 luma뿐 아니라 chroma에도 planar prediction이 행해졌는지 여부를 나타내는 정보와 행해진 경우에는 예측에 사용된 정보를 복원하기 위한 값들을 포함할 수 있다. 또한, prediction unit이 더 작은 유닛으로 분할되는지 여부를 나타내는 정보(intra_split_flag)를 포함할 수 있다. 상기 정보는 단순히 현재 prediction unit이 4개의 하위 prediction unit으로 분리되는지 여부를 나타낼 수도 있고, non square prediction unit을 나타낼 수도 있다. Non square unit으로는 rectangular 또는 직선으로 분할된 square의 partition일수도 있다.
그리고, 인트라 예측에 사용된 luma의 인트라 모드정보가 포함된다. 상기 모드 정보는 인트라 모드 부호화 방법에 의해 부호화된 정보일 수 있다. 따라서, 인트라 모드 복호화를 위해 먼저 인접하는 이전 블록의 인트라 예측 모드 중 어느 하나(더 작은 값, 동일할 경우에는 그 값)와 동일한지 여부를 나타내는 정보(prev_intra_luma_pred_flag)를 파싱하여 그 값이 1이면 현재 블록의 인트라 예측모드가 인접한 좌측 또는 상측의 available한 값으로부터 현재 블록의 인트라 모드를 구하고, 0이면 인트라 모드 정보를 나타내는 정보(rem_intra_lima_pred_mode)를 이용하여 구함. 여기서 상기 인트라 모드 정보를 나타내는 정보(rem_intra_lima_pred_mode)는 좌측 및 상측의 모드 번호 중 작은 번호를 제외한 나머지 인트라 모드중 몇번째인지를 나타내는 값을 나타낸다.
마찬가지로 chroma 의 intra mode 정보가 포함될 수 있다. 상기 chroma 모드 정보는 intra luma mode 정보를 이용하여 결정되는 mode를 포함할 수 있다. (p.51) 또한 prediction mode size에 따라 동일한 모드 번호에 다른 예측 방법(예를 들어, 8x8 size에는 diagonal prediction, 이외의 size에는 plane prediction)이 사용될 수도 있다.
상기 모드 정보는 상기 luma와 동일한 방법으로 부호화된 값일 수 있고, 인트라 예측 모드값을 그대로 전송할 수도 있다. 상기 luma와 동일한 방법으로 부호할지, 인트라 예측 모드값을 그대로 전송할지 여부는 prediction unit size에 따라 결정할 수도 있고, prediction mode 수에 따라 결정될 수도 있다. Prediction unit size에 따라 모드 수가 달리 결정될 수 있다. Chroma 모드는 luma mode에 기초하여 부호화될 수도 있다.
또한, combined intra prediction process가 intra 예측 샘플을 위해 적용될지 여부를나타내는 정보를 포함하여, 예측할 수 있다. (p.51의 표를 이용하여 구체적인 과정 표시가 가능하죠) 1) 현재 블록과 인접하는 미리 정해진 위치의 인트라 예측 모드를 로딩하는 단계, 2-1) 인트라 예측 모드가 2개 모두 available한 경우에는 예측번호 모드번호가 작은 값과 현재 블록의 인트라 예측 모드번호를 비교하는 단계, 2-2) 인트라 예측 모드 2개 중 어느 하나가 available한 경우에는 그 값과 현재 블록의 인트라 예측 모드번호를 비교하는 단계, 3) 상기 단계 2-1) 또는 2-2)에서 동일한 경우 동일한 값임을 나타내는 정보를 복호기로 전송하는 단계, 4) 상기 단계 2-1) 또는 2-2)에서 동일하지 않은 경우 작은 값 또는 available한 하나의 값을 제외한 나머지 모드들 중 몇번째 모드인지를 판단하는 단계, 5) 상기 순번의 모드 번호와 동일하지 않음을 나타내는 정보를 복호기로 전송하는 단계를 포함함. 여기서 size가 동일하지 않은 경우에도 적용할 수 있으며, 이때 좌측 블록은 복수개의 좌측 블록 중 상측에 위치하는 블록, 복수개의 상측 블록 중 우측(또는 좌측)에 위치하는 블록의 인트라 예측 모드를 이용하되, 어느 하나의 모드는 prediction mode size에 따라 동일한 모드 번호에 다른 예측 방법(예를 들어, 8x8 size에는 diagonal prediction, 이외의 size에는 plane prediction)이 사용될 수도 있다.
상기 정보(pred_mode)가 inter prediction을 나타낼 경우에는 inter prediction을 위해 현재의 coding unit를 분할하는 type 정보(inter_pratitioning_idc)를 포함할 수 있다. 상기 정보는 partition의 수, partition의 가로길이, 세로길이에 따라 결정되는 값일 수 있다. Arbitatry shape의 경우에는 shape을 특정할 수 있는 정보일 수 있다.
또한, 파티션 또는 예측 블록의 인터 예측을 위한 파라미터들이 인접하는(좌측 또는 상측의) inter predicted 파티션 또는 예측 블록으로부터 유도(inferred)되는지 여부를 나타내는 정보(merge_flag)를 포함할 수 있고, 유도되는 경우 좌측 및 상측의 파티션 또는 예측 블록의 어느 것으로부터 유도되는지를 나타내는 정보(merge_left_flag)를 포함할 수 있다. 유도되지 않는 경우에는 인터 예측을 위한 참조 픽쳐 인덱스, 움직임 벡터 resolution 정보, motion vector difference, mv_competition에 사용된 참조 움직임 벡터 정보 등이 포함된다.
또다른 방법으로, 파티션 또는 예측 블록의 인터 예측을 위한 파라미터들의 일부가, 인접하는(좌측 또는 상측의) inter predicted 파티션 또는 예측 블록으로부터 유도(inferred)되는지 여부를 나타내는 정보를 포함할 수 있다. 상기 정보는 1) 좌측 및 상측의 파티션 또는 예측 블록의 어느 것으로부터 유도되는지를 나타내는 정보(merge_left_flag)와, 2) 인터 예측을 위한 참조 픽쳐 인덱스, 움직임 벡터 resolution 정보, motion vector difference, mv_competition에 사용된 참조 움직임 벡터 정보들 중 어느 것들이 좌측 및 상측의 파티션 또는 예측 블록의 어느 것으로부터 유도되는지를 나타내는 정보를 포함할 수 있다.
상기 정보(pred_mode)가 Direct mode를 나타낼 경우에는~
5. Transform unit syntax
Residual block에 대한 VLC가 기존의 방법과 달라졌음.
Residual block에 대한 v2v가 새로 도입됨. 따라서, 이 2가지를 선택적으로 선택하므로, 어느 것을 선택할지에 대한 정보가 필요하고, 구체적인 조건이 있으면 이것도 필요. Transform block 단위로 설정되어 있어 entropy 부호화 부분에서 이를 한정하는 것이 필요.
Ⅲ. Intra prediction process
1. Luma sample에 대한 intra prediction process
비트스트림에 포함된 Prediction mode가 intra mode이고 planar prediction이 적용되지 않을 경우(planar flag=0)에 적용되는 과정이다. 즉, 인트라 예측을 위해 제일 먼저 현재 예측 블록 또는 파티션의 인트라 예측 모드가 planar 모드인지 아닌지를 판단한다. 이는 planar mode인 경우에는 별도의 정보(DC 차분 정보?)가 복호기로 전송되어야 하기 때문이다. 판단결과 planar 모드이면 후술하는 planar 모드 과정을 따르며, planar 모드가 아니면 인접하는 prediction block으로부터 유효한(available) intra 예측 모드를 입력 받는다. (물론, planar mode를 나타내는 정보가 별도로 존재하지 않고, 예측 모드의 하나로써 이 과정에 속할수도 있다). 현재 예측 블록이 더 작은 예측 블록으로 분할되는지를 나타내는 정보(intra_split_flag)에 따라 예측 블록의 luma component는 하나 또는 복수(통상 4개)의 파티션으로 구성된다. 예를 들어, 상기 정보가 0을 나타내거나 존재하지 않으면 1개의 파티션, 1을 나타내면 4개의 파티션을 가질 수 있다.
예측 블록의 크기에 따라 서로 다른 종류의 intra 예측 모드가 적용될 수 있다. 즉, prediction unit의 크기가 8x8보다 클 경우와, 그 이외의 경우로 나눌 수 있다(물론, 3가지 이상으로 나눌 수도 있으며, 크기는 8x8에 한정되지 않는다).
먼저, prediction unit의 크기가 8x8보다 큰 경우에 대해 설명한다. 이 경우에는 인트라 예측 모드가 vertical, horizontal, DC, Plane의 기존의 H.264 mode에 intra_angle mode 및 추가의 다른 모드(예를 들어, bilinear mode, planar mode 등)가 더 추가된다. 즉, 추가되는 인트라 예측 방향들은 (dx, dy)로 표현될 수 있다.
상기 intra mode의 수가 증가함에 따라 예측 모드를 부호화하는 효과적인 방법이 요구된다.
(1) 먼저, 인접하는 2개의 블록 또는 파티션(상측 및 좌측에 위치)의 인트라 예측 모드를 활용하는 방법이다. 이 방법은 예측 모드의 수가 (2n +1)개일 경우에 효과적이다. 상측 및 좌측에 인접하는 블록 또는 파티션의 유효한(available) 인트라 예측 모드(또는 모드 번호) 중의 작은 값과 현재 블록의 인트라 예측 모드(또는 모드번호)를 비교한다. 비교한 값이 같으면 이를 나타내는 정보를 복호기로 전송한다. 그러나, 비교값이 서로 다를 경우에는 이를 나타내는 정보와 함께, 상기 작은 값을 제외한 나머지 모드들의 모드 번호를 재정렬하여 얻어진 모드 ㄴㄷㅅ에서 현재 블록의 인트라 예측 모드 번호에 대응하는 모드번호를 n bit로 복호기로 전송한다. 그러나, 예측 모드의 수가 많아지게 되면 상기 방법은 효과적이지 못하게 되므로, 더욱 효과적인 방법이 요구된다.
(2) 또 다른 방법으로서, 상기 복수개의 인트라 예측 모드들을 그룹핑하여 이용하는 것이다. 즉, 복수개의 인트라 예측 모드들을 복수개의 예측 모드 그룹으로 그룹핑한다. 이때, 각각의 그룹마다 그룹인트라모드번호가 부여된다. 각각의 그룹은 하나 이상의 인트라 예측 모드를 포함하며, 이들 중에서 어느 하나를 MostProbable 예측모드를 선정한다(미리 정해진 값들일수도 있다). 다음으로, 현재 예측블록 또는 파티션에 인접한 예측 블록들 또는 파티션에 대한 인트라 예측모드 또는 이들의 속하는 그룹인트라 모드 번호를 읽어들여 작은값을 판단한다. 상기 인접한 예측 블록 또는 파티션은 상측 및 좌측에 위치할 수 있다. 다음으로, 작은 값의 그룹인트라 모드 번호와 현재 블록 또는 파티션의 인트라 예측 모드가 속하는 그룹의 그룹인트라 모드 번호를 비교하여, 두 값이 같으면 현재 블록 또는 인트라 예측 모드를 상기 그룹으로부터 예측 부호화한다. 구체적으로, 현재 블록의 인트라 예측 모드가 상기 작은 값을 갖는 그룹 인트라 예측 모드의 MostProboble 예측모드인지를 판단하고, yes인 경우에는 그 정보를 복호기로 전송하되, no인 경우에는 상기 그룹에 속하는 나머지 예측 모드들을 재정렬하여 대응되는 예측 번호를 상기 no인 정보와 함께 복호기로 전송한다.
그러나, 두 값이 다르면, 상기 그룹 이외에 속하는 예측 모드들을 재정렬하여 대응되는 예측 번호를 복호기로 전송하는 것이 바람직하다.
또 다른 방법은 다음과 같다. 먼저, 현재 예측 블록의 인트라 예측 모드를 결정한다. 다음으로, 인접하는 블록들의 예측 모드들로부터 어느 하나의 예측 모드를 선택한다. 상기 선택 방법은 (i) 상측 및 좌측 블록의 인트라 예측 모드 중 하나가 선택될 수 있다. 이때, 작은 번호가 선택되는 것이 바람직하다. 한편, 2개 중 어느 하나가 available 한 경우에는 이를 선택하며, 2개가 모두 유효하지 않은 경우에는 미리 정해진 어느 하나(예를 들어, vertical, horizontal 또는 DC mode 중 어느 하나)로 결정한다. (ii) 다른 방법으로 상측, 좌측, 좌상측 및 우상측들 중 유효한(available) 모드들이 나타내는 방향들을 다수(가장 많이) 포함하는 그룹을 만들 수 있는 모드(즉, 아래의 5개로 구성된 예측 그룹에 속하도록)를 선택할수도 있다. 다음으로, 상기 선택된 예측 모드의 예측 방향과 현재 블록의 인트라 예측 모드의 예측 방향이 소정 범위 이내에 존재하는지를 판단한다(예측모드의 번호가 예측방향과 일치하도록 정렬된 경우에는 예측모드의 번호만을 비교할 수도 있다). 현재 블록의 예측 모드가 상기 선택된 예측 모드 및 이에 인접한 좌우 2개의 예측 모드를 포함하는 예측모드 그룹(총 5개의 예측모드를 포함)에 속하는지 여부를 판단하는 것이 바람직하다. 상기 인접한 좌우 2개의 예측 모드는 예측 방향을 이용하여 결정될 수 있다. 현재 인트라 예측 블록의 예측 모드가 소정 범위 이내에 속하는 경우, 현재 블록의 인트라 모드는 상기 선택된 예측 모드 및 그에 인접하는 예측 모드를 이용하여 부호화된다. 이때의 예측 방법은 상기에서 언급한 (1)의 예측 방법과 동일한 것이 바람직하다. 이 경우 소정범위에 속한다는 정보가 상기 (1)에서 전송되는 정보와 함께 전송된다.
그러나, 현재 인트라 예측 블록의 예측 모드가 소정 범위 이내에 속하지 않는 경우에는 속하지 않는다는 정보와 함께, 상기 소정범위 이내에 속하는 모드들을 제외한 모드들을 재정렬하여 현재 블록의 부호화 모드의 인트라 예측 방향에 대응하는 모드 번호를 복호기로 전송하면 된다.
한편, 인트라 예측을 위해 다양한 방향의 예측 모드가 추가됨에 따라, 이에 따라 필요한 참조 픽셀의 수도 많아지게 된다. 그러나, 현재 예측 블록에 인접하는 유효한 참조 픽셀의 수가 한정되어 있어, 상기 다양한 방향의 예측을 하기 위해서는 참조 픽셀을 기 부호화되어 복원된 픽셀들로부터 생성할 필요가 있다. 예를 들어, 현재 예측블록의 상측에 인접하는 상측 블록의 경계 픽셀(boundary pixels)들은 유효하나, 우상측 블록의 하단의 픽셀(이하, 경계픽셀이라 함)이 유효하지 않는 경우에는 상기 상측 블록의 경계 픽셀의 하나 이상의 픽셀들로부터 상기 우상측 블록의 경계픽셀들을 생성한다. 바람직하게는 상측 블록의 경계 픽셀의 최우측 픽셀을 복사하는 것이 바람직하나, 좌측의 2개 이상의 픽셀들을 이용하여 현재 픽셀(우상측 경계픽셀)을 생성할수도 있다. (이때, 생성된 우상측 경계픽셀이 경계픽셀 생성에 다시 이용된다).
마찬가지로, 현재 예측블록의 좌측에 인접하는 좌측 블록의 경계 픽셀(boundary pixels)들은 유효하나, 좌하측 블록의 최우측 픽셀(이하, 경계픽셀이라 함)이 유효하지 않는 경우에는 상기 좌측 블록의 경계 픽셀의 하나 이상의 픽셀들로부터 상기 좌하측 블록의 경계픽셀들을 생성한다. 우상측 경계픽셀의 생성과 동일한 방법으로 생성 가능하다. 한편, 상기 이외의 유효하지 않은 나머지 참조픽셀들은 constant value로 정해질 수 있다. 상기 값은 2n-1인 것이 바람직하다. 여기서, n은 현재 luma 정보를 표현하는데 필요한 비트수 인 것이 바람직하다. 예를 들어, luma sample이 256의 계조를 가질 경우 상기 값은 8일 수 있다.
한편, 이미 존재하는 참조픽셀 또는 생성된 참조픽셀들은 적용되는 인트라 예측 모드, 참조 픽셀의 위치에 따라 적응적으로 필터링될 수 있다. 일예로서, 예측 모드가 vertical, horizontal, DC, plane인 경우에는 필터링을 적용하지 않고, 그 이외의 모드들에 대해서는 참조 픽셀들을 예측할 수 있다. 또한 참조 픽셀들의 위치에 따라 현재 블록의 상측의 참조픽셀들에 대해서는 가장 왼쪽, 및 가장 오른쪽의 픽셀들은 필터링하지 않고, 나머지 픽셀들은 이웃하는 2개의 픽셀들을 이용하여 필터링하는 것이 바람직하다. 마찬가지로 현재 블록의 좌측의 참조픽셀들에 대해서는 가장 위쪽 및 가장 아래쪽의 픽셀들은 필터링하지 않고, 그 사이의 픽셀들은 이웃하는 2개의 픽셀들을 이용하여 필터링한다. 그리고, 현재 블록에 인접하는 좌상측 블록의 우하측 픽셀은 상기 상측 블록의 가장 왼쪽 참조픽셀 및 상기 좌측 블록의 가장 위쪽 픽셀을 이용하여 필터링할 수 있다. 한편, 현재 블록에 인접하는 좌상측 블록의 우하측 픽셀은 필터링하지 않고, 상기 상측 블록의 가장 왼쪽 참조픽셀 및 상기 좌측 블록의 가장 위쪽 픽셀을 상기 우하측 픽셀을 이용하여 필터링할 수 도 있다.
한편, Directional intra prediction이 non-smooth pattern 등의 결과가 나와 transform이 효과적이지 않을 수 있다(ADI의 경우에 적용하기 위함) 따라서, smoothing filter를 사용하여 이 문제를 해결할 수 있다. 즉, direction pattern을 유지할 수 있도록 4-point filter(기존의 필터는 NxN symmetric filter 임)를 사용하는 것이 바람직하다. 이 경우, pred[x,y]를 다음과 같이 필터링 한다.
pred?? [x,y]=(pred[x,y]+pred[x-1,y]+ pred[x,y-1]+pred[x,y+1]+2)>>2.
Planar prediction
Planar 예측을 위해서는 현재 예측 블록의 후하귀(bottom-right) 픽셀값 또는 이에 대응하여 부호화되는 값이 비트스트림에 포함되어야 한다. 그러나 상기 값을 그대로 전송하는 경우에는 비트수가 많이 소모되므로, 참조값을 정하여 이 값과의 차분값을 전송하는 것이 바람직하다.
상기 참조값은 현재 예측 블록에 인접한 유효한 참조픽셀들의 평균값일 수 있다. 따라서, 상측 및 좌측 블록의 경계픽셀들이 모두 유효한 경우에는 그들의 평균값, 상측 블록의 경계픽셀들만이 유효한 경우에는 그들의 평균값, 좌측 블록의 경계픽셀들만이 유효한 경우에는 그들의 평균값일 수 있다. 또한, 상기 상측 및 좌측 블록에 유효한 경계픽셀들이 존재하지 않는 경우에는 상기 값은 2n-1인 것이 바람직하다. 여기서, n은 현재 luma 정보를 표현하는데 필요한 비트수인 것이 바람직하다. 또한 상기 참조값은 좌측 블록의 경계픽셀의 하단값 및 상측 블록의 경계블록의 최우측 값 중 어느 하나일 수 있다. 이 경우 좌측 블록의 경계픽셀만이 유효한 경우에는 좌측 블록의 경계픽셀의 하단값, 상측 블록의 경계픽셀만이 유효한 경우에는 상측 블록의 경계픽셀의 최우측 값, 둘다 존재할 경우에는 좌상측 블록의 우하귀 픽셀값과 상기 값들의 차이값을 비교하여 그 판단결과에 따라 어느 하나의 값(차이값이 적게 결정되는 방향에 대응하는 값)으로 정할 수도 있고, 또는 그 평균값으로 정할 수도 있다.
한편, 상기 참조값을 이용하여 예측 블록을 예측하기 위한 픽셀을 생성하는 방법에 대해 설명한다. 1) 먼저, 상기 참조값과 좌측 블록의 경계픽셀의 하단값을 선형결합하여 현재 블록의 하단 예측 픽셀들을 생성한다. 마찬가지로 상기 참조값과 상측 블록의 경계픽셀의 최우측 값을 선형결합하여 현재 블록의 우측 픽셀들의 예측 픽셀들을 생성한다. 이렇게 되면 나머지 픽셀들의 예측 픽셀들은 상기 좌측블록의 경계픽셀들, 상기 상측블록의 경계픽셀들 및 상기 현재 블록 하단 예측 픽셀들, 현재 블록 우측 픽셀들로 둘러싸이게 된다. 따라서, 상기 나머지 픽셀들은 상기 4방향의 대응하는 픽셀들의 선형결합으로 예측 픽셀이 생성된다. 이렇게 예측 픽셀들이 생성되면 원래의 예측 블록의 픽셀값들과 생성된 예측 픽셀값들의 차분값을 구하여 차분 블록을 생성한 후, 이를 부호화하여 전송한다.
한편, 이 경우, 상기 좌측블록의 경계픽셀은 유효하나, 상측 블록의 경계픽셀들이 유효하지 않는 경우가 발생할 수 있다. 이 경우, 상기 상측 블록의 경계픽셀들은 상기 참조값과 상기 좌측블록의 경계픽셀들로부터 얻어진 값과의 선형결합을 통해 생성할 수 있다. 상기 좌측블록의 경계픽셀로부터 얻어진 값은 좌측 경계픽셀의 최상측 값 또는 평균값인 것이 바람직하다. 마찬가지로, 상기 상측 블록의 경계픽셀들은 유효하나, 좌측블록의 경계픽셀들이 유효하지 않는 경우에는 상기 참조값과, 상측 블록의 경계필셀들(특히, 좌측값)로부터 얻어진 값의 선형결합을 통하여 생성할 수 있다. 좌측, 상측 블록의 경계필셀들이 모두 유효하지 않는 경우에는 2n-1인 것이 바람직하다. 여기서, n은 현재 luma 정보를 표현하는데 필요한 비트수인 것이 바람직하다
Edge-based DC mode
한편, 인트라 예측을 위한 인트라 예측 블록내에 edge가 존재하게 되면, 기존의 인트라 예측의 압축효율은 떨어지게 된다. 특히, 예측 블록의 size가 커지게 되면 이러한 현상은 더욱 크게 발생한다. 따라서, edge가 존재하는 블록들에 대해 효과적인 예측 모드가 필요하게 된다. 이 경우, edge 판단을 위한 판단값을 복호기로 추가로 전송해야 할 필요성이 있기 때문에 size가 작은 예측블록에 대해서는 효과적이지 못할 수 있다. 따라서, 상기 모드가 적용되는 예측블록의 크기는 예를 들어 8x8보다 큰 것이 바람직하며, 8x8 이하의 크기에서는 적용하지 않는 것으로 부호기와 복호기 사이에 약속될 수 있다. 따라서, 부호기는 블록 사이즈에 따라 상기 edge 판단을 위한 장치를 on-off시킬 수 있다.
부호기는 상기 블록 사이즈가 특정크기(예를 들어, 8x8) 이상이면, edge-based prediction mode를 on-off시킬지를 나타내는 정보(edge-based_prediction_flag)를 복호기로 전송한다. 상기 모드는 DC mode 또는 다른 어느 하나의 mode와 switching 할 수도 있고, 별도의 모드로서 포함될 수도 있다.
상기 정보가 on이면 부호기는 edge-detection process를 수행한다. Edge 검출은 이미 부호화되어 복호화된 픽셀값들에 적용된다.
상기 edge 검출을 위한 복호화된 픽셀값은 현재 예측블록의 상측의 (예측블록의 가로길이의 2배)xM, 좌측의 Mx(예측블록의 세로길이의 2배) 및 좌상측의 MxM 픽셀들로 구성될 수 있다. 상기 M값은 예측블록의 크기에 따라 가변할 수 있다. 예를 들어, 16x16 예측블록에서는 4, 32x32 예측블록에서는 8일수 있다. 또한 그 값이 4로 고정될수도 있다. 또한, 상기 복호화된 픽셀들이 유효하지 않는 경우에는 유효한 부분의 픽셀값들에 대해서만 edge 검출을 수행한다.
상기 복호화된 픽셀값을 이용하여 edge를 검출하기 위해 3x3 픽셀군단위로 x, y 방향으로 각각의 gradient 값들(gradx, grady)을 구하고, 이들의 제곱의 합을 이용하여 edge 존재 여부를 판단한다. Edge가 존재하는 것으로 판단되면, gradx 및 grady을 이용하여 surrounding sample들을 선형 결합으로 예측 픽셀을 구한다.
한편, edge가 존재하지 않는 것으로 판단되면, DC mode를 이용한 인트라 예측(즉, 유효한 참조픽셀들의 평균값을 예측 픽셀값으로 설정)을 수행한다.
2. Chroma sample에 대한 intra prediction process
두개의 색차 블록 또는 파티션에 대한 Prediction mode는 동일한 모드를 사용하는 것이 바람직하다. 색차 블록 또는 파티션에 대한 예측 모드가 intra mode이고 planar prediction이 적용되는 경우(planar flag=1)에는 상기한 luma에 대한 planar 예측과 동일한 방법으로 예측 픽셀들을 생성한다.
색차 블록 또는 파티션에 대한 예측 모드는 vertical(mode 0), Horizontal(mode 1), DC(mode 2), plane(mode 3) 및 Luma(mode 4)를 포함할 수 있다. Luma 모드일 경우에는 luma 픽셀들의 분포를 이용하여 chroma의 참조픽셀을 생성하는 것을 의미한다. 이에 대해서는 후술한다.
색차 블록 또는 파티션에 대한 예측 모드가 intra mode이고 planar prediction이 적용되지 않을 경우(planar flag=0), mode가 0~3이면 기존 H.264의 방법으로 참조픽셀을 생성한다. 이 경우, DC mode의 경우에는 edge-based prediction mode가 luma와 같이 적용될 수 있다. luma mode일 경우에는 복원된 luma sample을 linear filter를 사용하여 down-sampling하고, 상기 샘플들을 대하여 Mean value method를 적용하여 segmentation map을 작성한다. 상기 맵은 각 region을 예측하는데 사용되는 참조 픽셀들이 무엇인지를 나타낸다. 다음으로, 상기 Luma sample의 map을 chroma sample에 그대로 적용하여 예측을 수행한 후, 상기 예측된 값을 filtering하여 최종 예측 픽셀을 얻는다. 여기서, 상기 필터링은 3x3 average smooth filter 사용하는 것이 바람직하다.
예측 블록의 크기에 따라 서로 다른 종류의 intra 예측 모드가 적용될 수 있다. 즉, prediction unit의 크기가 8x8보다 클 경우와, 그 이외의 경우로 나눌 수 있다(물론, 3가지 이상으로 나눌 수도 있으며, 크기는 8x8에 한정되지 않는다).
도 3은 본 발명에 따른 동영상 부호화 장치를 나타내는 블록도이다.
도 3을 참조하면, 본 발명에 따른 동영상 부호화 장치(100)는 픽쳐 분할부(110), 변환부(120), 양자화부(130), 스캐닝부(131), 엔트로피 부호화부(140), 인트라 예측부(150), 인터 예측부(160), 역양자화부(135), 역변환부(125), 후처리부(170), 픽쳐 저장부(180), 감산부(190) 및 가산부(195)를 포함한다.
픽쳐 분할부(110)는 입력되는 비디오 신호를 분석하여 픽쳐를 가장 큰 부호화 단위마다 소정 크기의 부호화 단위로 분할하여 예측 모드를 결정하고, 상기 부호화 단위별로 예측 단위의 크기를 결정한다. 그리고, 픽쳐 분할부(110)는 부호화할 예측 단위를 예측 모드에 따라 인트라 예측부(150) 또는 인터 예측부(160)로 보낸다. 또한, 픽쳐 분할부(110)는 부호화할 예측 단위를 감산부(190)로 보낸다.
변환부(120)는 입력된 예측 단위의 원본 블록과 인트라 예측부(150) 또는 인터 예측부(160)에서 생성된 예측 블록의 잔차신호인 잔차 블록을 변환한다. 상기 잔차 블록은 부호화 단위로 구성된다. 부호화 단위로 구성된 잔차 블록은 최적의 변환 단위로 분할되어 변환된다. 예측 모드(intra or inter)에 따라 서로 다른 변환 매트릭스가 결정될 수 있다. 또한, 인트라 예측의 잔차 신호는 인트라 예측 모드에 따라 방향성을 가지므로 인트라 예측 모드에 따라 적응적으로 변환 매트릭스가 결정될 수 있다. 변환 단위는 2개(수평, 수직)의 1차원 변환 매트릭스에 의해 변환될 수 있다. 예를 들어, 인터 예측의 경우에는 미리 결정된 1개의 변환 매트릭스가 결정된다. 반면에, 인트라 예측의 경우, 인트라 예측 모드가 수평인 경우에는 잔차 블록이 수직방향으로의 방향성을 가질 확률이 높아지므로, 수직방향으로는 DCT 기반의 정수 매트릭스를 적용하고, 수평방향으로는 DST 기반 또는 KLT 기반의 정수 매트릭스를 적용한다. 인트라 예측 모드가 수직인 경우에는 수직방향으로는 DST 기반 또는 KLT 기반의 정수 매트릭스를, 수평 방향으로는 DCT 기반의 정수 매트릭스를 적용한다. DC 모드의 경우에는 양방향 모두 DCT 기반 정수 매트릭스를 적용한다. 또한, 인트라 예측의 경우, 변환 단위의 크기에 의존하여 변환 매트릭스가 적응적으로 결정될 수도 있다.
양자화부(130)는 상기 변환 매트릭스에 의해 변환된 잔차 블록의 계수들을 양자화하기 위한 양자화 스텝 사이즈를 부호화 단위별로 결정한다. 그리고, 결정된 양자화 스텝 사이즈 및 예측 모드에 따라 결정되는 양자화 매트릭스를 이용하여 상기 변환 블록의 계수들을 양자화한다. 양자화부(130)는 현재 부호화 단위의 양자화 스텝 사이즈 예측자로서 현재 부호화 단위에 인접한 부호화 단위의 양자화 스텝 사이즈를 이용한다. 양자화부(130)는 현재 부호화 단위의 좌측 부호화 단위, 상측 부호화 단위, 좌상측 부호화 단위 순서로 검색하여 유효한 부호화 단위의 양자화 스텝 사이즈를 현재 부호화 단위의 양자화 스텝 사이즈 예측자로 결정하고, 차분값을 엔트로피 부호화부(140)로 전송한다.
한편, 슬라이스가 부호화 단위로 분리될 경우에는 현재 부호화 단위의 좌측 부호화 단위, 상측 부호화 단위, 좌상측 부호화 단위 모두가 존재하지 않을 가능성이 있다. 반면에 최대 부호화 단위 내의 부호화 순서 상으로 이전에 존재하는 부호화 단위가 존재할 수 있다. 따라서, 현재 부호화 단위에 인접한 부호화 단위들과 상기 최대 부호화 단위 내에서는 부호화 순서상 바로 이전의 부호화 단위가 후보자가 될 수 있다. 이 경우, 1) 현재 부호화 단위의 좌측 부호화 단위, 2) 현재 부호화 단위의 상측 부호화 단위, 3) 현재 부호화 단위의 좌상측 부호화 단위, 4) 부호화 순서상 바로 이전의 부호화 단위 순서로 우선순위를 둘 수 있다. 상기 순서는 바뀔 수 있고, 상기 좌상측 부호화 단위는 생략될 수도 있다.
상기 양자화된 변환 블록은 역양자화부(135)와 스캐닝부(131)로 제공된다.
스캐닝부(131)는 양자화된 변환 블록의 계수들을 스캐닝하여 1차원의 양자화 계수들로 변환한다. 양자화 후의 변환 블록의 계수 분포가 인트라 예측 모드에 의존적일 수 있으므로, 스캐닝 방식은 인트라 예측 모드에 따라 결정된다. 또한, 계수 스캐닝 방식은 변환 단위의 크기에 따라 달리 결정될 수도 있다.
역양자화(135)는 상기 양자화된 양자화 계수를 역양자화한다. 역변환부(125)는 역양자화된 변환 계수를 공간 영역의 잔차 블록으로 복원한다. 가산기는 상기 역변환부에 의해 복원된 잔차블록과 인트라 예측부(150) 또는 인터 예측부(160)로부터의 예측 블록을 합쳐서 복원 블록을 생성한다.
후처리부(160)는 복원된 픽쳐에 발생하는 블록킹 효과의 제거하기 위한 디블록킹 필터링 과정, 화소 단위로 원본 영상과의 차이값을 보완하기 위한 적응적 오프셋 적용 과정 및 부호화 단위로 원본 영상과의 차이값을 보완하기 위한 적응적 루프 필터 과정을 수행한다.
디블록킹 필터링 과정은 미리 정해진 크기 이상의 크기를 갖는 예측 단위 및 변환 단위의 경계에 적용하는 것이 바람직하다. 상기 크기는 8x8일 수 있다. 상기 디블록킹 필터링 과정은 필터링할 경계(boundary)를 결정하는 단계, 상기 경계에 적용할 경계 필터링 강도(bounary filtering strength)를 결정하는 단계, 디블록킹 필터의 적용 여부를 결정하는 단계, 상기 디블록킹 필터를 적용할 것으로 결정된 경우, 상기 경계에 적용할 필터를 선택하는 단계를 포함한다.
상기 디블록킹 필터의 적용 여부는 i) 상기 경계 필터링 강도가 0보다 큰지 여부 및 ii) 상기 필터링할 경계에 인접한 2개의 블록(P 블록, Q블록) 경계 부분에서의 화소값들이 변화 정도를 나타내는 값이 양자화 파라미터에 의해 결정되는 제1 기준값보다 작은지 여부에 의해 결정된다.
상기 필터는 적어도 2개 이상인 것이 바람직하다. 블록 경계에 위치한 2개의 화소들간의 차이값의 절대값이 제2 기준값보다 크거나 같은 경우에는 상대적으로 약한 필터링을 수행하는 필터를 선택한다. 상기 제2 기준값은 상기 양자화 파라미터 및 상기 경계 필터링 강도에 의해 결정된다.
적응적 루프 필터 과정은 디블록킹 필터링 과정 또는 적응적 오프셋 적용 과정을 거친 복원된 영상과 원본 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. 적응적 루프 필터는 4x4 크기의 블록을 기반으로 하나의 라플라시안 활동값(Laplacian Activity value)을 통해 검출된다. 상기 결정된 ALF는 4x4 크기 또는 8x8 크기의 블록에 포함된 화소 전체에 적용될 수 있다. 적응적 루프 필터의 적용 여부는 부호화 단위별로 결정될 수 있다. 각 부호화 단위에 따라 적용될 루프 필터의 크기 및 계수는 달라질 수 있다. 부호화 단위별로 상기 적응적 루프 필터의 적용 여부를 나타내는 정보, 필터 계수 정보, 필터 형태 정보 등은 각 슬라이스 헤더에 포함되어 복호기로 전송될 수 있다. 색차 신호의 경우에는, 픽쳐 단위로 적응적 루프 필터의 적용 여부를 결정할 수 있다. 루프 필터의 형태도 휘도와 달리 직사각형 형태를 가질 수 있다.
픽쳐 저장부(180)는 후처리된 영상 데이터를 후처리부(160)로부터 입력 받아 픽쳐(picture) 단위로 영상을 복원하여 저장한다. 픽쳐는 프레임 단위의 영상이거나 필드 단위의 영상일 수 있다. 픽쳐 저장부(180)는 다수의 픽쳐를 저장할 수 있는 버퍼(도시되지 않음)를 구비한다.
인터 예측부(150)는 상기 픽쳐 저장부(180)에 저장된 적어도 하나 이상의 참조 픽쳐를 이용하여 움직임 추정을 수행하고, 참조 픽쳐를 나타내는 참조 픽쳐 인덱스 및 움직임 벡터를 결정한다. 그리고, 결정된 참조 픽쳐 인덱스 및 움직임 벡터에 따라, 픽쳐 저장부(150)에 저장된 다수의 참조 픽쳐들 중 움직임 추정에 이용된 참조 픽쳐로부터, 부호화하고자 하는 예측 단위에 대응하는 예측 블록을 추출하여 출력한다.
인트라 예측부(140)는 현재 예측 단위가 포함되는 픽처 내부의 재구성된 화소값을 이용하여 인트라 예측 부호화를 수행한다. 인트라 예측부(140)는 예측 부호화할 현재 예측 단위를 입력 받아 현재 블록의 크기에 따라 미리 설정된 개수의 인트라 예측 모드 중에 하나를 선택하여 인트라 예측을 수행한다. 인트라 예측부는 인트라 예측 블록을 생성하기 위해 참조 화소를 적응적으로 필터링한다. 참조 화소가 이용 가능하지 않은 경우에는 이용 가능한 참조 화소들을 이용하여 참조 화소들을 생성할 수 있다.
엔트로피 부호화부(130)는 양자화부(130)에 의해 양자화된 양자화 계수, 인트라 예측부(140)로부터 수신된 인트라 예측 정보, 인터 예측부(150)로부터 수신된 움직임 정보 등를 엔트로피 부호화한다.
도 4는 도 3의 스캐닝부(131)의 스캐닝 동작 과정에 나타내는 흐름도이다.
먼저, 현재 양자화된 계수 블록들을 복수개의 서브셋으로 분할할지 여부를 판단한다(S110). 상기 분할여부의 결정은 현재 변환 단위의 크기에 의존한다. 즉, 변환 단위의 크기가 제1 기준 크기보다 큰 경우 상기 부호화된 양자화 계수들을 복수개의 서브셋으로 분할한다. 상기 제1 기준 크기는 4x4 또는 8x8인 것이 바람직하다. 상기 소정 크기 정보는 픽쳐 헤더 또는 슬라이스 헤더를 통해 복호기로 전송할 수도 있다.
상기 양자화된 계수 블록들이 복수개의 서브셋으로 분할되지 않는 것으로 판단되면, 상기 양자화된 계수 블록에 적용될 스캔 패턴을 결정한다(S120). 그리고, 결정된 스캔 패턴에 따라 상기 양자화된 계수 블록의 계수들을 스캔한다(S130). 상기 스캔패턴은 예측 모드 및 인트라 예측 모드에 따라 적응적으로 결정될 수 있다.
인터 예측 모드의 경우에는 미리 정해진 하나의 스캔 패턴(예를 들어, 지그재그 스캔)만을 적용할 수 있다. 또한, 미리 정해진 복수개의 스캔 패턴들 중 어느 하나를 선택하여 스캔하고 스캔 패턴 정보를 복호기로 전송할 수 있다.
인트라 예측의 경우에는 인트라 예측 모드에 따라 미리 정해진 스캔패턴을 적용할 수 있다. 예를 들어, 수직 인트라 예측 모드 및 인접한 예측 방향의 소정개수의 인트라 예측 모드들에 대해서는 수평우선스캔을 적용한다. 수평 인트라 예측 모드 및 인접한 예측 방향을 갖는 소정개수의 인트라 예측 모드들에 대해서는 수직스캔을 적용한다. 상기 소정개수는 예측 단위별로 허용되는 인트라 예측 모드 수(또는 방향성 인트라 예측 모드 수) 또는 예측 단위의 크기에 따라 달라진다. 예를 들어, 현재 예측 단위에 허용되는 방향성 인트라 예측 모드의 수가 16인 경우에는 수평 또는 수직 인트라 예측 모드를 기준으로 양쪽으로 각각 2개인 것이 바람직하다. 현재 예측 단위에 허용되는 방향성 인트라 예측 모드의 수가 33인 경우에는 수평 또는 수직 인트라 예측 모드를 기준으로 양쪽으로 각각 4개인 것이 바람직하다.
한편, 비방향성 모드들에 대해서는 지그재그 스캔을 적용한다. 비방향성 모드는 DC 모드 또는 planar 모드일 수 있다.
현재 양자화된 계수 블록들이 복수개의 서브셋으로 분할되는 것으로 판단되면, 상기 변환 양자화된 계수 블록들을 복수개의 서브셋으로 분할한다(S140). 상기 복수개의 서브셋은 하나의 메인 서브셋과 적어도 하나 이상의 잔여 서브셋으로 구성된다. 메인 서브셋은 DC 계수를 포함하는 좌상측에 위치하고, 상기 잔여 서브셋은 메인 서브셋 이외의 영역을 커버한다.
다음으로, 서브셋에 적용될 스캔 패턴을 결정한다(S150). 상기 스캔패턴은 모든 서브셋에 적용된다. 상기 스캔패턴은 예측 모드 및 인트라 예측 모드에 따라 적응적으로 결정될 수 있다. 현재 변환 양자화된 계수 블록의 크기(변환 블록의 크기)가 제2 기준 크기(예를 들어, 8x8)보다 큰 경우에는 지그재그 스캔만을 적용할 수 있다. 따라서, 제1 기준크기가 제2 기준크기보다 작은 경우에만 상기 단계가 수행된다.
인터 예측 모드의 경우, 상기 서브셋 내의 스캔 패턴은 미리 정해진 하나의 스캔 패턴(예를 들어, 지그재그 스캔)일 수 있다. 인트라 예측의 경우에는 S120에서와 동일하다.
상기 서브셋 내의 양자화 계수들의 스캔순서는 역방향으로 스캔한다. 즉, 스캔 패턴에 따라 상기 서브셋 내의 0이 아닌 마지막 양자화 계수로부터 역방향으로 0이 아닌 양자화 계수들을 스캔하여 엔트로피 부호화할 수 있다.
다음으로, 각 서브셋 별로 스캔 패턴에 따라 양자화 계수들을 스캔한다(S160). 상기 서브셋 내의 양자화 계수들의 스캔순서는 역방향으로 스캔한다. 즉, 스캔 패턴에 따라 상기 서브셋 내의 0이 아닌 마지막 양자화 계수로부터 역방향으로 0이 아닌 양자화 계수들을 스캔하여 엔트로피 부호화할 수 있다.
또한, 서브셋 간의 스캔패턴은 지그재그 스캔을 적용한다. 스캔 패턴은 메인 서브셋으로부터 순방향으로 잔여 서브셋들로 스캔하는 것이 바람직하나, 그 역방향도 가능하다. 또한, 서브셋 간의 스캔패턴을 서브셋 내에 적용된 스캔 패턴과 동일하게 적용할 수도 있다.
한편, 부호기는 상기 변환 단위내의 0이 아닌 마지막 양자화 계수의 위치를 나타낼 수 있는 정보를 복호기로 전송한다. 각 서브셋 내의 0이 아닌 마지막 양자화 계수의 위치를 나타낼 수 있는 정보도 복호기로 전송한다. 상기 정보는 각각의 서브셋 내의 0이 아닌 마지막 양자화 계수의 위치를 나타내는 정보일 수 있다.
도 5는 본 발명의 실시예에 따른 동영상 복호화 장치를 나타내는 블록도이다.
도 5를 참조하면, 본 발명에 따른 동영상 복호화 장치는, 엔트로피 복호부(210), 역스캐닝부(220), 역양자화부(230), 역변환부(240), 인트라 예측부(250), 인터 예측부(260), 후처리부(270), 픽쳐 저장부(280), 가산부(290), 및 인트라/인터전환 스위치(295)를 구비한다.
엔트로피 복호부(210)는, 수신된 부호화 비트 스트림을 복호하여, 인트라 예측 정보, 인터 예측 정보, 양자화 계수 정보 등으로 분리한다. 엔트로피 복호부(210)는 복호된 인터 예측 정보를 인터 예측부(260)에 공급한다. 엔트로피 복호부(210)는 상기 인트라 예측 정보를 인트라 예측부(250) 및 역변환부(240)로 공급한다. 또한, 상기 엔트로피 복호화(210)는 상기 역양자화 계수 정보를 역스캔부(220)로 공급한다.
역스캐닝부(220)는 상기 양자화 계수 정보를 2차원 배열의 역양자화 블록으로 변환한다. 상기 변환을 위해 복수개의 역스캐닝 패턴 중에 하나를 선택한다. 계수 역스캐닝 패턴은 예측모드와 인트라 예측 모드 중 적어도 하나에 기초하여 결정된다. 역스캐닝부(220)의 동작은 상기에서 설명한 스캐닝부(131)의 동작의 역과정과 동일하다.
역양자화부(230)는 현재 부호화 단위의 양자화 스텝 사이즈 예측자를 결정한다. 상기 예측자의 결정과정은 도 3의 양자화부(130)의 예측자 결정 과정과 동일하므로 생략한다. 역양자화부(230)는 결정된 양자화 스텝 사이즈 예측자와 수신한 잔차 양자화 스텝 사이즈를 더하여 현재 역양자화 블록에 적용된 양자화 스텝 사이즈를 얻는다. 역양자화부(230)는 양자화 스텝 사이즈가 적용된 양자화 매트릭스를 이용하여 역양자화 계수를 복원한다. 복원하고자 하는 현재 블록의 크기에 따라 서로 다른 양자화 매트릭스가 적용되며, 동일 크기의 블록에 대해서도 상기 현재 블록의 예측 모드 및 인트라 예측 모드 중 적어도 하나에 기초하여 양자화 매트릭스가 선택된다.
역변환부(240)는 역양자화 블록을 역변환하여 잔차 블록을 복원한다. 그리고, 상기 복원된 양자화 계수를 역변환하여 잔차 블록을 복원한다. 상기 역양자화 블록에 적용할 역변환 매트릭스는 예측 모드(인트라 또는 인터) 및 인트라 예측 모드에 따라 적응적으로 결정될 수 있다. 도 3의 변환부(120)에 적용된 변환 매트릭스의 역변환 매트릭스가 결정되므로 구체적인 기재는 생략한다.
가산부(290)는 역변환부(240)에 의해 복원된 잔차 블록과 인트라 예측부(250) 또는 인터 예측부(260)에 의해 생성되는 예측 블록을 가산함으로써, 영상 블록을 복원한다.
인트라 예측부(250)는 엔트로피 복호화부(210)로부터 수신된 인트라 예측 정보에 기초하여 현재 블록의 인트라 예측 모드를 복원한다. 그리고, 복원된 인트라 예측 모드에 따라 예측 블록을 생성한다.
인터 예측부(260)는 엔트로피 복호화부(210)로부터 수신된 인터 예측 정보에 기초하여 참조 픽쳐 인덱스와 움직임 벡터를 복원한다. 그리고, 상기 참조 픽쳐 인덱스와 움직임 벡터를 이용하여 현재 블록에 대한 예측 블록을 생성한다. 소수 정밀도의 움직임 보상이 적용될 경우에는 선택된 보간 필터를 적용하여 예측 블록을 생성한다.
후처리부(270)의 동작은 도 3의 후처리부(160)의 동작과 동일하므로 생략한다.
픽쳐 저장부(280)는 후처리부(270)에 의해 후처리된 복호 영상을 픽쳐 단위로 저장한다.
도 6은 본 발명에 따른 부호화 장치(100)의 인트라 예측부(150)를 나타내는 블록도이다.
도 6을 참조하면, 인트라 예측부(150)는 참조화소 생성부(151), 참조화소 필터링부(152), 예측모드 결정부(153), 예측블록 생성부(154), 예측블록 필터링부(155) 및 예측모드 부호화부(156)를 포함한다.
참조화소 생성부(151)는 인트라 예측을 위한 참조 화소들의 생성 여부를 판단하고, 생성될 필요성이 있을 경우 참조 화소를 생성한다.
도 7은 현재 예측 단위의 인트라 예측에 사용되는 참조 화소들의 위치를 나타낸 도면이다. 도 7에 도시된 바와 같이, 현재 예측 단위의 상측 참조 화소는 현재 예측 단위의 가로 길이의 2배에 걸쳐 존재하는 화소들(영역 C, D)이고, 좌측 참조 화소들은 현재 예측 단위의 세로길이의 2배에 걸쳐 존재하는 화소들(영역 A, B)이다.
참조 화소 생성부(151)는 상기한 모든 위치의 참조화소들이 이용 가능(available)한지를 판단한다. 참조 화소의 일부가 이용 가능하지 않을 경우에는 이용 가능한 참조 화소들을 이용하여 이용 가능하지 않은 위치의 참조 화소들을 생성한다.
먼저, 부호화할 현재 예측 단위의 상측 또는 좌측 영역 중 어느 한 영역의 참조화소들이 모두 이용 가능하지 않은 경우에 대해 설명한다.
예를 들어, 현재 예측 단위가 픽쳐 또는 슬라이스의 상측 경계에 위치하는 경우에는 현재 예측 단위의 상측의 참조화소들(영역 C, D)이 존재하지 않는다. 마찬가지로, 현재 예측 단위가 픽쳐 또는 슬라이스의 좌측 경계에 위치하는 경우에는 좌측의 참조 화소들(영역 A, B)이 존재하지 않는다. 이와 같이 어느 한쪽의 참조화소들이 이용 가능하지 않을 경우, 가장 인접한 이용 가능한 참조 화소를 복사하여 참조 화소를 생성할 수 있다. 전자의 경우, 가장 인접한 이용 가능한 참조 화소는 좌측 가장 위쪽의 참조화소(즉, 영역 A의 가장 위쪽 참조화소)이다. 후자의 경우, 가장 인접한 이용 가능한 참조 화소는 상측 가장 왼쪽의 참조화소(즉, 영역 C의 가장 왼쪽의 참조화소)이다. 상기한 방식의 적용은 default 일 수 있으나, 필요한 경우, 시퀀스 단위, 화면단위 또는 슬라이스 단위마다 적응적으로 적용될 수도 있다.
다음으로, 부호화할 현재 예측 단위의 상측 또는 좌측의 참조 화소들 중 일부분이 이용 가능하지 않은 경우에 대해 설명한다. 이용 가능하지 않은 참조화소를 기준으로 1) 한쪽 방향으로만 이용 가능한 참조 화소들이 존재하는 경우와, 2) 양쪽 모두 이용 가능한 참조 화소들이 존재하는 경우의 2가지가 존재한다.
1)의 경우에 대해 설명한다.
예를 들어, 현재 예측 단위가 픽쳐 또는 슬라이스의 우측 경계, 또는 최대 부호화 단위의 우측 경계에 위치하는 경우에는 영역 D의 참조화소들이 이용 가능하지 않다. 마찬가지로 현재 예측 단위가 픽쳐 또는 슬라이스의 아래측 경계 또는 최대 부호화 단위의 아래측 경계에 위치하는 경우에는 영역 B의 참조화소들이 이용 가능하지 않다.
이 경우에는 가장 가까운 위치에 존재하는 이용 가능한 참조 화소들을 복사하여 참조 화소들을 생성할 수 있다. 또 다른 방법으로 가장 가까운 위치에 존재하는 복수개의 이용 가능한 참조 화소들을 참조 화소들을 생성할 수도 있다.
2)의 경우에 대해 설명한다.
예를 들어, 현재 예측 단위가 슬라이스의 상측 경계에 위치하고, 상기 현재 예측 단위의 우상측 예측 단위가 이용 가능한 경우, 현재 예측 단위의 영역 C에 대응하는 참조 화소들은 이용 가능하지 않지만, 영역 A 및 영역 D에 위치하는 참조화소들은 이용 가능하다. 이와 같이 양쪽 모두 이용 가능한 참조화소가 존재하는 경우에는, 각 방향으로 가장 가까운 위치에 존재하는 이용 가능한 참조화소 1개씩을 선택하여, 이들(즉, 영역 A의 가장 위쪽 참조화소와 영역 D의 가장 왼쪽 참조화소)을 이용하여 이용 가능하지 않은 위치의 참조화소들을 생성한다.
상기 2개 참조 화소(각 방향으로 가장 가까운 위치에 존재하는 화소)의 반올림한 평균값을 참조화소값으로 생성할 수도 있다. 그러나, 이용 가능하지 않은 참조화소 영역이 큰 경우에는 이용 가능한 화소와 생성된 화소 사이의 단차가 발생할 가능성이 크므로, 선형 보간 방법을 사용하여 참조 화소를 생성하는 것이 더욱 유용하다. 구체적으로 이용 가능한 2개의 참조 화소들과의 위치를 고려하여 현재 위치의 이용 가능하지 않은 참조 화소를 생성할 수 있다.
다음으로, 부호화할 현재 예측 단위의 상측 및 좌측의 참조 화소들 모두가 이용 가능하지 않는 경우에 대해 설명한다. 예를 들어, 현재 예측 단위가 픽쳐 또는 슬라이스 좌상측 경계에 인접하는 경우에는 이용 가능한 참조화소들이 존재하지 않는다.
이러한 경우에는 현재 예측 단위의 내부에 존재하는 2개 이상의 화소들을 이용하여 일부 또는 전부의 참조화소들을 생성할 수 있다. 상기 참조화소를 생성하기 위해 사용되는 현재 예측 단위의 내부에 존재하는 화소의 수는 2 또는 3일 수 있다.
도 8은 본 발명에 따른 참조화소를 생성하는 방식을 나타낸 도면이다.
도 8을 참조하여, 2개의 화소를 이용할 경우에 대해 먼저 설명한다. 현재 예측 단위의 좌상측 화소(○)과 다른 하나의 화소를 이용하는 경우이다. 다른 하나의 화소는 우상측 화소(□), 좌하측 화소(△), 우하측 화소(▽)일 수 있다. 현재 예측 단위의 좌상측 화소(○)과 우상측 화소(□)을 사용할 경우에는 상기 좌상측 화소와 우상측 화소는 대응하는 상측 위치로 복사하고, 상기 복사된 좌상측 화소와 우상측 화소를 이용하여 그 사이의 영역(영역 C)의 참조 화소들을 생성한다. 상기 생성되는 참조화소들은 상기 2개의 참조화소(복사된 좌상측 화소와 우상측 화소)들의 반올림한 평균값을 또는 선형 보간 방법에 생성된 값일 수 있다. 우상측 화소(□)을 복사하거나 복수개의 상측 생성 참조화소들을 이용하여 영역 D의 참조화소들을 생성한다. 현재 예측 단위의 좌상측 화소(○)과 좌하측 화소(△)을 사용할 경우에도 위와 동일한 방식을 적용한다. 현재 예측 단위의 좌상측 화소(○)과 우하측 화소(▽)을 사용할 경우에는 우하측 화소 화소(▽)을 수평방향 및 수직방향으로 동일한 위치의 참조 화소 위치로 복사한다. 그리고 그 이후의 참조화소 생성방식은 위와 동일한 방식을 적용한다.
3개의 화소를 이용할 경우에 대해 먼저 설명한다. 현재 예측 단위의 좌상측 화소(○), 우상측 화소(□), 좌하측 화소(△)을 이용할 수 있다. 이 경우, 각각의 화소를 대응하는 참조화소 위치로 복사한 후, 상기 화소들을 이용하여 나머지 참조화소들을 생성한다. 상기 나머지 참조화소들의 생성방식은 위의 2개의 화소를 이용하는 경우와 동일하다.
한편, 상기와 같은 방식을 이용할 경우, 참조 화소 생성에 이용된 현재 예측 단위의 내부의 화소들은 복호기로 전송되어야 한다. 이 경우, 정보 전송량을 줄이기 위해 좌상측 화소(○) 이외의 값은 좌상측 화소(○)과의 차이값을 전송한다. 또한, 상기 참조화소 생성에 이용된 좌상측 화소값은 양자화된 값일 수 있고, 엔트로피 부호화되어 전송될 수도 있다.
상기한 현재 예측 단위의 내부에 존재하는 2개 이상의 화소들을 이용하여 참조화소들을 생성하는 방법은 슬라이스 타입이 인트라(I)인 경우에 효과적이다.
부호화할 현재 예측 단위의 상측 및 좌측의 참조 화소들 모두가 이용 가능하지 않는 경우의 참조화소를 생성하는 또 다른 방법에 대해 설명한다. 이 방식은 슬라이스 타입이 인트라(I)가 아닌 경우에 효과적이다.
먼저, 현재 블록의 이전에 부호화된 참조 픽쳐 내에, 현재 예측 단위의 참조화소들의 위치와 동일한 위치에 화소들이 존재하는지를 판단한다. 존재할 경우, 상기 참조 픽쳐 내의 화소들을 복사하여 현재 예측 단위의 참조화소를 생성한다.
존재하지 않을 경우, 이전에 부호화된 참조 픽쳐 내에, 현재 예측 단위의 참조화소들의 위치와 가장 가까운 위치(1화소 떨어져 있는 위치)에 화소들이 존재하는지를 판단하고, 존재하는 경우 이들을 복사하여 현재 예측 단위의 참조화소로 이용한다.
참조화소 필터링부(152)는 현재 예측 단위의 참조화소들을 적응적으로 필터링한다. 이는 참조화소들 사이의 화소값의 변화량을 스무딩(smoothing)하기 위한 것으로, low-pass filter를 적용한다. Low-pass filter는 3-tap 필터인 [1, 2, 1] 또는 5-tap 필터인 [1, 2, 4, 2, 1]일 수 있다.
또한, 현재 예측 단위의 크기에 따라 적응적으로 필터를 적용할 수 있다. 예를 들어, 현재 예측 단위가 소정 크기 이상인 경우에는 필터를 적용하지 않을 수도 있다. 구체적으로 현재 예측 단위의 크기가 64x64인 경우에는 필터를 적용하지 않는다.
또한, 상기 low-pass filter는 현재 예측 단위의 크기 및 인트라 예측 모드에 따라 적응적으로 적용될 수 있다.
인트라 예측 모드가 수평 또는 수직인 경우에는 예측 블록의 화소를 생성하기 위해 1개의 참조화소를 사용한다. 따라서, 이 경우에는 상기 필터를 적용하지 않는다. 또한, 인트라 예측 모드가 DC인 경우에는 참조화소의 평균값을 이용하므로, 참조화소들 간의 단차에 영향을 받지 않는다. 따라서, DC 모드인 경우에도 필터를 적용하지 않는다.
반면에, 인트라 예측 방향이 수평 또는 수직 방향에 대해 45° 기울어진 모드들에 대해서는 현재 예측 단위의 크기에 관계없이 필터를 적용한다. 이 경우, 미리 정해진 크기보다 작은 예측 단위에 대해서는 제1 필터를, 미리 정해진 크기 이상의 예측 단위에 대해서는 스무딩 효과가 더 큰 제2 필터를 사용할 수 있다. 상기 미리 정해진 크기는 16x16일 수 있다.
한편, 예측 블록의 화소를 생성하기 위해 적어도 2개 이상의 참조 화소들을 사용하는 상기 언급한 모드(6가지) 이외의 모드에서는 현재 예측 단위의 크기 및 인트라 예측 모드에 따라 적응적으로 적용될 수 있다. 다만, 플래너 모드에서는 참조 화소들에 대한 필터링을 수행하지 않는다.
또한, 상기 선형결합에 의해 생성된 참조 화소들에 대해서는 필터를 적용하지 않을 수 있다.
예측블록 생성부(153)는 인트라 예측 모드에 대응하는 예측 블록을 생성한다. 상기 예측 블록은 인트라 예측 모드에 기초하여 참조 화소들 또는 참조화소들의 선형결합을 이용하여 생성한다. 예측 블록을 생성하기 위해 사용되는 상기 참조화소들은 참조화소 필터링부(152)에 의해 필터링된 참조 화소들일 수 있다.
예측블록 필터링부(154)는 예측블록 생성부(153)에 의해 생성된 예측 블록을 사용된 인트라 예측 모드에 따라 적응적으로 필터링한다. 상기 동작은 생성된 예측 블록과 부호화할 현재 예측 단위의 잔차신호를 최소화하기 위한 것이다. 즉, 참조화소들과 인접하는 예측 블록 내의 화소 사이의 차이값은 인트라 예측 모드에 따라 달라질 수 있다. 따라서, 단차를 많이 발생시키는 인트라 예측 모드에 의해 생성된 예측 블록 내의 화소들을 필터링하면 잔차를 줄일 수 있다.
DC 모드의 경우, 예측 블록이 참조화소들의 평균값으로 이루어지기 때문에 참조화소들과 인접하는 예측 블록 내의 화소 사이에는 단차가 발생할 수 있다. 따라서, 참조화소들과 인접하는 예측 블록 내의 상측 라인의 화소들 및 좌측 라인의 화소들은 참조화소들을 이용하여 필터링한다. 구체적으로, 예측 블록 내의 좌상측 코너에 위치하는 화소는 인접하는 참조화소가 2개(상측 참조화소와 좌측 참조화소)이므로, 3-tap 필터를 이용하여 상기 좌상측 코너의 화소를 필터링(또는 스무딩)한다. 그리고, 그 이외의 화소들(즉, 예측 블록 내의 상측 라인의 화소들 및 좌측 라인의 화소들)은 인접하는 참조화소가 1개이므로 2-tap 필터를 이용하여 필터링한다.
또한, 모드번호 0, 6 및 상기 모드들 사이의 방향성을 갖는 인트라 예측 모드(모드번호 22, 12, 23, 5, 24, 13, 25)들에 의해 생성된 참조 블록은 현재 예측 유닛의 상측 참조픽셀들만을 이용하여 예측 블록이 생성된다. 따라서, 참조픽셀과 인접하는 생성된 예측블록의 좌측 라인의 픽셀들은 아래쪽으로 갈수록 단차가 커질 수 있다.
또한, 모드번호 1, 9 및 상기 모드들 사이의 방향성을 갖는 인트라 예측 모드(모드번호 30, 16, 31, 8, 32, 17, 33)들에 의해 생성된 참조 블록은 현재 예측 유닛의 좌측 참조픽셀들만을 이용하여 예측 블록이 생성된다. 따라서, 참조픽셀과 인접하는 생성된 예측블록의 상측 라인의 픽셀들은 오른쪽으로 갈수록 단차가 커질 수 있다.
따라서, 상기 단차를 보완하기 위해 DC 이외의 방향성 모드에 대해서도 적응적으로 예측 블록의 일부 화소들을 필터링한다.
모드번호가 6일 경우에는 좌측 참조화소와 인접하는 생성된 예측 블록내의 좌측 라인의 전부 또는 일부화소들을 필터링한다. 상기 좌측 라인의 일부화소들은 좌측라인의 아래쪽의 일부, 예를 들어, N/2개의 화소들일 수 있다. 여기서 N은 현재 예측 단위의 세로 길이(height)를 나타낸다.
마찬가지로 모드번호가 9인 경우에는 인접하는 생성된 예측 블록내의 상측 라인의 전부 또는 일부화소들을 필터링한다. 상기 상측 라인의 일부화소들은 상측라인의 오른쪽의 일부, 예를 들어, M/2개의 화소들일 수 있다. 여기서 M은 현재 예측 단위의 가로 길이(width)를 나타낸다.
그리고, 상기 모드번호 0, 6 사이의 방향성을 갖는 모드들 중 모드 번호 6에 가까운 방향성을 갖는 소정 개수의 모드들에 대해서도 모드번호 6와 동일한 방법으로 필터링을 수행할 수 있다. 이 경우 모드 번호 6으로부터 먼 모드일수록 멀어질수록 필터링 해야 할 화소의 수가 같거나 작아질 수 있다.
그리고, 상기 모드번호 1, 9 사이의 방향성을 갖는 모드들에 대해서도 동일한 방법을 적용할 수 있다.
한편, 현재 예측 단위의 크기에 따라 적응적으로 적용할 수도 있다. 예를 들면, 인트라 예측 모드별로 소정 크기 이하의 예측 단위에 대해서는 필터를 적용하지 않을 수도 있다.
예측모드 결정부(153)는 참조 화소들을 이용하여 현재 예측 단위의 인트라 예측 모드를 결정한다. 예측모드 결정부(153)는 각 인트라 예측 모드에 대한 잔차블록의 부호화량이 최소가 되는 모드를 현재 예측 단위의 인트라 예측 모드로 결정할 수 있다. 잔차 블록을 구하기 위해 각 인트라 예측 모드에 따라 예측 블록을 생성한다. 상기 예측 블록은 각 인트라 예측 모드에 따라 참조화소 필터링부에 의해 필터링된 화소를 이용한 예측블록 또는 상기 생선된 예측블록을 소정의 조건에 따라 예측블록 필터링부(155)에서 필터링한 예측블록일 수 있다.
예측블록 송신부(157)은 상기 예측모드 결정부(155)에 의해 결정된 인트라 예측 모드에 대응하여 생성된 예측 블록을 감산부(190)로 송신한다.
예측 모드 부호화부(156)는 예측모드 결정부(155)에 의해 결정된 현재 예측 단위의 인트라 예측 모드를 부호화한다. 예측 모드 부호화부(156)는 인트라 예측부(150)에 포함되어 수행될 수도 있고, 엔트로피 부호화부(140)에서 행해질 수도 있다.
예측 모드 부호화부(156)는 현재 예측 단위의 상측 인트라 예측모드와, 현재 예측 단위의 좌측 인트라 예측 모드를 이용하여 현재 예측 단위의 인트라 예측 모드를 부호화한다.
먼저, 현재 예측 단위의 상측 및 좌측 인트라 예측 모드를 유도한다. 현재 예측 단위의 상측 예측 단위가 복수개 존재하는 경우에는 미리 정해진 방향(예를 들어, 우→좌)으로 스캔하면서 유효한 첫번째 예측 단위의 인트라 예측 모드를 상측 인트라 예측 모드로 설정한다. 현재 예측 단위의 좌측 예측 단위가 복수개 존재하는 경우에도 미리 정해진 방향(예를 들어, 하→상)으로 스캔하면서 유효한 첫번째 예측 단위의 인트라 예측 모드를 좌측 인트라 예측 모드로 설정할 수 있다. 또는 복수개의 유효한 예측 단위들의 모드번호들 중 가장 작은 모드번호를 상측 인트라 예측 모드로 설정할 수도 있다.
상기 상측 인트라 예측 모드 또는 좌측 인트라 예측 모드가 유효하지 않는 경우에는 DC 모드(모드번호 2)를 상기 상측 또는 좌측 인트라 예측모드로 설정할 수 있다. 상기 상측 또는 좌측 인트라 예측 모드가 유효하지 않는 경우는 대응하는 인트라 예측 단위가 존재하지 않는 경우이다.
다음으로, 상기 상측 또는 좌측 인트라 예측 모드가 번호가 현재 예측 단위에서 허용되는 인트라 예측 모드의 수보다 크거나 같으면 상기 상측 또는 좌측 인트라 예측 모드를 미리 정해진 개수의 인트라 예측 모드들 중 하나로 변환한다. 상기 미리 정해진 개수는 현재 예측 단위의 크기에 달라 달라진다. 예를 들어, 현재 예측 단위의 크기가 4x4이면 9개의 모드들(0~8번 모드) 중 하나로 매핑하고, 현재 예측 단위의 크기가 64x64이면 3개의 모드들(0~2번 모드) 중 하나로 매핑한다. 또한, 현재 예측 단위에서 허용된 인트라 예측 모드들 중 하나로 변환할 수도 있다.
다음으로, 현재 예측 단위의 인트라 예측 모드번호가 상기 좌측 및 상측 인트라 예측 모드번호들 중 하나와 동일하면, 동일함을 나타내는 플래그와 상기 상측 및 좌측 인트라 예측 모드들 중 어느 하나를 가리키는 플래그를 전송한다. 이 경우, 상기 좌측 및 상측 인트라 예측 모드가 동일하면, 동일함을 나타내는 플래그만을 전송할 수 있다. 또한, 상기 상측 및 좌측 인트라 예측 모드들 중 어느 하나만이 유효하고 현재 블록의 인트라 예측 모드와 동일한 경우에도 상기 인접 블록의 모드와 동일함을 나타내는 플래그 만을 전송할 수 있다.
그러나, 현재 예측 단위의 인트라 예측 모드가 상기 좌측 및 상측 인트라 예측 모드들과 다른 모드일 경우에는, 현재 예측 단위의 인트라 예측 모드 번호와 상기 좌측 및 상측 인트라 예측 모드 번호들과 비교한다. 좌측 및 상측 인트라 예측 모드 번호 중 현재 예측 단위의 인트라 예측 모드 번호보다 크지 않는 경우의 수를 계산하고, 현재 예측 단위의 인트라 예측 모드 번호를 상기 경우의 수만큼 감소시킨 값을 전송할 현재 예측 단위의 최종 인트라 예측 모드로 결정한다. 여기서, 좌측 및 상측 인트라 예측 모드 번호가 동일할 경우에는 1개로 취급한다.
상기 상측 및 좌측 인트라 예측 모드가 동일한지 여부에 따라, 상기 결정된 최종 인트라 예측 모드를 엔트로피 부호화하기 위한 테이블이 결정된다.
도 9는 본 발명에 따른 복호화 장치(200)의 인트라 예측부(250)를 나타내는 블록도이다.
본 발명에 따른 인트라 예측부(250)는 예측모드 복호화부(251), 참조화소 생성부(252), 참조화소 필터링부(253), 예측블록 생성부(254), 예측블록 필터링부(255) 및 예측 블록 송신부(256)를 포함한다.
예측모드 복호화부(251)는 다음의 과정을 통해 현재 예측 단위의 인트라 예측 모드를 복원한다.
수신된 부호화 단위 내의 부가정보 콘테이너에 포함된 예측 블록을 생성하기 위한 부가정보를 수신한다. 상기 부가정보는 예측 가능 플래그와 잔여 예측 모드 정보를 포함한다. 예측 가능 플래그는 현재 예측 단위의 인접 예측 단위의 어느 하나의 인트라 예측 모드와 동일한지 여부를 나타낸다. 잔여 예측 모드 정보는 예측 가능 플래그에 따른 다른 정보를 포함한다. 예측 가능 플래그 값이 1이면, 잔여 예측 모드 정보는 예측 모드 후보자 인덱스를 포함할 수 있다. 상기 예측 모드 후보자 인덱스는 인트라 예측 모드 후보자를 지정하는 정보이다. 예측 가능 플래그 값이 0이면, 잔여 예측 모드 정보는 잔차 인트라 예측 모드번호를 포함한다.
현재 예측 단위의 인트라 예측 모드 후보자를 유도한다. 상기 인트라 예측 모드 후보자는 인접 예측 단위의 인트라 예측 모드를 유도한다. 여기서는 편의상 현재 예측 단위의 인트라 예측 모드 후보자를 상측 및 좌측 인트라 예측 모드로 한정하여 설명한다. 현재 예측 단위의 상측 또는 좌측 예측 단위가 복수개 존재하는 경우에는 상기한 부호화 장치(100)의 예측모드 부호화부(156)와 동일한 방법으로 현재 예측 단위의 상측 및 좌측 인트라 예측 모드를 유도한다. 그리고, 상기 상측 또는 좌측 인트라 예측 모드가 번호가 현재 예측 단위에서 허용되는 인트라 예측 모드의 수보다 크거나 같으면 예측모드 부호화부(156)와 동일한 방법으로 변환한다.
다음으로, 수신된 예측 가능 플래그가 인접 예측 단위의 인트라 예측 모드와 동일함을 나타내면, 상기 예측 모드 후보자 인덱스가 존재하면, 상기 예측 모드 후보자 인덱스가 나타내는 예측 모드를 현재 예측 단위의 인트라 예측 모드로 결정한다.
수신된 예측 가능 플래그가 인접 예측 단위의 인트라 예측 모드와 동일함을 나타내지만, 상기 예측 모드 후보자 인덱스가 존재하지 않고, 인접 예측 단위의 유효한 인트라 예측 모드가 1개인 경우에는 이를 현재 예측 단위의 인트라 예측 모드로 복원한다.
수신된 예측 가능 플래그가 인접 예측 단위의 인트라 예측 모드와 동일하지 않음을 나타내면, 수신된 잔차 인트라 예측 모드값과 상기 유효한 인트라 예측 모드 후보자들의 인트라 예측 모드 번호를 비교하여 현재 예측 단위의 인트라 예측 모드를 복원한다.
참조화소 생성부(252)는 부호화 장치(100)의 참조화소 생성부(151)와 동일한 방법으로 참조화소를 생성한다. 다만, 참조화소 생성부(252)는 예측모드 복호화부(251)에 의해 복원된 인트라 예측 모드에 따라 적응적으로 참조화소를 생성하는 점에서 부호화 장치(100)의 참조화소 생성부(151)와 다르다. 즉, 참조화소 생성부(252)는 복원된 인트라 예측 모드를 이용하여 예측 블록을 생성하는데 사용될 참조 화소들이 유효하지 않은 경우에만 참조화소를 생성한다.
참조화소 필터링부(253)는 예측모드 복호화부(251)에 의해 복원된 인트라 예측 모드에 및 현재 예측 단위의 크기 정보에 기초하여 참조화소들을 적응적으로 필터링한다. 필터링 조건 및 필터는 부호화 장치(100)의 참조화소 필터링부(152)의 필터링 조건 및 필터와 동일하다.
예측블록 생성부(254)는 예측모드 복호화부(251)에 의해 복원된 인트라 예측 모드에 따라, 참조화소들을 이용하여 예측 블록을 생성한다. ,
예측블록 필터링부(255)는 예측모드 복호화부(251)에 의해 복원된 인트라 예측 모드에 따라 적응적으로 필터링한다. 상기 동작은 부호화 장치(100)의 예측블록 필터링부(154)와 동일하다.
예측 블록 송신부(256)는 상기 예측모드 생성부(254) 또는 상기 예측블록 필터링부(255)로부터 수신된 예측 블록을 가산기(290)로 전송한다.

Claims (1)

  1. 예측 블록의 크기에 따라 서로 다른 종류의 intra 예측 모드가 적용될 수 있도록 한 것을 특징으로 하는 인트라 프리딕션 방법.
KR1020110064301A 2010-08-17 2011-06-30 인트라 프리딕션 방법 KR20120058384A (ko)

Priority Applications (138)

Application Number Priority Date Filing Date Title
KR1020110064301A KR20120058384A (ko) 2010-08-17 2011-06-30 인트라 프리딕션 방법
LTEP16184572.2T LT3125555T (lt) 2010-08-17 2011-08-12 Vidinės prognozės režimo kodavimo būdas
EP16184572.2A EP3125555B1 (en) 2010-08-17 2011-08-12 Method for encoding an intra prediction mode
PL16184578T PL3125558T3 (pl) 2010-08-17 2011-08-12 Sposób kodowania trybu intra-predykcji
HUE16184569A HUE040410T2 (hu) 2010-08-17 2011-08-12 Berendezés intra predikció mód kódolására
PT161845680T PT3125553T (pt) 2010-08-17 2011-08-12 Método para restaurar um modo de previsão intra
CN201610809897.1A CN106851287B (zh) 2010-08-17 2011-08-12 用于解码图像的装置
ES16184569.8T ES2685668T3 (es) 2010-08-17 2011-08-12 Aparato para codificar un modo de intrapredicción
LTEP16184557.3T LT3125552T (lt) 2010-08-17 2011-08-12 Vidinės prognozės režimo atkūrimo būdas
ES16184574T ES2696898T3 (es) 2010-08-17 2011-08-12 Procedimiento para codificar un modo de intrapredicción
ES16184586.2T ES2693905T3 (es) 2010-08-17 2011-08-12 Aparato para descodificar un modo de intrapredicción
HUE16184572A HUE039207T2 (hu) 2010-08-17 2011-08-12 Eljárás intra predikció mód kódolására
KR1020137020599A KR101854489B1 (ko) 2010-08-17 2011-08-12 인트라 예측 모드 복호화 방법
PL16184582T PL3125559T3 (pl) 2010-08-17 2011-08-12 Urządzenie do dekodowania trybu intra-predykcji
DK16184557.3T DK3125552T3 (en) 2010-08-17 2011-08-12 Method of restoring an intraprediction mode
RS20180454A RS57112B1 (sr) 2010-08-17 2011-08-12 Postupak za obnavljanje intra prediktivnog moda
SI201131494T SI3125552T1 (en) 2010-08-17 2011-08-12 Procedure for restoring the internal predictive mode
KR1020137020598A KR20130091799A (ko) 2010-08-17 2011-08-12 인트라 예측 복호화 방법
EP16184586.2A EP3125560B1 (en) 2010-08-17 2011-08-12 Apparatus for decoding an intra prediction mode
ES16184578T ES2696931T3 (es) 2010-08-17 2011-08-12 Procedimiento para codificar un modo de intrapredicción
KR1020147010246A KR20140057672A (ko) 2010-08-17 2011-08-12 인트라 예측 복호화 방법
CN201510038581.2A CN104602004B (zh) 2010-08-17 2011-08-12 帧内预测模式的解码方法
RS20161024A RS55325B1 (sr) 2010-08-17 2011-08-12 Postupak za dekodiranje intra predikcija
CN201610809602.0A CN106851284B (zh) 2010-08-17 2011-08-12 用于编码帧内预测模式的方法
EP16184557.3A EP3125552B1 (en) 2010-08-17 2011-08-12 Method for restoring an intra prediction mode
PL16184572T PL3125555T3 (pl) 2010-08-17 2011-08-12 Sposób kodowania trybu intra-predykcji
KR1020187009842A KR20180039753A (ko) 2010-08-17 2011-08-12 영상 복호화 장치
PL16184568T PL3125553T3 (pl) 2010-08-17 2011-08-12 Sposób kodowania trybu intra-predykcji
PT161846167T PT3125561T (pt) 2010-08-17 2011-08-12 Método para restaurar um modo de previsão intra
EP16184569.8A EP3125554B1 (en) 2010-08-17 2011-08-12 Apparatus for encoding an intra prediction mode
CN201610809896.7A CN107105234B (zh) 2010-08-17 2011-08-12 用于解码图像的装置
PT161845722T PT3125555T (pt) 2010-08-17 2011-08-12 Método para restaurar um modo de previsão intra
ES11818362.3T ES2602779T3 (es) 2010-08-17 2011-08-12 Procedimiento de descodificación de intra-predicciones
DK16184568.0T DK3125553T3 (en) 2010-08-17 2011-08-12 Method of encoding an intraprediction mode
CN201510055953.2A CN104602005B (zh) 2010-08-17 2011-08-12 预测模式的编码方法
PT118183623T PT2608541T (pt) 2010-08-17 2011-08-12 Método para descodificar intra-previsões
CN201610809898.6A CN107071426B (zh) 2010-08-17 2011-08-12 用于编码帧内预测模式的方法
KR1020187009843A KR20180039754A (ko) 2010-08-17 2011-08-12 영상 복호화 장치
KR1020187009839A KR20180039750A (ko) 2010-08-17 2011-08-12 영상 부호화 장치
JP2013524784A JP5982612B2 (ja) 2010-08-17 2011-08-12 イントラ予測モード復号化方法
PT161845573T PT3125552T (pt) 2010-08-17 2011-08-12 Método para restaurar um modo de previsão intra
PL16184586T PL3125560T3 (pl) 2010-08-17 2011-08-12 Urządzenie do dekodowania trybu intra-predykcji
PCT/KR2011/005941 WO2012023762A2 (ko) 2010-08-17 2011-08-12 인트라 예측 복호화 방법
DK16184572.2T DK3125555T3 (en) 2010-08-17 2011-08-12 Method of encoding an intraprediction mode
HUE11818362A HUE031186T2 (hu) 2010-08-17 2011-08-12 Eljárás intra predikciók dekódolására
CN201610809895.2A CN106851286B (zh) 2010-08-17 2011-08-12 用于编码图像的装置
ES16184572.2T ES2670326T3 (es) 2010-08-17 2011-08-12 Procedimiento de codificación de un modo de intra predicción
PL11818362T PL2608541T3 (pl) 2010-08-17 2011-08-12 Sposób dekodowania intra-predykcji
RS20180499A RS57165B1 (sr) 2010-08-17 2011-08-12 Postupak za obnavljanje intra prediktivnog moda
CN201610809894.8A CN107105250B (zh) 2010-08-17 2011-08-12 用于恢复帧内预测模式的方法
SI201131041A SI2608541T1 (sl) 2010-08-17 2011-08-12 Postopek za dekodiranje notranjih napovedi
EP16184578.9A EP3125558B1 (en) 2010-08-17 2011-08-12 Method for encoding an intra prediction mode
HUE16184616A HUE038963T2 (hu) 2010-08-17 2011-08-12 Eljárás intra predikció mód helyreállítására
HUE16184574A HUE042510T2 (hu) 2010-08-17 2011-08-12 Eljárás intra predikció mód kódolására
RS20180526A RS57166B1 (sr) 2010-08-17 2011-08-12 Postupak za kodiranje intra prediktivnog moda
HUE16184586A HUE040604T2 (hu) 2010-08-17 2011-08-12 Berendezés intra predikció mód dekódolására
TR2018/07094T TR201807094T4 (tr) 2010-08-17 2011-08-12 Bi̇r i̇ç tahmi̇n modunu geri̇ yüklemek i̇çi̇n yöntem
CN201180050177.7A CN103168472B (zh) 2010-08-17 2011-08-12 帧内预测模式的解码方法
EP16184582.1A EP3125559B1 (en) 2010-08-17 2011-08-12 Apparatus for decoding an intra prediction mode
RS20180573A RS57233B1 (sr) 2010-08-17 2011-08-12 Postupak za kodiranje intra prediktivnog moda
ES16184582.1T ES2693903T3 (es) 2010-08-17 2011-08-12 Aparato para descodificar un modo de intrapredicción
CN201610808102.5A CN106231308B (zh) 2010-08-17 2011-08-12 用于编码帧内预测模式的方法
EP16184574.8A EP3125556B1 (en) 2010-08-17 2011-08-12 Method for encoding an intra prediction mode
EP11818362.3A EP2608541B1 (en) 2010-08-17 2011-08-12 Method for decoding intra-predictions
DK16184616.7T DK3125561T3 (en) 2010-08-17 2011-08-12 Method of restoring an intraprediction mode
KR1020147010248A KR101474987B1 (ko) 2010-08-17 2011-08-12 잔차 신호 부호화 장치
EP16184616.7A EP3125561B1 (en) 2010-08-17 2011-08-12 Method for restoring an intra prediction mode
KR1020147014100A KR20140075020A (ko) 2010-08-17 2011-08-12 예측 블록 생성 장치
KR1020187009840A KR20180039751A (ko) 2010-08-17 2011-08-12 영상 부호화 장치
KR1020127028865A KR101373819B1 (ko) 2010-08-17 2011-08-12 인트라 예측 모드 복호화 방법
ES16184616.7T ES2670327T3 (es) 2010-08-17 2011-08-12 Procedimiento de restablecimiento de un modo de intra predicción
KR1020147014092A KR20140071507A (ko) 2010-08-17 2011-08-12 예측 블록 생성 장치
SI201131499T SI3125555T1 (en) 2010-08-17 2011-08-12 Procedure for coding the internal predictive mode
TR2018/06128T TR201806128T4 (tr) 2010-08-17 2011-08-12 Bi̇r i̇ç tahmi̇n modunu geri̇ yüklemek i̇çi̇n yöntem
LTEP11818362.3T LT2608541T (lt) 2010-08-17 2011-08-12 Vidinės prognozės dekodavimo būdas
SI201131498T SI3125553T1 (en) 2010-08-17 2011-08-12 Procedure for coding the internal predictive mode
PL16184557T PL3125552T3 (pl) 2010-08-17 2011-08-12 Sposób przywracania trybu intra-predykcji
CN201610809603.5A CN107071425B (zh) 2010-08-17 2011-08-12 用于恢复帧内预测模式的方法
LTEP16184568.0T LT3125553T (lt) 2010-08-17 2011-08-12 Vidinės prognozės režimo kodavimo būdas
CN201610809604.XA CN106851285B (zh) 2010-08-17 2011-08-12 用于编码图像的装置
HUE16184582A HUE040601T2 (hu) 2010-08-17 2011-08-12 Berendezés intra predikció mód dekódolására
ES16184577.1T ES2685669T3 (es) 2010-08-17 2011-08-12 Aparato para codificar un modo de intrapredicción
LTEP16184616.7T LT3125561T (lt) 2010-08-17 2011-08-12 Vidinės prognozės režimo atkūrimo būdas
KR1020187009846A KR20180039757A (ko) 2010-08-17 2011-08-12 영상 복호화 장치
KR1020147010247A KR20140057673A (ko) 2010-08-17 2011-08-12 인트라 예측 복호화 방법
PL16184569T PL3125554T3 (pl) 2010-08-17 2011-08-12 Urządzenie do kodowania trybu intra-predykcji
PL16184577T PL3125557T3 (pl) 2010-08-17 2011-08-12 Urządzenie do kodowania trybu intra-predykcji
ES16184557.3T ES2670324T3 (es) 2010-08-17 2011-08-12 Procedimiento de restablecimiento de un modo de intra predicción
SI201131484T SI3125561T1 (en) 2010-08-17 2011-08-12 Procedure for restoring the internal predictive mode
EP16184568.0A EP3125553B1 (en) 2010-08-17 2011-08-12 Method for encoding an intra prediction mode
HUE16184568A HUE039205T2 (hu) 2010-08-17 2011-08-12 Eljárás intra predikció mód kódolására
KR1020187009845A KR20180039756A (ko) 2010-08-17 2011-08-12 영상 복호화 장치
ES16184568.0T ES2670325T3 (es) 2010-08-17 2011-08-12 Procedimiento de codificación de un modo de intra predicción
PL16184616T PL3125561T3 (pl) 2010-08-17 2011-08-12 Sposób przywracania trybu intra-predykcji
KR1020187009841A KR20180039752A (ko) 2010-08-17 2011-08-12 영상 부호화 장치
DK11818362.3T DK2608541T3 (en) 2010-08-17 2011-08-12 Method for decoding intrapredictions
HUE16184557A HUE039248T2 (hu) 2010-08-17 2011-08-12 Eljárás intra predikció mód helyreállítására
PL16184574T PL3125556T3 (pl) 2010-08-17 2011-08-12 Sposób kodowania trybu intra-predykcji
EP16184577.1A EP3125557B1 (en) 2010-08-17 2011-08-12 Apparatus for encoding an intra prediction mode
KR1020187009844A KR20180039755A (ko) 2010-08-17 2011-08-12 영상 복호화 장치
NO16184557A NO3125552T3 (ko) 2010-08-17 2011-08-12
US13/624,844 US9491478B2 (en) 2010-08-17 2012-09-21 Method for decoding in intra prediction mode
JP2016123336A JP6371798B2 (ja) 2010-08-17 2016-06-22 映像符号化方法
US15/189,346 US10063854B2 (en) 2010-08-17 2016-06-22 Apparatus for decoding an image
US15/189,485 US9918087B2 (en) 2010-08-17 2016-06-22 Method for encoding an intra prediction mode
JP2016123337A JP6322232B2 (ja) 2010-08-17 2016-06-22 イントラ予測モード符号化方法
US15/189,521 US10085019B2 (en) 2010-08-17 2016-06-22 Method for restoring an intra prediction mode
JP2016123339A JP6371800B2 (ja) 2010-08-17 2016-06-22 映像符号化装置
JP2016123335A JP6322231B2 (ja) 2010-08-17 2016-06-22 イントラ予測モード符号化方法
JP2016123332A JP6371795B2 (ja) 2010-08-17 2016-06-22 映像復号化方法
JP2016123333A JP6371796B2 (ja) 2010-08-17 2016-06-22 映像復号化装置
US15/189,219 US9716886B2 (en) 2010-08-17 2016-06-22 Method for restoring an intra prediction mode
US15/189,561 US9924187B2 (en) 2010-08-17 2016-06-22 Method for restoring an intra prediction mode
US15/189,273 US10123010B2 (en) 2010-08-17 2016-06-22 Apparatus for encoding an image
JP2016123334A JP6371797B2 (ja) 2010-08-17 2016-06-22 映像復号化装置
US15/189,243 US10123009B2 (en) 2010-08-17 2016-06-22 Apparatus for encoding an image
JP2016123331A JP6322230B2 (ja) 2010-08-17 2016-06-22 イントラ予測モード復号化方法
US15/189,596 US10003795B2 (en) 2010-08-17 2016-06-22 Method for encoding an intra prediction mode
US15/189,305 US10136130B2 (en) 2010-08-17 2016-06-22 Apparatus for decoding an image
JP2016123340A JP6371801B2 (ja) 2010-08-17 2016-06-22 映像符号化装置
US15/189,452 US9924186B2 (en) 2010-08-17 2016-06-22 Method for encoding an intra prediction mode
JP2016123330A JP6371794B2 (ja) 2010-08-17 2016-06-22 映像復号化方法
JP2016123338A JP6371799B2 (ja) 2010-08-17 2016-06-22 映像符号化方法
US15/189,374 US9918086B2 (en) 2010-08-17 2016-06-22 Method for encoding an intra prediction mode
SM201600449T SMT201600449B (it) 2010-08-17 2016-12-13 METODO Dl DECODIFICA Dl MODALITÀ Dl PREDIZIONE INTRA
CY20161101330T CY1118382T1 (el) 2010-08-17 2016-12-22 Μεθοδος για την αποκωδικοποιηση των ενδο-προβλεψεων
HRP20170053TT HRP20170053T1 (hr) 2010-08-17 2017-01-12 Metoda za dekodiranje unutarokvirnog predviđanja
CY20181100489T CY1120190T1 (el) 2010-08-17 2018-05-14 Μεθοδος για την ανακτηση μιας καταστασης ενδο- προβλεψης
HRP20180834TT HRP20180834T1 (hr) 2010-08-17 2018-05-25 Metoda za uspostavljanje unutarokvirnog predviđanja
CY181100612T CY1120815T1 (el) 2010-08-17 2018-06-12 Μεθοδος για την κωδικοποιηση μιας καταστασης ενδο-προβλεψης
CY181100614T CY1120795T1 (el) 2010-08-17 2018-06-12 Μεθοδος για την κωδικοποιηση μιας καταστασης ενδο-προβλεψης
CY181100613T CY1120813T1 (el) 2010-08-17 2018-06-12 Μεθοδος για την anaktηση μιας καταστασης ενδο-προβλεψης
HRP20181098TT HRP20181098T1 (hr) 2010-08-17 2018-07-11 Metoda za uspostavljanje unutarokvirnog predviđanja
HRP20181147TT HRP20181147T1 (hr) 2010-08-17 2018-07-18 Metoda za kodiranje unutarokvirnog predviđanja
HRP20181145TT HRP20181145T1 (hr) 2010-08-17 2018-07-18 Metoda za kodiranje unutarokvirnog predviđanja
US16/171,548 US10567760B2 (en) 2010-08-17 2018-10-26 Apparatus for encoding an image
US16/725,167 US10944965B2 (en) 2010-08-17 2019-12-23 Apparatus for encoding an image
US17/161,113 US11284072B2 (en) 2010-08-17 2021-01-28 Apparatus for decoding an image

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020100079529 2010-08-17
KR1020110064301A KR20120058384A (ko) 2010-08-17 2011-06-30 인트라 프리딕션 방법

Publications (1)

Publication Number Publication Date
KR20120058384A true KR20120058384A (ko) 2012-06-07

Family

ID=46609994

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110064301A KR20120058384A (ko) 2010-08-17 2011-06-30 인트라 프리딕션 방법

Country Status (1)

Country Link
KR (1) KR20120058384A (ko)

Similar Documents

Publication Publication Date Title
KR20210131952A (ko) 영상 부호화 장치
KR101373814B1 (ko) 예측 블록 생성 장치
KR101373819B1 (ko) 인트라 예측 모드 복호화 방법
KR20220151140A (ko) 영상 부호화 방법 및 컴퓨터로 읽을 수 있는 기록 매체
US20160381381A1 (en) Apparatus for encoding a moving picture
KR20210145091A (ko) 영상 부호화 장치
KR20170034799A (ko) 영상 복호화 장치
KR102410326B1 (ko) 영상 부호화/복호화 방법 및 장치
KR20120058384A (ko) 인트라 프리딕션 방법
KR20130029695A (ko) 근거리 인트라 예측에서의 예측 블록 생성 방법
KR20170034354A (ko) 영상 복호화 장치
KR20170034355A (ko) 영상 복호화 장치
KR20130029694A (ko) 인트라 모드에서의 색차 예측 블록 생성 방법