KR20190089836A - 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치 - Google Patents

오차 보상을 이용한 영상 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
KR20190089836A
KR20190089836A KR1020190091087A KR20190091087A KR20190089836A KR 20190089836 A KR20190089836 A KR 20190089836A KR 1020190091087 A KR1020190091087 A KR 1020190091087A KR 20190091087 A KR20190091087 A KR 20190091087A KR 20190089836 A KR20190089836 A KR 20190089836A
Authority
KR
South Korea
Prior art keywords
block
current block
prediction
error
value
Prior art date
Application number
KR1020190091087A
Other languages
English (en)
Other versions
KR102132410B1 (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
Application filed by 한국전자통신연구원, 한국과학기술원 filed Critical 한국전자통신연구원
Publication of KR20190089836A publication Critical patent/KR20190089836A/ko
Application granted granted Critical
Publication of KR102132410B1 publication Critical patent/KR102132410B1/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/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/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/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/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

Landscapes

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

Abstract

본 발명에 따른 생략 모드 영상 복호화 방법은 현재 블록에 대한 예측 블록의 화소값을 도출하는 단계, 상기 현재 블록에 대한 오차 보상 값을 도출하는 단계 및 상기 예측 블록의 화소값 및 상기 오차 보상 값을 이용하여 최종 예측 블록의 화소값을 도출하는 단계를 포함한다. 본 발명에 따르면 전송되는 정보량이 최소화되고 영상 부호화/복호화 효율이 향상된다.

Description

오차 보상을 이용한 영상 부호화/복호화 방법 및 장치 {METHOD AND APPARATUS FOR VIDEO ENCODING/DECODING USING ERROR COMPENSATION}
본 발명은 영상 처리에 관한 것으로서, 보다 상세하게는 영상 부호화/복호화 방법 및 장치에 관한 것이다.
최근 HD(High Definition) 해상도를 가지는 방송 서비스가 국내뿐만 아니라 세계적으로 확대되면서, 많은 사용자들이 고해상도, 고화질의 영상에 익숙해지고 있으며 이에 따라 많은 기관들이 차세대 영상기기에 대한 개발에 박차를 가하고 있다. 또한 HDTV와 더불어 HDTV의 4배 이상의 해상도를 갖는 UHD(Ultra High Definition)에 대한 관심이 증대되면서 보다 높은 해상도, 고화질의 영상에 대한 압축기술이 요구되고 있다.
영상 압축 기술에는 시간적으로 이전 및/또는 이후의 픽쳐로부터 현재 픽쳐에 포함된 화소값을 예측하는 인터(inter) 예측 기술, 현재 픽쳐 내의 화소 정보를 이용하여 현재 픽쳐에 포함된 화소값을 예측하는 인트라(intra) 예측 기술, 조명 변화 등에 의한 화질의 열화를 방지하기 위한 가중치 예측 기술, 출현 빈도가 높은 심볼(symbol)에 짧은 부호를 할당하고 출현 빈도가 낮은 심볼에 긴 부호를 할당하는 엔트로피 부호화 기술 등이 있다. 특히, 생략 모드(skip mode)에서 현재 블록에 대한 예측이 수행되는 경우, 이전 부호화된 영역으로부터 예측된 값만을 이용하여 예측 블록이 생성되고 별도의 움직임 정보(motion information)나 잔여(residual) 신호가 부호화기로부터 복호화기로 전송되지 않는다. 이러한 영상 압축 기술들에 의해 영상 데이터가 효율적으로 압축될 수 있다.
본 발명의 기술적 과제는 전송되는 정보량을 최소화하면서 영상 부호화/복호화 효율을 향상시킬 수 있는 영상 부호화 방법 및 장치를 제공함에 있다.
본 발명의 다른 기술적 과제는 전송되는 정보량을 최소화하면서 영상 부호화/복호화 효율을 향상시킬 수 있는 영상 복호화 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 기술적 과제는 전송되는 정보량을 최소화하면서 영상 부호화/복호화 효율을 향상시킬 수 있는 생략 모드 예측 방법 및 장치를 제공함에 있다.
본 발명의 일 실시 형태는 영상 복호화 방법이다. 상기 방법은 현재 블록에 대한 예측 블록의 화소(pixel)값을 도출하는 단계, 상기 현재 블록에 대한 오차 보상 값을 도출하는 단계 및 상기 예측 블록의 화소값 및 상기 오차 보상(error compensation) 값을 이용하여 최종 예측 블록의 화소값을 도출하는 단계를 포함하고, 상기 오차 보상 값은 상기 현재 블록과 참조 블록 간의 오차를 보상하기 위한 오차 보상 블록의 샘플(sample)값이고, 상기 참조 블록은 참조 영상 내의 블록으로서 현재 블록 내 화소의 예측값(predictor) 관련 정보를 포함하는 블록이고, 상기 현재 블록에 대한 예측은 화면 간(intra) 생략 모드(SKIP mode)에서 수행된다.
상기 현재 블록에 대한 예측 블록의 화소값을 도출하는 단계는, 이미 복호화된 블록을 이용하여 상기 현재 블록에 대한 움직임 정보를 도출하는 단계 및 상기 도출된 움직임 정보를 이용하여 상기 예측 블록의 화소값을 도출하는 단계를 포함할 수 있다.
상기 이미 복호화된 블록은 상기 현재 블록의 주변 블록을 포함할 수 있다.
상기 이미 복호화된 블록은 상기 현재 블록의 주변 블록 및 상기 참조 영상 내 동일 위치 블록(collocated block)의 주변 블록을 포함할 수 있다.
상기 도출된 움직임 정보를 이용하여 상기 예측 블록의 화소값을 도출하는 단계에서 상기 도출된 예측 블록의 화소값은, 상기 도출된 움직임 정보가 지시하는 참조 블록의 화소값일 수 있다.
상기 참조 블록이 2개 이상인 경우 상기 도출된 움직임 정보를 이용하여 상기 예측 블록의 화소값을 도출하는 단계에서는, 상기 참조 블록의 화소값들의 가중치 합에 의해 상기 예측 블록의 화소값을 도출하고, 상기 참조 블록은 상기 도출된 움직임 정보가 지시하는 블록일 수 있다.
상기 현재 블록에 대한 오차 보상 값을 도출하는 단계는, 상기 현재 블록의 오차 모델(error model)에 대한 오차 파라미터를 도출하는 단계 및 상기 오차 모델 및 상기 도출된 오차 파라미터를 이용하여 상기 현재 블록에 대한 오차 보상 값을 도출하는 단계를 포함할 수 있다.
상기 오차 모델은 0차 오차 모델 또는 1차 오차 모델일 수 있다.
상기 현재 블록의 오차 모델에 대한 오차 파라미터를 도출하는 단계에서는, 상기 현재 블록에 대한 주변 블록 및 상기 참조 영상 내 블록에 포함된 정보를 이용하여 상기 오차 파라미터를 도출할 수 있다.
상기 참조 블록이 2개 이상인 경우, 상기 오차 모델 및 상기 도출된 오차 파라미터를 이용하여 상기 현재 블록에 대한 오차 보상 값을 도출하는 단계에서는, 오차 블록 값들의 가중치 합에 의해 상기 오차 보상 값을 도출하고, 상기 오차 블록 값은 각각의 참조 블록에 대해 도출된 상기 현재 블록의 오차 보상 값일 수 있다.
상기 예측 블록의 화소값 및 상기 오차 보상 값을 이용하여 최종 예측 블록의 화소값을 도출하는 단계에서는, 오차 보상 적용 여부를 지시하는 정보에 따라 상기 오차 보상 값을 선택적으로 이용하고, 상기 오차 보상 적용 여부를 지시하는 정보는 슬라이스 헤더(slice header), 픽쳐 파라미터 셋(picture parameter set) 또는 시퀀스 파라미터 셋(sequence parameter set)에 포함되어 부호화기로부터 복호화기로 전송되는 정보일 수 있다.
본 발명의 다른 실시 형태는 화면 간 생략 모드 예측 방법이다. 상기 방법은 현재 블록에 대한 예측 블록의 화소값을 도출하는 단계, 상기 현재 블록에 대한 오차 보상 값을 도출하는 단계 및 상기 예측 블록의 화소값 및 상기 오차 보상 값을 이용하여 최종 예측 블록의 화소값을 도출하는 단계를 포함하고, 상기 오차 보상 값은 상기 현재 블록과 참조 블록 간의 오차를 보상하기 위한 오차 보상 블록의 샘플값이고, 상기 참조 블록은 참조 영상 내의 블록으로서 상기 현재 블록 내 화소의 예측값 관련 정보를 포함하는 블록이다.
상기 현재 블록에 대한 예측 블록의 화소값을 도출하는 단계는, 이미 복호화된 블록을 이용하여 상기 현재 블록에 대한 움직임 정보를 도출하는 단계 및 상기 도출된 움직임 정보를 이용하여 상기 예측 블록의 화소값을 도출하는 단계를 포함할 수 있다.
상기 현재 블록에 대한 오차 보상 값을 도출하는 단계는, 상기 현재 블록의 오차 모델(error model)에 대한 오차 파라미터를 도출하는 단계 및 상기 오차 모델 및 상기 도출된 오차 파라미터를 이용하여 상기 현재 블록에 대한 오차 보상 값을 도출하는 단계를 포함할 수 있다.
본 발명의 또 다른 실시 형태는 영상 복호화 장치이다. 상기 장치는 복호화기로부터 수신된 비트스트림(bitstream)을 확률 분포에 따라 엔트로피 복호화하여 잔여 블록(residual block) 관련 정보를 생성하는 엔트로피 복호화부, 현재 블록에 대한 예측 블록의 화소값 및 상기 현재 블록에 대한 오차 보상 값을 도출하고, 상기 예측 블록의 화소값 및 상기 오차 보상 값을 이용하여 최종 예측 블록의 화소값을 도출하는 예측부 및 상기 잔여 블록 및 상기 최종 예측 블록을 이용하여 복원 블록을 생성하는 가산부를 포함하고, 상기 오차 보상 값은 상기 현재 블록과 참조 블록 간의 오차를 보상하기 위한 오차 보상 블록의 샘플값이고, 상기 참조 블록은 참조 영상 내의 블록으로서 상기 현재 블록 내 화소의 예측값 관련 정보를 포함하는 블록이고, 상기 예측부는 화면 간 생략 모드에서 상기 현재 블록에 대한 예측을 수행한다.
상기 예측부는 이미 복호화된 블록을 이용하여 상기 현재 블록에 대한 움직임 정보를 도출하고, 상기 도출된 움직임 정보를 이용하여 상기 예측 블록의 화소값을 도출할 수 있다.
상기 예측부는 상기 현재 블록의 오차 모델에 대한 오차 파라미터를 도출하고, 상기 오차 모델 및 상기 도출된 오차 파라미터를 이용하여 상기 현재 블록에 대한 오차 보상 값을 도출할 수 있다.
본 발명에 따른 영상 부호화 방법에 의하면 전송되는 정보량이 최소화되면서 영상 부호화/복호화 효율이 향상된다.
본 발명에 따른 영상 복호화 방법에 의하면 전송되는 정보량이 최소화되면서 영상 부호화/복호화 효율이 향상된다.
본 발명에 따른 생략 모드 예측 방법에 의하면 전송되는 정보량이 최소화되면서 영상 부호화/복호화 효율이 향상된다.
도 1은 영상 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 2는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 3은 본 발명의 실시예에 따른, 오차 보상을 이용한 생략 모드 예측 방법을 개략적으로 나타내는 흐름도이다.
도 4는 본 발명의 실시예에 따른 예측 블록의 화소값 도출 방법을 개략적으로 나타내는 흐름도이다.
도 5는 도 4의 실시예에서의 움직임 정보 도출시에 사용되는, 현재 블록에 대한 주변 블록의 실시예를 개략적으로 나타내는 개념도이다.
도 6은 도 4의 실시예에서의 움직임 정보 도출시에 사용되는, 현재 블록의 주변 블록 및 참조 영상 내 동일 위치 블록의 주변 블록의 실시예를 개략적으로 나타내는 개념도이다.
도 7은 본 발명의 실시예에 따른 오차 보상 값 도출 방법을 개략적으로 나타내는 흐름도이다.
도 8은 본 발명에 따른 0차 오차 모델에 대한 오차 파라미터 도출 방법의 일 실시예를 개략적으로 나타내는 개념도이다.
도 9는 본 발명에 따른 0차 오차 모델에 대한 오차 파라미터 도출 방법의 다른 실시예를 개략적으로 나타내는 개념도이다.
도 10은 본 발명에 따른 0차 오차 모델에 대한 오차 파라미터 도출 방법의 또 다른 실시예를 개략적으로 나타내는 개념도이다.
도 11은 본 발명에 따른 0차 오차 모델에 대한 오차 파라미터 도출 방법의 또 다른 실시예를 개략적으로 나타내는 개념도이다.
도 12는 본 발명에 따른 0차 오차 모델에 대한 오차 파라미터 도출 방법의 또 다른 실시예를 개략적으로 나타내는 개념도이다.
도 13은 도 7의 실시예에서의 가중치를 이용한 오차 보상 값 도출에 사용되는 움직임 벡터의 실시예를 개략적으로 나타내는 개념도이다.
도 14는 예측 대상 화소의 현재 블록 내 위치에 관한 정보를 이용하여 최종 예측 블록의 화소값을 도출하는 방법의 일 실시예를 나타내는 개념도이다.
이하, 도면을 참조하여 본 발명의 실시 형태에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
어떤 구성 요소가 다른 구성 요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 아울러, 본 발명에서 특정 구성을 “포함”한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
또한 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.
도 1은 영상 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다. 도 1을 참조하면, 상기 영상 부호화 장치(100)는 움직임 예측부(111), 움직임 보상부(112), 인트라 예측부(120), 스위치(115), 감산기(125), 변환부(130), 양자화부(140), 엔트로피 부호화부(150), 역양자화부(160), 역변환부(170), 가산기(175), 필터부(180) 및 참조영상 버퍼(190)를 포함한다.
영상은 픽쳐로도 불릴 수 있으며 이하, 픽쳐는 문맥과 필요에 따라 영상과 동일한 의미를 가질 수 있다. 영상은 순행 주사(progressive) 방식에서 사용되는 프레임(frame) 픽쳐와 격행 주사(interlace) 방식에서 사용되는 필드(field) 픽쳐를 모두 포함할 수 있다. 이 때, 필드 픽쳐는 탑(top) 필드와 바텀(bottom) 필드를 포함한 두 개의 필드로 구성될 수 있다.
블록은 영상 부호화 및 복호화의 기본 단위를 의미한다. 영상 부호화 및 복호화 시 부호화 혹은 복호화 단위는, 영상을 분할하여 부호화 혹은 복호화 할 때 그 분할된 단위를 말하므로, 매크로 블록, 부호화 유닛 (CU: Coding Unit), 예측 유닛 (PU: Prediction Unit), PU 파티션(PU partition), 변환 유닛(TU: Transform Unit), 변환 블록(transform block) 등으로 불릴 수 있다. 이하, 블록은 현재 부호화가 수행되는 단위에 따라 상술한 블록 타입들 중 하나의 타입을 가질 수 있다.
상기 부호화 유닛은 쿼드 트리 구조(quad tree structure)를 기초로 계층적으로 분할될 수 있다. 이 때, 부호화 유닛의 분할 여부는 깊이(depth) 정보와 분할 플래그(split flag)를 이용하여 표현될 수 있다. 가장 큰 크기의 부호화 유닛은 LCU(Largest Coding Unit), 가장 작은 크기의 부호화 유닛은 SCU(Smallest Coding Unit)라 한다. 부호화 유닛은 8x8, 16x16, 32x32, 64x64, 128x128 등의 크기를 가질 수 있다. 여기서, 분할 플래그는 현재 부호화 유닛의 분할 여부를 지시한다. 또한 분할 깊이가 n인 경우, LCU에서 n번 분할된 것을 표시할 수 있다. 예를 들어 분할 깊이 0은 LCU에서 분할이 되지 않은 것을 표시하고, 분할 깊이 1은 LCU에서 한 번 분할된 것을 표시할 수 있다. 상술한 바와 같은 부호화 유닛의 구조는 CTB(Coding Tree Block)로도 불릴 수 있다.
예를 들어, CTB에서 하나의 부호화 유닛은 부호화 유닛의 크기 정보, 깊이 정보 및 분할 플래그 정보 등을 기초로 복수개의 작은 부호화 유닛으로 분할될 수 있다. 이 때, 각각의 작은 부호화 유닛도 크기 정보, 깊이 정보 및 분할 플래그 정보 등을 기초로 복수개의 더 작은 부호화 유닛으로 분할될 수 있다.
영상 부호화 장치(100)는 입력 영상에 대해 인트라(intra) 모드 또는 인터(inter) 모드로 부호화를 수행하고 비트스트림(bit stream)을 출력할 수 있다. 인트라 예측은 화면 내 예측, 인터 예측은 화면 간 예측을 의미한다. 인트라 모드인 경우 스위치(115)가 인트라로 전환되고, 인터 모드인 경우 스위치(115)가 인터로 전환된다. 영상 부호화 장치(100)는 입력 영상의 입력 블록에 대한 예측 블록을 생성한 후, 입력 블록과 예측 블록의 차분을 부호화할 수 있다.
인트라 모드인 경우, 인트라 예측부(120)는 현재 블록 주변의 이미 부호화된 블록의 화소값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다.
인터 모드인 경우, 움직임 예측부(111)는, 움직임 예측 과정에서 참조 영상 버퍼(190)에 저장되어 있는 참조 영상에서 입력 블록과 가장 매치가 잘 되는 영역을 찾아 움직임 정보(motion information)를 구할 수 있다. 움직임 벡터(motion vector) 정보와 참조 영상 인덱스(reference picture index) 정보 등을 포함한 움직임 정보는 부호화기에서 부호화되어 복호화기로 전송될 수 있다. 움직임 보상부(112)는 움직임 정보와 참조 영상 버퍼(190)에 저장되어 있는 참조 영상을 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다.
여기서, 움직임 정보란 화면 내 또는 화면 간 예측에 사용되는 참조(reference) 블록의 위치를 구하기 위해 사용되는 관련 정보를 의미한다. 움직임 정보에는 현재 블록과 참조 블록간의 상대적 위치를 지시하는 움직임 벡터 정보, 다수의 참조 영상이 사용되는 경우 어떤 참조 영상에 참조 블록이 존재하는지 여부를 지시하는 참조 영상 인덱스 정보 등이 포함될 수 있다. 참조 영상이 한 장만 존재하는 경우, 참조 영상 인덱스 정보는 움직임 정보에 포함되지 않을 수 있다. 참조 블록은 참조 영상 내의 블록으로, 현재 블록 내 화소의 예측값(predictor)에 해당하는 관련 정보를 포함하는 블록이다. 화면 간 예측의 경우 참조 영상의 위치는 참조 영상 인덱스 값과 움직임 벡터 값 등의 움직임 정보에 의해 지시될 수 있다. 화면 내 참조 블록은 현재 영상 내에 존재하는 참조 블록을 의미한다. 움직임 벡터가 부호화되는 경우, 화면 내 참조 블록의 위치는 명시적인 움직임 정보에 의해 지시될 수 있다. 또한 화면 내 참조 블록의 위치는 템플릿 등을 이용하여 유추된 움직임 정보에 의해 지시될 수 있다.
화면 간 조명 변화가 심한 영상의 경우, 예를 들어 밝기가 시간적으로 변화하는 영상의 경우에는, 부호화시 조명 변화가 고려되지 않으면 화질의 열화가 발생할 수 있다. 이 경우 부호화기는 조명 변화에 의한 오차(error)를 보상(compensation)하기 위해, 참조 영상에 적응적으로 가중치 계수를 적용한 후 가중치 계수가 적용된 참조 영상을 이용하여 예측을 수행할 수 있다. 이러한 예측 방법은 가중치 예측(weighted prediction)으로 불릴 수 있다. 가중치 예측이 사용되는 경우, 가중치 계수를 포함한, 가중치 예측에 사용되는 파라미터들은 부호화기에서 복호화기로 전송될 수 있다. 이 때 부호화기는 현재 영상에서 사용되는 참조 영상 단위로 동일한 파라미터를 이용하여 가중치 예측을 수행할 수 있다.
부호화기는, 오차 보상을 수행함에 있어, 현재 블록에 인접한 이미 부호화된 블록의 화소값의 평균값, 참조 블록의 주변 블록 화소값의 평균값의 차이값을 현재 블록에 대한 DC 오프셋(DC offset) 값으로 사용할 수도 있다. 또한 부호화기는 움직임 벡터 예측시에도 조명 변화를 고려하여 예측을 수행할 수 있다. 이러한 오차 보상 방법은 지역(local) 조명 변화 보상이라 불릴 수 있다. 화면 간 조명 변화가 큰 영상에 대해 지역 조명 변화 보상 방법이 사용되는 경우, 도출된 오프셋 값을 이용하여 화면 간 예측을 수행하므로, 영상 압축 성능이 향상될 수 있다.
부호화기는 다양한 움직임 예측 방법을 이용하여 현재 블록에 대한 예측을 수행할 수 있으며, 각각의 예측 방법은 서로 다른 예측 모드에서 적용될 수 있다. 예를 들어, 화면 간 예측에서 사용되는 예측 모드에는 생략(skip) 모드, 머지(merge) 모드, AMVP(Advanced Motion Vector Prediction) 모드 등이 있을 수 있다. 예측이 수행되는 모드는 율-왜곡 최적화 프로세스를 통해 결정될 수 있다. 부호화기는 어떤 모드가 예측에 사용되는지에 대한 정보를 복호화기로 전송할 수 있다.
생략 모드는 예측 블록과 현재 블록의 차이인 잔여(residual) 신호 및 움직임 정보의 전송이 생략되는 부호화 모드이다. 생략 모드는 화면 내 예측, 화면 간 단방향 예측(uni-directional prediction), 화면 간 쌍예측(bi-prediction), 화면 간 또는 화면 내 다중 참조 예측(multi-hypothesis skip mode) 등에 적용될 수 있다. 화면 간 단방향 예측에 적용되는 생략 모드는 P 생략 모드(P skip mode), 화면 간 쌍예측에 적용되는 생략 모드는 B 생략 모드(B skip mode)라 할 수 있다.
생략 모드에서 부호화기는, 주변 블록으로부터 제공받은 움직임 정보를 이용하여 현재 블록의 움직임 정보를 도출하여 예측 블록을 생성할 수 있다. 또한 생략 모드에서는 예측 블록과 현재 블록의 잔여(residual) 신호의 값이 0일 수 있다. 따라서, 부호화기에서 복호화기로 움직임 정보 및 잔여 신호가 전송되지 않을 수 있으며, 부호화기는 이전에 부호화된 영역으로부터 제공받은 정보만을 이용하여 예측 블록을 생성할 수 있다.
현재 블록에 움직임 정보를 제공하는 주변의 블록들은 다양한 방법으로 선택될 수 있다. 예를 들어, 움직임 정보는 소정 개수의 주변 블록의 움직임 정보로부터 유도될 수 있다. 주변 블록의 개수는 1개일 수도 있고, 2 이상일 수도 있다.
또한 생략 모드에서 현재 블록에 움직임 정보를 제공하는 주변의 블록들은 머지 모드에서 움직임 정보를 얻기 위해 사용되는 후보 블록(candidate block)들과 동일할 수 있다. 그리고 부호화기는 주변 블록들 중 어떤 주변 블록이 움직임 정보 도출에 사용되는지 여부를 지시하는 머지 인덱스(merge index)를 복호화기로 전송할 수 있다. 이 때, 복호화기는 머지 인덱스(merge index)가 지시하는 주변 블록으로부터 현재 블록의 움직임 정보를 도출할 수 있다. 이러한 경우의 생략 모드는 머지 생략 모드(merge skip mode)로도 불릴 수 있다.
움직임 벡터는 수평, 수직 성분 별로 중간값(median) 연산을 통해 구해질 수 있다. 참조 영상 인덱스는 참조 영상 리스트에 있는 영상 중 현재 영상과 시간축 상에서 가장 가까운 영상으로 선택될 수 있다. 움직임 정보의 유도 방법은 상기 방법에 한하지 않으며, 현재 블록에 대한 움직임 정보는 다양한 방법으로 유도될 수 있다.
감산기(125)는 입력 블록과 생성된 예측 블록의 차분에 의해 잔여 블록(residual block)을 생성할 수 있다. 변환부(130)는 잔여 블록에 대해 변환(transform)을 수행하여 변환 계수(transform coefficient)를 출력할 수 있다. 양자화부(140)는 입력된 변환 계수를 양자화 파라미터에 따라 양자화하여 양자화된 계수(quantized coefficient)를 출력할 수 있다.
엔트로피 부호화부(150)는, 양자화부(140)에서 산출된 값들 또는 부호화 과정에서 산출된 부호화 파라미터 값 등을 기초로 엔트로피 부호화를 수행하여 비트스트림(bit stream)을 출력할 수 있다. 엔트로피 부호화를 위해 지수 골룸(exponential golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 부호화 방법이 사용될 수 있다.
엔트로피 부호화가 적용되는 경우, 높은 발생 확률을 갖는 심볼(symbol)에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 부호화 대상 심볼들에 대한 비트열의 크기가 감소될 수 있다. 따라서 엔트로피 부호화를 통해서 영상 부호화의 압축 성능이 높아질 수 있다.
양자화된 계수는 역양자화부(160)에서 역양자화되고 역변환부(170)에서 역변환될 수 있다. 역양자화, 역변환된 계수는 가산기(175)를 통해 예측 블록과 더해지고 복원 블록이 생성될 수 있다.
복원 블록은 필터부(180)를 거치고, 필터부(180)는 디블록킹 필터(deblocking filter), SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 중 적어도 하나 이상을 복원 블록 또는 복원 픽쳐에 적용할 수 있다. 필터부(180)를 거친 복원 블록은 참조 영상 버퍼(190)에 저장될 수 있다.
도 2는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다. 도 2를 참조하면, 상기 영상 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 인트라 예측부(240), 움직임 보상부(250), 필터부(260) 및 참조 영상 버퍼(270)를 포함한다.
영상 복호화 장치(200)는 부호화기에서 출력된 비트스트림을 입력 받아 인트라 모드 또는 인터 모드로 복호화를 수행하고 재구성된 영상, 즉 복원 영상을 출력할 수 있다. 인트라 모드인 경우 스위치가 인트라로 전환되고, 인터 모드인 경우 스위치가 인터로 전환될 수 있다. 영상 복호화 장치(200)는 입력 받은 비트스트림으로부터 복원된 잔여 블록(residual block)을 얻고 예측 블록을 생성한 후 복원된 잔여 블록과 예측 블록을 더하여 재구성된 블록, 즉 복원 블록을 생성할 수 있다.
엔트로피 복호화부(210)는, 입력된 비트스트림을 확률 분포에 따라 엔트로피 복호화하여, 양자화된 계수(quantized coefficient) 형태의 심볼을 포함한 심볼들을 생성할 수 있다. 엔트로피 복호화 방법은 상술한 엔트로피 부호화 방법과 유사하다.
엔트로피 복호화 방법이 적용되는 경우, 높은 발생 확률을 갖는 심볼에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 각 심볼들에 대한 비트열의 크기가 감소될 수 있다. 따라서 엔트로피 복호화 방법을 통해서 영상 복호화의 압축 성능이 높아질 수 있다.
양자화된 계수는 역양자화부(220)에서 역양자화되고 역변환부(230)에서 역변환되며, 양자화된 계수가 역양자화/역변환 된 결과, 복원된 잔여 블록(residual block)이 생성될 수 있다.
인트라 모드인 경우, 인트라 예측부(240)는 현재 블록 주변의 이미 부호화된 블록의 화소값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다. 인터 모드인 경우, 움직임 보상부(250)는 부호화기로부터 전송받은 움직임 정보 및 참조 영상 버퍼(270)에 저장되어 있는 참조 영상을 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다.
복호화기는 화면 간 조명 변화에 의한 화질 열화를 방지하기 위해 가중치 예측 기술, 지역적 조명 변화 기술 등의 오차 보상 기술을 사용할 수 있다. 조명 변화에 의한 오차를 보상하기 위한 방법은 도 1의 실시예에서 상술한 바 있다.
상술한 부호화기의 경우와 마찬가지로 복호화기도 다양한 예측 방법을 이용하여 현재 블록에 대한 예측을 수행할 수 있으며, 각각의 예측 방법은 서로 다른 예측 모드에서 적용될 수 있다. 예를 들어, 화면 간 예측에서 사용되는 예측 모드에는 생략(skip) 모드, 머지(merge) 모드, AMVP(Advanced Motion Vector Prediction) 모드 등이 있을 수 있다. 복호화기는 어떤 모드가 예측에 사용되는지에 대한 정보를 부호화기로부터 수신할 수 있다.
특히 생략 모드에서 복호화기는 주변 블록으로부터 제공받은 움직임 정보를 이용하여 현재 블록의 움직임 정보를 도출함으로써 예측 블록을 생성할 수 있다. 또한 생략 모드에서는 예측 블록과 현재 블록의 잔여(residual) 신호의 값이 0일 수 있다. 따라서 복호화기는 별도의 움직임 정보 및 잔여 신호를 수신하지 않을 수 있으며, 이전에 부호화된 영역으로부터 제공받은 정보만을 이용하여 예측 블록을 생성할 수 있다. 생략 모드의 상세는 부호화기에서 상술한 바와 유사하다.
복원된 잔여 블록과 예측 블록은 가산기(255)를 통해 더해지고, 더해진 블록은 필터부(260)를 거친다. 필터부(260)는 디블록킹 필터, SAO, ALF 중 적어도 하나 이상을 복원 블록 또는 복원 픽쳐에 적용할 수 있다. 필터부(260)는 재구성된 영상, 즉 복원 영상을 출력한다. 복원 영상은 참조 영상 버퍼(270)에 저장되어 화면 간 예측에 사용될 수 있다.
도 1 및 도 2의 실시예에서 상술한 생략 모드에서는 움직임 정보 및 잔여 신호가 복호화기로 전송되지 않으므로, 다른 예측 모드가 사용되는 경우에 비해 전송되는 정보량이 적을 수 있다. 따라서 율-왜곡 최적화 과정에 의해 생략 모드가 선택되는 빈도가 높으면 영상 압축 효율이 향상될 수 있다.
생략 모드에서 부호화기 및 복호화기는 이전 부호화/복호화된 영역의 정보만을 사용하여 예측을 수행한다. 생략 모드에서는 주변 블록의 움직임 정보, 참조 블록의 화소값만으로 예측이 수행되므로, 율-왜곡 최적화(rate-distortion optimization) 측면에서 다른 모드와 비교할 때, 부호화에 필요한 율(rate)은 최소이나 왜곡(distortion)은 클 수 있다. 화면 간 조명 변화가 심한 영상의 경우에는 화면 간 왜곡이 매우 크기 때문에, 생략 모드가 현재 블록의 최적 예측 모드로 선택될 가능성이 낮아질 수 있다. 또한 부호화/복호화가 저비트율로 수행되는 경우, 즉 큰 양자화 스텝(quantization step)을 이용하여 양자화/역양자화가 수행되는 경우에도 화면 간 왜곡이 커지므로, 생략 모드가 현재 블록의 최적 예측 모드로 선택될 가능성이 낮아질 수 있다.
생략 모드를 제외한 다른 화면 간 예측 모드에서 지역적 조명 변화 보상 등이 사용되는 경우, 생략 모드가 아닌 예측 모드가 적용되는 블록들에 대해서는, 조명 변화를 고려한 오차 보상 예측이 수행된다. 또한 상기 블록들의 움직임 벡터 도출에 있어서도 오차 보상이 반영될 수 있다. 이 때, 현재 블록에 대해 생략 모드로 부호화가 수행되는 경우를 가정하면, 주변 블록으로부터 얻어진 움직임 벡터 값들은 오차 보상이 반영된 값들일 수 있고 상기 주변 블록들은 0이 아닌 DC 오프셋 값을 가질 수 있다. 그러나, 생략 모드에서는 별도의 움직임 보상 없이 참조 블록의 화소값이 그대로 현재 블록 화소의 예측값으로 사용되므로, 예측값에 오차 보상이 반영될 수 없다. 이 경우, 생략 모드에서 화면 간 왜곡이 커질 가능성이 높아진다. 따라서 생략 모드를 제외한 다른 화면 간 예측 모드에서 조명 변화를 반영하기 위해 MRSAD(Mean-Removed Sum of Absolute Difference) 등의 오차 보상이 사용되는 경우, 생략 모드가 현재 블록의 최적 예측 모드로 선택될 가능성이 더 낮아질 수 있다.
따라서 최적의 예측 모드로 생략 모드가 선택되는 비율을 증가시키기 위해, 오차 보상을 이용한 생략 모드 예측 방법이 제공될 수 있다.
도 3은 본 발명의 실시예에 따른, 오차 보상을 이용한 생략 모드 예측 방법을 개략적으로 나타내는 흐름도이다. 도 3의 실시예에서 부호화기 및 복호화기는 생략 모드에서 현재 블록에 대한 예측을 수행한다. 일 실시예로 도 3의 실시예에 따른 예측은 부호화기 및 복호화기의 인트라 예측부, 움직임 예측부 및/또는 움직임 보상부에서 수행될 수 있다.
이하, 본 발명의 실시예들은 부호화기 및 복호화기에 동일하게 적용될 수 있으며, 실시예들은 복호화기를 중심으로 서술된다. 부호화기에서는, 후술되는 이전에 복호화된 블록이 아닌, 이전에 부호화된 블록이 현재 블록의 예측에 사용될 수 있다. 이전에 부호화된 블록은 현재 블록에 대한 예측 및/또는 부호화 수행 전에 부호화된 블록을 의미하고, 이전에 복호화된 블록은 현재 블록에 대한 예측 및/또는 복호화 수행 전에 복호화된 블록을 의미할 수 있다.
도 3을 참조하면, 복호화기는 이전에 복호화된 블록들로부터 현재 블록에 대한 예측 블록의 화소값을 도출한다(S310). 예측 블록은 현재 블록에 대한 예측 수행 결과 생성된 블록을 의미한다.
복호화기는 이전에 복호화된 블록들의 움직임 정보를 이용하여 현재 블록에 대한 움직임 정보를 도출할 수 있다. 움직임 정보가 도출되면, 이를 이용하여 참조 영상 내 참조 블록의 화소(pixel)값을 도출할 수 있다. 도 3의 실시예에서 복호화기는 생략 모드에서 예측을 수행하므로, 참조 블록의 화소값이 예측 블록의 화소값이 될 수 있다. 참조 블록은 1개일 수 있고, 2개 이상일 수도 있다. 참조 블록이 2개 이상인 경우, 복호화기는 각각의 참조 블록을 별개로 이용하여 2개 이상의 예측 블록을 생성할 수도 있고, 2 이상 참조 블록의 화소값들의 가중치 합을 이용하여 현재 블록에 대한 예측 블록의 화소값을 도출할 수도 있다. 이 때, 예측 블록은 움직임 예측 블록으로도 불릴 수 있다.
복호화기는 현재 블록에 대한 오차 보상 블록의 샘플(sample)값을 도출한다(S320). 오차 보상 블록은 예측 블록과 동일한 크기를 가질 수 있다. 이하, 오차 보상 값은 오차 보상 블록의 샘플값과 동일한 의미를 가진다.
복호화기는 현재 블록의 주변 블록에 포함된 정보 및/또는 현재 블록의 주변 블록에 포함된 오차 파라미터 등을 이용하여, 현재 블록의 오차 모델에 대한 오차 파라미터를 도출할 수 있다. 오차 파라미터가 도출되면, 복호화기는 오차 모델 정보 및 도출된 오차 파라미터 정보를 이용하여 현재 블록에 대한 오차 보상 값을 도출할 수 있다. 이 때 복호화기는, 참조 블록이 2개 이상이면, 움직임 정보 등을 오차 파라미터 정보 및 오차 모델 정보와 함께 이용하여 오차 보상 값을 도출할 수도 있다.
복호화기는 예측 블록의 화소값과 오차 보상 값을 이용하여 현재 블록에 대한 최종 예측 블록의 화소값을 도출한다(S330). 최종 예측 블록의 화소값 도출 방법은 참조 블록의 개수 또는 현재 영상의 부호화/복호화 방식에 따라 달라질 수 있다.
상술한 도 3의 실시예의 각 단계에 대한 상세는 후술한다.
도 4는 본 발명의 실시예에 따른 예측 블록의 화소값 도출 방법을 개략적으로 나타내는 흐름도이다.
도 4를 참조하면, 복호화기는 이전에 복호화된 블록들로부터 현재 블록에 대한 움직임 정보를 도출한다(S410). 상기 움직임 정보는 현재 블록에 대한 예측 블록의 화소값 도출에 사용될 수 있다.
복호화기는 현재 블록에 대한 주변 블록의 움직임 정보들로부터 움직임 정보를 도출할 수 있다. 이 때, 주변 블록은 현재 영상 내에 존재하는 블록으로서, 이전에 이미 복호화된 블록이다. 복호화기는 1개의 움직임 정보를 도출할 수도 있고, 2개 이상의 움직임 정보를 도출할 수도 있다. 움직임 정보가 2개 이상인 경우, 움직임 정보의 개수에 따라 2개 이상의 참조 블록이 현재 블록의 예측에 사용될 수 있다.
복호화기는 현재 블록에 대한 주변 블록의 움직임 정보만이 아니라, 참조 영상 내 동일 위치 블록(collocated block)에 대한 주변 블록의 움직임 정보들을 함께 이용하여 움직임 정보를 도출할 수도 있다. 이 때, 부호화기는 1개 또는 2개 이상의 움직임 정보를 도출할 수 있다. 움직임 정보가 2개 이상인 경우, 움직임 정보의 개수에 따라 2개 이상의 참조 블록이 현재 블록의 예측에 사용될 수 있다.
복호화기는 상술한 방법들 중 적어도 하나를 이용하여 움직임 정보를 도출할 수 있으며, 상기 경우들에 대한 움직임 정보 도출 방법의 상세는 후술한다.
복호화기는 도출된 움직임 정보를 이용하여 예측 블록의 화소값을 도출한다(S420).
생략 모드에서는 참조 블록과 현재 블록의 잔여(residual) 신호의 값이 0이고, 참조 블록이 1개일 때에는 참조 영상 내 참조 블록의 화소값이 그대로 현재 블록에 대한 예측 블록의 화소값이 될 수 있다.
참조 블록은, 현재 블록에 대한 참조 영상 내 동일 위치 블록(collocated block)이 움직임 벡터의 값만큼 이동된 블록일 수 있다. 이 때, 현재 블록에 대한 예측 블록의 화소값은, 참조 영상 내에서 예측 블록과 동일한 위치에 있는 블록이 움직임 벡터의 값만큼 이동된 블록, 즉 참조 블록의 화소값일 수 있다. 현재 블록에 대한 예측 블록의 화소값은 다음 수학식 1과 같이 나타내어질 수 있다.
[수학식 1]
Pcur(t0, X, Y) = Pref(X+MV(x), Y+MV(y))
여기서, Pcur는 현재 블록에 대한 예측 블록의 화소값, Pref는 참조 블록의 화소값을 나타낸다. X는 현재 블록 내 화소의 x축 방향의 좌표, Y는 현재 블록 내 화소의 y축 방향의 좌표를 나타낸다. 또한 MV(x)는 움직임 벡터의 x축 방향 크기를 나타내고 MV(y)는 움직임 벡터의 y축 방향 크기를 나타낸다.
참조 블록이 2개 이상일 때에는, 참조 블록들의 화소값의 가중치 합을 이용하여, 현재 블록에 대한 예측 블록의 화소값을 도출할 수 있다. 즉, N개의 참조 블록이 예측 블록 생성에 사용되는 경우, N개 참조 블록의 화소값의 가중치 합이 예측 블록의 화소값이 될 수 있다. 참조 블록이 N개일 때 도출된 현재 블록에 대한 움직임 정보가 {{ref_idx1, MV1}, {ref_idx2, MV2}, … , {ref_idxn, MVn}}으로 표현되는 경우, i번째 움직임 정보에 대응하는 참조 블록만을 이용하여 도출되는 예측 블록의 화소값은 다음 수학식 2과 같이 나타내어질 수 있다.
[수학식 2]
Pcur_ref_i(t0, X, Y) = Pref_i(X+MVi(x), Y+MVi(y))
여기서, Pcur_ref_i는 i번째 움직임 정보에 대응하는 참조 블록만을 이용하여 도출된 예측 블록의 화소값, Pref_i는 i번째 움직임 정보에 대응하는 참조 블록의 화소값을 나타낸다. 또한 MVi(x)는 i번째 움직임 벡터의 x축 방향 크기를 나타내고 MVi(y)는 i번째 움직임 벡터의 y축 방향 크기를 나타낸다.
이 때, N개의 참조 블록의 화소값들의 가중치 합에 의해 도출되는, 현재 블록에 대한 예측 블록의 화소값은 다음 수학식 3과 같이 나타내어질 수 있다.
[수학식 3]
Figure pat00001
여기서, Pcur_ref는 현재 블록에 대한 예측 블록의 화소값을 나타내고, wi는 i번째 움직임 정보에 대응하는 참조 블록의 화소값에 적용되는 가중치를 나타낸다. 이 때, 상기 가중치들의 합은 1일 수 있다. 일 실시예로, 2개의 참조 블록이 사용되는 쌍예측에서, N=2일 때 w1=1/2, w2=1/2일 수 있다.
상술한 수학식 3의 실시예에서, 각각의 참조 블록의 화소값에 적용되는 가중치들은, 미리 정해진 고정된 값이 사용될 수 있다. 또한 각각의 가중치들은, 그 가중치가 적용되는 참조 블록이 포함된 참조 영상과 현재 영상의 거리에 따라 달리 설정될 수도 있다. 또한 각각의 가중치들은, 예측 블록 내 화소의 공간적 위치에 따라 달리 설정될 수도 있다. 상기 예측 블록 내 화소의 공간적 위치는, 현재 블록 내에서 현재 예측되는 화소의 공간적 위치와 동일할 수 있다. 가중치들이 예측 블록 내 화소의 공간적 위치에 따라 달리 설정되는 경우, 현재 블록에 대한 예측 블록의 화소값은 다음 수학식 4와 같이 나타내어질 수 있다.
[수학식 4]
Figure pat00002
여기서, 가중치 wi(X,Y)는 i번째 움직임 정보에 대응하는 참조 블록의 화소값에 적용되는 가중치이다. 수학식 4를 참조하면, 가중치 wi(X,Y)는 예측 블록 내 화소의 좌표 (X,Y)에 따라 서로 다른 값을 가질 수 있다.
복호화기는, 도출된 움직임 정보를 이용하여 예측 블록의 화소값을 도출함에 있어, 상술한 방법들 중 적어도 하나를 이용할 수 있다.
도 5는 도 4의 실시예에서의 움직임 정보 도출시에 사용되는, 현재 블록에 대한 주변 블록의 실시예를 개략적으로 나타내는 개념도이다. 현재 블록에 대한 주변 블록은 현재 영상 내의 블록으로서, 이전에 이미 복호화된 블록이다.
움직임 정보는 현재 블록에 대한 참조 블록의 위치에 관한 정보를 포함할 수 있다. 복호화기는 1개의 움직임 정보를 도출할 수도 있고, 2개 이상의 움직임 정보를 도출할 수도 있다. 움직임 정보가 2개 이상인 경우, 움직임 정보의 개수에 따라 2개 이상의 참조 블록이 현재 블록의 예측에 사용될 수 있다.
도 5의 실시예를 참조하면, 복호화기는 블록A, 블록B, 블록C의 움직임 정보를 사용하여 현재 블록에 대한 움직임 정보를 도출할 수 있다. 일 실시예로 복호화기는 참조 영상 리스트에 포함된 영상 중, 현재 블록이 포함된 영상과 시간축으로 가장 가까운 영상을 참조 영상으로 선택할 수 있다. 이 때, 복호화기는 블록A, 블록B, 블록C의 움직임 정보 중 상기 선택된 참조 영상을 지시하는 움직임 정보들만을 선택하여 현재 블록의 움직임 정보 도출에 사용할 수도 있다. 복호화기는 수평 및 수직 성분에 대해 선택된 움직임 정보의 중간값(median)을 구할 수 있으며, 이 경우, 그 중간값이 현재 블록의 움직임 벡터일 수 있다.
현재 블록의 움직임 정보 도출에 사용되는 주변 블록의 위치 및 개수는 상기 실시예에 한하지 않으며, 구현에 따라 도 5의 실시예와 다른 다양한 위치와 개수의 주변 블록들이 움직임 정보 도출에 사용될 수 있다.
상기 주변 블록에 대한 움직임 정보는 머지(merge) 방법으로 부호화/복호화된 정보일 수 있다. 머지 모드에서 복호화기는 현재 블록의 머지 인덱스(merge idx)가 지시하는 블록에 포함된 움직임 정보를, 현재 블록의 움직임 정보로 사용할 수 있다. 따라서 주변 블록이 머지 모드에서 부호화/복호화된 경우, 상기 실시예에 따른 움직임 정보 도출 방법은, 머지 방법에 의해 상기 주변 블록의 움직임 정보를 도출하는 과정을 추가로 포함할 수 있다.
도 6은 도 4의 실시예에서의 움직임 정보 도출시에 사용되는, 현재 블록의 주변 블록 및 참조 영상 내 동일 위치 블록의 주변 블록의 실시예를 개략적으로 나타내는 개념도이다.
도 4의 실시예에서 상술한 바와 같이, 복호화기는 현재 블록에 대한 주변 블록의 움직임 정보만이 아니라, 참조 영상 내 동일 위치 블록에 대한 주변 블록의 움직임 정보들을 함께 이용하여 움직임 정보를 도출할 수 있다.
도 6을 참조하면, 참조 영상 내의 블록들은 모두 이미 복호화된 블록일 수 있다. 따라서 참조 영상 내 동일 위치 블록 주변의 모든 블록이, 현재 블록의 움직임 정보 도출에 사용되는 블록으로 선택될 수 있다. 현재 블록에 대한 주변 블록은 현재 영상 내의 블록으로서, 이전에 이미 복호화된 블록이다.
현재 블록의 움직임 정보를 도출하기 위해, 일 실시예로 상기 블록들의 중간값(median)이 사용될 수 있다. 또한 현재 블록의 움직임 정보를 도출하기 위해 움직임 벡터 경쟁(motion vector competition) 방법이 사용될 수도 있다. 움직임 벡터 경쟁 방법에서 움직임 정보 예측 부호화가 수행되는 경우에는, 복수 개의 예측 후보들이 사용될 수 있다. 복호화기는 복수의 예측 후보들 중 율 제어 비용 측면을 고려하여 최적의 예측 후보를 선택하고, 상기 선택된 예측 후보를 사용하여 움직임 정보 예측 부호화를 수행할 수 있다. 이 때, 복수 개의 예측 후보들 중 어떤 후보가 선택이 되는지에 대한 정보가 추가로 필요할 수 있다. 움직임 벡터 경쟁 방법에는, 예를 들어 AMVP(Adavanced Motion Vector Prediction) 등이 있을 수 있다.
도 7은 본 발명의 실시예에 따른 오차 보상 값 도출 방법을 개략적으로 나타내는 흐름도이다.
도 7을 참조하면, 복호화기는 현재 블록의 오차 모델에 대한 오차 파라미터를 도출한다(S710).
본 발명의 실시예에 따른 오차 보상 값을 도출하기 위해, 현재 블록과 참조 블록 간의 오차를 모델링(modeling)하여 얻어진 오차 모델이 사용될 수 있다. 현재 블록의 오차 보상에 사용되는 오차 모델에는 다양한 유형이 있을 수 있으며, 예를 들어 0차 오차 모델, 1차 오차 모델, N차 오차 모델, 비선형 오차 모델 등이 있을 수 있다.
0차 오차 모델의 오차 보상 값은, 일 실시예로 다음 수학식 5에 의해 나타내어질 수 있다.
[수학식 5]
오차 보상 값(x,y) = b
여기서, (x,y)는 현재 블록 내의 예측 대상 화소의 좌표이다. b는 DC 오프셋(DC offset)으로, 0차 오차 모델의 오차 파라미터에 해당한다. 0차 오차 모델을 이용하여 오차 보상이 수행되는 경우, 복호화기는 예측 블록의 화소값과 오차 보상 값을 이용하여 최종 예측 블록의 화소값을 도출할 수 있다. 이는 다음 수학식 6에 의해 나타내어질 수 있다.
[수학식 6]
최종 예측 블록의 화소값(x,y) = 예측 블록의 화소값(x,y) + b
1차 오차 모델의 오차 보상 값은, 일 실시예로 다음 수학식 7에 의해 나타내어질 수 있다.
[수학식 7]
오차 보상 값(x,y) = (a-1)*예측 블록의 화소값(x,y) + b
여기서, a와 b는 1차 오차 모델의 오차 파라미터에 해당한다. 1차 오차 모델이 사용되는 경우, 복호화기는 오차 파라미터 a와 b를 구한 후 보상을 수행한다. 1차 오차 모델을 이용하여 오차 보상이 수행되는 경우에 도출되는 최종 예측 블록의 화소값은 다음 수학식 8에 의해 나타내어질 수 있다.
[수학식 8]
최종 예측 블록의 화소값(x,y)
= 예측 블록의 화소값(x,y) + 오차 보상 값(x,y)
= a*예측 블록의 화소값(x,y) + b
N차 오차 모델의 오차 보상 값과 최종 예측 블록의 화소값은, 일 실시예로 다음 수학식 9에 의해 나타내어질 수 있다.
[수학식 9]
오차 보상 값(x,y) = an*P(x,y)n + an-1*P(x,y)n-1 +…+ (a-1)P(x,y) + b
최종 예측 블록의 화소값(x,y)
= 예측 블록의 화소값(x,y) + 오차 보상 값(x,y)
= an*P(x,y)n + an-1*P(x,y)n-1 +…+ a*P(x,y) + b
여기서, P는 현재 블록에 대한 예측 블록의 화소값을 의미한다.
복호화기는 기타 비선형 오차 모델을 이용할 수도 있다. 이 때, 오차 보상 값은 일 실시예로 다음 수학식 10에 의해 나타내어질 수 있다.
[수학식 10]
오차 보상 값(x,y) = f(P(x,y))
여기서 f는 선형이 아닌 임의의 함수일 수 있다.
현재 블록 내에서 사용되는 오차 파라미터들은 상기 실시예들에서 상술한 바와 같이 모두 동일한 값일 수 있다. 그러나, 현재 블록 내의 예측 대상 화소의 위치에 따라 서로 다른 오차 파라미터가 사용될 수도 있다. 복호화기는 동일한 오차 파라미터를 사용하여 도출한 오차 보상 값에, 현재 블록 내 예측 대상 화소의 공간적 위치에 따라, 가중치를 적용하여 최종 오차 보상 값을 도출할 수도 있다. 이 때, 최종 오차 보상 값은 예측 대상 화소의 현재 블록 내 위치에 따라 달라질 수 있다. 상기 최종 오차 보상 값은 다음 수학식 11에 의해 나타내어질 수 있다.
[수학식11]
최종 오차 보상 값(x,y) = 동일 오차 파라미터를 사용하여 도출된 오차 보상 값(x,y) * w(x,y)
여기서 w는 가중치를 의미한다.
복호화기는 현재 블록의 오차 모델에 따라 오차 파라미터를 도출할 수 있다. 오차 파라미터 도출 단계에서 현재 블록의 실제 화소값은 복호화기가 구할 수 없으므로, 현재 블록의 주변 블록에 포함된 정보를 이용하여, 현재 블록에 대한 오차 모델의 오차 파라미터를 도출할 수 있다. 여기서, 현재 블록의 주변 블록은 현재 블록에 인접한 주변 블록으로서, 이전에 부호화된 블록을 의미한다.
상기 오차 파라미터를 도출함에 있어 복호화기는, 현재 블록에 대한 주변 블록의 화소값, 참조 블록의 화소값 및/또는 참조 블록에 대한 주변 화소의 화소값들만을 이용할 수 있다. 또한 상기 오차 파라미터를 도출함에 있어 복호화기는 상기 화소값들뿐만 아니라, 현재 블록에 대한 주변 블록에 포함된 움직임 정보 및/또는 부호화 모드 정보 등을 함께 이용할 수 있고, 현재 블록에 포함된 움직임 정보 및/또는 부호화 모드 정보 등을 함께 이용할 수도 있다.
0차 오차 모델이 오차 보상에 사용되고, 현재 블록에 대한 주변 블록의 화소값, 참조 블록의 화소값 및/또는 참조 블록에 대한 주변 화소의 화소값들만이 오차 파라미터 도출에 사용되는 경우, 일 실시예로 오차 파라미터 b는 다음 수학식 12에 의해 나타내어질 수 있다.
[수학식 12]
b = Mean(Current Block’) - Mean(Reference Block’)
여기서 Mean(Current Block’)은 현재 블록의 주변 블록으로서 이미 부호화된 블록의 화소값의 평균일 수 있다. 오차 파라미터 도출 단계에서 복호화기는 현재 블록 화소값의 평균을 구할 수 없으므로, 현재 블록의 주변 블록 화소값의 평균을 구하여 오차 파라미터 도출에 이용할 수 있다. Mean(Reference Block’)은 참조 블록 화소값의 평균이거나 참조 블록의 주변 블록 화소값의 평균일 수 있다. 오차 파라미터 도출 단계에서 복호화기는 참조 블록 화소값을 얻을 수 있으므로, 참조 블록의 주변 블록 화소값 뿐만 아니라 참조 블록 화소값도 오차 파라미터 도출에 사용할 수 있다.
0차 오차 모델에 대한 오차 파라미터 도출 방법의 구체적인 실시예들은 후술한다.
1차 오차 모델이 오차 보상에 사용되는 경우, 일 실시예로 오차 파라미터 a는 다음 수학식 13에 의해 구해질 수 있다.
[수학식 13]
a = Mean(Current Block’) / Mean(Reference Block’)
여기서 Mean(Current Block’) 및 Mean(Reference Block’)은 수학식 12의 Mean(Current Block’) 및 Mean(Reference Block’)과 동일한 의미를 가진다. 이 때, 오차 파라미터 b는 0차 오차 모델에서와 동일한 방식으로 구해질 수 있다.
1차 오차 모델이 오차 보상에 오차 보상에 사용되는 경우, 다른 실시예로 복호화기는 가중치 예측(WP: Weighted Prediction)에서 사용되는 방식을 이용하여 오차 파라미터를 도출할 수 있다. 이 때, 오차 파라미터 a는 다음 수학식 14에 의해 구해질 수 있다.
[수학식 14]
Figure pat00003
여기서, wY[n]은 가중치 값(weighting value)으로서, 오차 파라미터 a를 나타낸다. 또한 H는 현재 블록 및 참조 블록의 높이(height)를 나타내고, W는 현재 블록 및 참조 블록의 폭(width)을 나타낸다. cY ij는 현재 프레임 내의 루마(luma) 화소값, rY[n]ij는 참조 프레임 내의 루마 화소값을 나타낸다. 또한 iclip3(a, b, c)의 값은 c가 a보다 작은 경우에는 a, c가 b보다 클 때는 b, 그렇지 않은 경우에는 c가 된다.
또한 가중치 예측에서 사용되는 방식이 오차 파라미터 도출에 사용되는 경우, 오차 파라미터 b는 다음 수학식 15에 의해 구해질 수 있다.
[수학식 15]
Figure pat00004
여기서, offsetY[n]은 오프셋 값으로서, 오차 파라미터 b를 나타낸다.
현재 블록의 주변 블록에 대한 오차 파라미터 정보가 존재하는 경우, 복호화기는 현재 블록에 대한 주변 블록의 오차 파라미터를 이용하여 현재 블록의 오차 파라미터를 도출할 수도 있다.
일 실시예로, 현재 블록과 움직임 벡터가 동일한 주변 블록으로서 오차 파라미터 정보를 갖는 주변 블록이 1개 존재할 때, 복호화기는 그 오차 파라미터를 현재 블록의 오차 파라미터로 사용할 수 있다. 다른 실시예로, 현재 블록과 움직임 벡터가 동일한 주변 블록으로서 오차 파라미터 정보를 갖는 주변 블록이 2개 이상 존재할 때, 복호화기는 상기 주변 블록들의 오차 파라미터들의 가중치 합을 구하여 그 값을 현재 블록의 오차 파라미터 로 사용할 수도 있다. 또한 복호화기는, 오차 파라미터를 도출함에 있어, 현재 블록에 대한 주변 블록의 오차 파라미터를 초기 예측값으로 이용할 수도 있다.
복호화기는 부호화기로부터 전송 받은 추가적인 정보를 이용하여 오차 파라미터를 도출할 수도 있다. 일 실시예로, 부호화기는 실제 오차 파라미터와 예측 오차 파라미터의 차분 정보를 추가로 복호화기로 전송할 수 있다. 이 때, 복호화기는 예측 오차 파라미터 정보에 전송 받은 차분 정보를 더하여 실제 오차 파라미터를 도출할 수 있다. 여기서, 예측 오차 파라미터는 부호화기 및 복호화기에서 예측되는 오차 파라미터를 의미한다. 부호화기로부터 추가로 전송되는 파라미터 정보는 상기 차분 정보에 한정되지 않으며, 다양한 유형을 가질 수 있다.
다시 도 7을 참조하면, 복호화기는 오차 모델 및 도출된 오차 파라미터를 이용하여 현재 블록에 대한 오차 보상 값을 도출한다(S720).
사용되는 참조 블록이 1개인 경우, 복호화기는 오차 모델 및 오차 파라미터에 의해 도출되는 오차 보상 값을 그대로 현재 블록의 오차 보상값으로 사용할 수 있다.
사용되는 참조 블록이 2개 이상인 경우, 복호화기는 각각의 참조 블록을 별개로 이용하여 2개 이상의 예측 블록을 생성할 수도 있다. 이 때 복호화기는 각 예측 블록에 대한 오차 파라미터를 도출하여, 각 예측 블록에 대해 오차 보상 값을 도출할 수 있다. 이하, 각 예측 블록에 대한 오차 보상 값은 오차 블록 값으로 불릴 수 있다. 복호화기는 상기 오차 블록 값들의 가중치 합에 의해, 현재 블록에 대한 오차 보상 값을 도출할 수 있다.
일 실시예로 상기 가중치는 현재 블록 및 각 참조 블록에 대응하는 예측 블록 간의 거리 정보를 이용하여 정해질 수 있다. 또한 참조 블록이 2개 이상인 경우 각 참조 블록을 지시하는 2 이상의 움직임 정보가 존재할 수 있고, 상기 가중치는 각 움직임 정보의 방향성 정보를 이용하여 정해질 수도 있다. 또한 상기 가중치는 상기 각 움직임 정보 간의 방향성 정보 뿐만 아니라, 각 움직임 정보들의 크기 정보를 함께 이용하여 정해질 수도 있다. 2 이상의 참조 블록이 사용되는 경우, 오차 보상 값 도출에 사용되는 가중치의 구체적인 실시예는 후술한다.
가중치는 상술한 실시예들 중 적어도 하나 이상의 방법을 이용하여 구해질 수 있다. 또한 가중치가 정해지는 방법은 상술한 실시예들에 한하지 않으며, 가중치는 구현에 따라 다양한 방법으로 정해질 수 있다.
도 8은 본 발명에 따른 0차 오차 모델에 대한 오차 파라미터 도출 방법의 일 실시예를 개략적으로 나타내는 개념도이다. 도 8의 실시예에서 N은 현재 블록 및 참조 블록의 높이(height)와 폭(width)을 나타낸다. 또한 D는 현재 블록 및 참조 블록에 인접한 주변 화소들의 라인(line) 수를 나타낸다. 예를 들어, D는 1, 2, 3, 4, …, N 등의 값을 가질 수 있다.
도 8을 참조하면, 복호화기는 현재 블록 주변 화소들의 화소값 및 참조 블록 주변 화소들의 화소값을 오차 파라미터 도출에 사용할 수 있다. 이 때, 0차 모델의 오차 파라미터는 다음 수학식 16에 의해 나타내어질 수 있다.
[수학식 16]
offset = Mean(Current Neighbor) - Mean(Ref. Neighbor)
여기서, offset은 0차 모델의 오차 파라미터를 나타낸다. 또한 Mean(Current Neighbor)은 현재 블록에 인접한 주변 화소의 화소값들의 평균을 나타낸다. 오차 파라미터 도출 단계에서 복호화기는 현재 블록 화소값의 평균을 구할 수 없으므로, 현재 블록 주변 화소의 화소값들의 평균을 구하여 오차 파라미터 도출에 사용할 수 있다. Mean(Ref. Neighbor)은 참조 블록의 주변 화소의 화소값들의 평균을 나타낸다.
수학식 16을 참조하면, 복호화기는 현재 블록 주변 화소의 화소값 평균과 참조 블록 주변 화소의 화소값 평균의 차이값을 오차 파라미터 값으로 도출할 수 있다. 이 때, 오차 파라미터 도출에 사용되는 화소들의 범위는 다양하게 정해질 수 있다. 일 실시예로, D=1인 경우 현재 블록 및/또는 참조 블록에 바로 인접한 라인에 포함되는 화소값들만이 오차 파라미터 도출에 이용될 수 있다.
도 9는 본 발명에 따른 0차 오차 모델에 대한 오차 파라미터 도출 방법의 다른 실시예를 개략적으로 나타내는 개념도이다. 도 9의 실시예에서의 N, D는 도 8의 실시예에서의 N, D와 동일한 의미를 가진다.
도 9를 참조하면, 복호화기는 현재 블록 주변 화소들의 화소값 및 참조 블록 내 화소들의 화소값을 오차 파라미터 도출에 사용할 수 있다. 이 때, 0차 모델의 오차 파라미터는 다음 수학식 17에 의해 나타내어질 수 있다.
[수학식 17]
offset = Mean(Current Neighbor) - Mean(Ref. Block)
여기서, Mean(Ref. Block)은 참조 블록 내 화소의 화소값들의 평균을 나타낸다.
수학식 17을 참조하면, 복호화기는 현재 블록 주변 화소의 화소값 평균과 참조 블록 내 화소의 화소값 평균의 차이값을 오차 파라미터 값으로 도출할 수 있다. 이 때 도 8의 실시예에서와 마찬가지로, 사용되는 화소들의 범위는 다양하게 정해질 수 있다.
도 10은 본 발명에 따른 0차 오차 모델에 대한 오차 파라미터 도출 방법의 또 다른 실시예를 개략적으로 나타내는 개념도이다. 도 10의 실시예에서의 N, D는 도 8의 실시예에서의 N, D와 동일한 의미를 가진다.
도 10을 참조하면, 복호화기는 현재 블록 주변 화소들의 화소값 및 참조 블록 주변 화소들의 화소값을 오차 파라미터 도출에 사용할 수 있다. 또한 도 7의 실시예에서 상술한 바와 같이, 복호화기는 상기 화소값들 뿐만 아니라 현재 블록에 대해 도출된 움직임 정보를 함께 이용하여 오차 파라미터를 도출할 수도 있다. 이 때, 0차 모델의 오차 파라미터는 다음 수학식 18에 의해 나타내어질 수 있다.
[수학식 18]
offset = Mean(weight*Current Neighbor) - Mean(weight*Ref. Neighbor)
Mean(weight*Current Neighbor)은 현재 블록에 인접한 주변 화소의 화소값들의 가중치 평균을 나타낸다. Mean(weight*Ref. Neighbor)은 참조 블록의 주변 화소의 화소값들의 가중치 평균을 나타낸다.
수학식 18을 참조하면, 복호화기는 현재 블록 주변 화소의 화소값들의 가중치 평균과 참조 블록 주변 화소의 화소값들의 가중치 평균의 차이값을 오차 파라미터 값으로 도출할 수 있다.
가중치는 현재 블록 및/또는 현재 블록의 주변 블록에 대해 도출된 움직임 정보의 방향성을 이용하여 구해질 수 있다. 도 10의 실시예를 참조하면, 상기 움직임 벡터가 수평 성분만을 가지는 경우, 복호화기는 현재 블록 및 참조 블록의 좌측 블록에 포함된 화소의 화소값들만을 오차 파라미터 도출에 이용할 수 있다. 이 때, 좌측 블록의 화소값들에는 1의 가중치 값이 적용되고, 상단 블록의 화소값들에는 0의 가중치가 적용될 수 있다.
이 때 도 8의 실시예에서와 마찬가지로, 사용되는 화소들의 범위는 다양하게 정해질 수 있다.
도 11은 본 발명에 따른 0차 오차 모델에 대한 오차 파라미터 도출 방법의 또 다른 실시예를 개략적으로 나타내는 개념도이다. 도 11의 실시예에서의 N, D는 도 8의 실시예에서의 N, D와 동일한 의미를 가진다.
도 11을 참조하면, 복호화기는 현재 블록 주변 화소들의 화소값 및 참조 블록 내 화소들의 화소값을 오차 파라미터 도출에 사용할 수 있다. 이 때, 0차 모델의 오차 파라미터는 다음 수학식 19에 의해 나타내어질 수 있다.
[수학식 19]
offset = Mean(weight*Current Neighbor) - Mean(Ref.Block)
수학식 19를 참조하면, 복호화기는 현재 블록 주변 화소의 화소값들의 가중치 평균과 참조 블록 내 화소의 화소값들의 평균의 차이값을 오차 파라미터 값으로 도출할 수 있다.
가중치는 현재 블록 및/또는 현재 블록의 주변 블록에 대해 도출된 움직임 정보의 방향성을 이용하여 구해질 수 있다. 도 11의 실시예를 참조하면, 상기 움직임 벡터가 수평 성분만을 가지는 경우, 복호화기는 현재 블록에 인접한 화소의 화소값들 중 현재 블록의 좌측 블록에 포함된 화소의 화소값들만을 오차 파라미터 도출에 이용할 수 있다. 이 때, 좌측 블록의 화소값들에는 1의 가중치 값이 적용되고, 상단 블록의 화소값들에는 0의 가중치가 적용될 수 있다.
이 때 도 8의 실시예에서와 마찬가지로, 사용되는 화소들의 범위는 다양하게 정해질 수 있다.
도 12는 본 발명에 따른 0차 오차 모델에 대한 오차 파라미터 도출 방법의 또 다른 실시예를 개략적으로 나타내는 개념도이다. 도 12의 실시예에서의 N, D는 도 8의 실시예에서의 N, D와 동일한 의미를 가진다.
도 12의 1210을 참조하면, 복호화기는 현재 블록 주변 화소들의 화소값 및 참조 블록 주변 화소들의 화소값을 오차 파라미터 도출에 사용할 수 있다. 이 때, 0차 모델의 오차 파라미터는 다음 수학식 20에 의해 나타내어질 수 있다.
[수학식 20]
offset = Mean(weight*Current Neighbor) - Mean(weight*Ref. Neighbor)
Mean(weight*Current Neighbor)은 현재 블록 주변 화소의 화소값들의 가중치 평균을 나타낸다. Mean(weight*Ref. Neighbor)은 참조 블록 주변 화소의 화소값들의 가중치 평균을 나타낸다. 도 12의 실시예에서, 현재 블록의 주변 화소들은 도 12의 1220에 도시된 블록C에 포함된 화소값들일 수 있다. 또한 참조 블록의 주변 화소들도, 블록C에 대응하는 참조 영상 내의 블록에 포함된 화소값들일 수 있다. 이하, 도 12의 실시예에서 블록C는 현재 블록의 좌측 상단 블록, 블록C에 대응하는 참조 영상 내의 블록은 참조 블록의 좌측 상단 블록이라 한다.
수학식 20을 참조하면, 복호화기는 현재 블록 주변 화소의 화소값들의 가중치 평균과 참조 블록 주변 화소의 화소값들의 가중치 평균의 차이값을 오차 파라미터 값으로 도출할 수 있다.
가중치는 현재 블록 및/또는 현재 블록의 주변 블록에 대해 도출된 움직임 정보의 방향성을 이용하여 구해질 수 있다. 도 12의 실시예를 참조하면, 현재 블록에 대해 도출된 움직임 벡터가 도 12의 1220에 도시된 블록C의 움직임 벡터와 동일한 경우, 복호화기는 현재 블록 및 주변 블록의 좌측 상단 블록에 포함된 화소의 화소값들만을 오차 파라미터 도출에 이용할 수 있다. 예를 들어, 좌측 상단 블록의 화소값들에는 1의 가중치 값이 적용되고, 상단 블록 및 좌측 블록의 화소값들에는 0의 가중치가 적용될 수 있다. 이 때, 도 12의 1210을 참조하면, 현재 블록의 상단 블록은 블록B, 현재 블록의 좌측 블록은 블록A, 현재 블록의 좌측 상단 블록은 블록C이다. 좌측 블록의 상단 블록, 좌측 블록 및 좌측 상단 블록은 각각 블록B, 블록A, 블록C에 대응하는 참조 영상 내의 블록이다.
이 때 도 8의 실시예에서와 마찬가지로, 사용되는 화소들의 범위는 다양하게 정해질 수 있다.
도 13은 도 7의 실시예에서의 가중치를 이용한 오차 보상 값 도출에 사용되는 움직임 벡터의 실시예를 개략적으로 나타내는 개념도이다. 도 13은 참조 블록이 2개인 경우의 실시예를 나타낸다. T-1, T, T+1은 각각의 영상에 대한 시간을 의미한다. 도 13의 실시예에서 시간 T의 영상은 현재 영상을 나타내고, 현재 영상 내의 블록은 현재 블록을 나타낸다. 또한 시간 T-1, T+1의 영상은 참조 영상을 나타내고, 참조 영상 내의 블록은 참조 블록을 나타낸다. 또한 도 13의 실시예에서, 시간 T-1의 참조 영상 내 참조 블록을 지시하는 현재 블록의 움직임 벡터는 참조 영상 리스트0의 움직임 벡터, 시간 T+1의 참조 영상 내 참조 블록을 지시하는 현재 블록의 움직임 벡터는 참조 영상 리스트1의 움직임 벡터라 한다.
도 7의 실시예에서 상술한 바와 같이, 참조 블록이 2개 이상인 경우, 복호화기는 오차 블록 값들의 가중치 합에 의해, 현재 블록에 대한 오차 보상 값을 도출할 수 있다. 또한 일 실시예로 상기 가중치는 현재 블록에 대해 도출된 움직임 정보를 이용하여 정해질 수 있다.
도 13의 1310을 참조하면, 참조 영상 리스트0의 움직임 벡터와 참조 영상 리스트1의 움직임 벡터는 서로 대칭이다. 이 때, 복호화기는 최종 예측 블록의 화소값 도출시에 오차 보상 값을 적용하지 않을 수 있다. 따라서, 참조 영상 리스트0의 움직임 벡터와 참조 영상 리스트1의 움직임 벡터는 서로 대칭인 경우, 가중치는 0으로 정해질 수 있다.
도 13의 1320을 참조하면, 참조 영상 리스트0의 움직임 벡터와 참조 영상 리스트1의 움직임 벡터는 서로 대칭이 아니다. 이 때, 복호화기는 최종 예측 블록의 화소값 도출시에 오차 보상 값을 적용할 수 있다. 예를 들어, 오차 보상 값 도출시에 사용되는 가중치는 각각 1/2로 정해질 수 있다.
도 3의 실시예에서 상술한 바와 같이, 복호화기는 예측 블록의 화소값과 오차 보상 값을 이용하여 현재 블록에 대한 최종 예측 블록의 화소값을 도출할 수 있다. 예측 블록의 화소값과 오차 보상 값을 도출하는 방법의 구체적인 실시예는 도 4 내지 도 13의 실시예에서 상술한 바 있다.
참조 블록이 1개인 경우, 복호화기는 예측 블록의 화소값에 오차 보상 값을 더하여 최종 예측 블록의 화소값을 도출할 수 있다.
참조 블록이 1개일 때 최종 예측 블록 화소값을 도출함에 있어, 복호화기는 이전 단계에서 도출된 예측 블록의 화소값 및 오차 보상 값을 그대로 이용할 수 있다. 이 때, 현재 블록 내의 예측 대상 화소들에 대한 오차 보상 값들은 서로 동일한 오차 파라미터가 적용된 값들일 수도 있다.
상기의 경우, 0차 오차 모델에 대한 최종 예측 블록의 화소값은 일 실시예로 다음 수학식 21에 의해 나타내어질 수 있다.
[수학식 21]
최종 예측 블록의 화소값(x,y) = 예측 블록의 화소값(x,y) + b
여기서, (x,y)는 현재 블록 내의 예측 대상 화소의 좌표이다. b는 DC 오프셋(DC offset)으로, 0차 오차 모델의 오차 파라미터에 해당한다.
또한 상기의 경우, 1차 오차 모델에 대한 최종 예측 블록의 화소값은 일 실시예로 다음 수학식 22에 의해 나타내어질 수 있다.
[수학식 22]
최종 예측 블록의 화소값(x,y) = a*예측 블록의 화소값(x,y) + b
여기서 a 및 b는 1차 오차 모델의 오차 파라미터에 해당한다.
참조 블록이 1개일 때 최종 예측 블록 화소값을 도출함에 있어, 복호화기는 이전 단계에서 도출된 예측 블록의 화소값 및 오차 보상 값뿐만 아니라, 예측 대상 화소의 현재 블록 내 위치에 관한 정보를 함께 이용할 수 있다.
상기의 경우, 0차 오차 모델에 대한 최종 예측 블록의 화소값은 일 실시예로 다음 수학식 23에 의해 나타내어질 수 있다.
[수학식 23]
최종 예측 블록의 화소값(x,y) = 예측 블록의 화소값(x,y) + b*w(x,y)
또는
최종 예측 블록의 화소값(x,y) = 예측 블록의 화소값(x,y) + b(x,y)
여기서, w(x,y)는 오차 파라미터 b에 적용되는 가중치이다. 수학식 23을 참조하면, 가중치 w(x,y) 및 오차 파라미터 b(x,y)는 예측 대상 화소의 현재 블록 내 위치에 따라 서로 다른 값을 가질 수 있다. 따라서, 예측 대상 화소의 현재 블록 내 위치에 따라서 최종 예측 블록의 화소값이 달라질 수 있다.
또한 상기의 경우, 1차 오차 모델에 대한 최종 예측 블록의 화소값은 일 실시예로 다음 수학식 24에 의해 나타내어질 수 있다.
[수학식 24]
최종 예측 블록의 화소값(x,y) = a*w1(x,y)*예측 블록의 화소값(x,y) + b*w2(x,y)
또는
최종 예측 블록의 화소값(x,y) = a(x,y)*예측 블록의 화소값(x,y) + b(x,y)
여기서, w1(x,y)는 오차 파라미터 a에 적용되는 가중치이고, w2(x,y)는 오차 파라미터 b에 적용되는 가중치이다. 수학식 24를 참조하면, 가중치 w1(x,y), 가중치 w2(x,y), 오차 파라미터 a(x,y) 및 오차 파라미터 b(x,y)는 예측 대상 화소의 현재 블록 내 위치에 따라 서로 다른 값을 가질 수 있다. 따라서, 예측 대상 화소의 현재 블록 내 위치에 따라서 최종 예측 블록의 화소값이 달라질 수 있다.
큰 부호화 유닛(large CU)이 사용되는 경우, 상기 큰 부호화 유닛 내의 모든 화소에 대해 동일한 오차 파라미터가 적용되는 경우 부호화/복호화 효율이 감소될 수 있다. 이 때, 부호화기 및 복호화기는 예측 대상 화소의 현재 블록 내 위치에 관한 정보를 다른 정보와 함께 이용함으로써 부호화/복호화 성능을 향상시킬 수 있다.
도 14는 예측 대상 화소의 현재 블록 내 위치에 관한 정보를 이용하여 최종 예측 블록의 화소값을 도출하는 방법의 일 실시예를 나타내는 개념도이다. 도 14의 실시예에서는 0차 오차 모델이 사용되고, 수학식 23의 실시예에서의 두 번째 수학식에 따른 최종 예측 블록 화소값 도출 방법이 사용된다고 가정한다.
도 14의 1410은 참조 블록, 도 14의 1420은 현재 블록을 나타내며, 참조 블록 및 현재 블록의 크기는 4x4라 가정한다. 도 14의 실시예에서 N1, N2, N3, N4는 현재 블록 및 참조 블록 상단에 인접한 주변 화소를 나타내고, NA, NB, NC, ND는 현재 블록 및 참조 블록 좌측에 인접한 주변 화소를 나타낸다. 참조 블록 주변 화소의 화소값과 현재 블록 주변 화소의 화소값은 서로 다를 수 있다.
도 14를 참조하면, 현재 블록 내의 16개 화소에 대해, 16개의 오차 파라미터 b가 도출될 수 있다. 각각의 오차 파라미터들은 그 오차 파라미터에 대응하는 화소의 위치에 따라 서로 다른 값을 가질 수 있다.
일 실시예로 오차 파라미터 b(2,3)은 현재 블록 주변의 화소 및 참조 블록 주변의 화소 중 N3 화소와 NB 화소에 포함되는 정보만을 이용하여 도출될 수 있다.
다른 실시예로 복호화기는 오차 파라미터들 중 일부 b(i,j)만을 도출한 후 나머지 오차 파라미터들은 이미 도출된 오차 파라미터 정보 및/또는 주변 화소에 포함된 정보를 이용하여 도출할 수 있다. 예를 들어, 상기 나머지 오차 파라미터들은 이미 도출된 오차 파라미터들의 내삽(interpolation) 또는 외삽(extrapolation)에 의해 도출될 수 있다.
예를 들어, 도 14를 참조하면, 복호화기는 b(1,1), b(4,1), b(1,4) 3개의 파라미터를 먼저 도출할 수 있다. 이 때, 복호화기는 b(1,1), b(1,4)의 내삽에 의해 b(1,2), b(1,3)을 구할 수 있고, b(1,1), b(4,1)의 내삽에 의해 b(2,1), b(3,1)을 구할 수 있다. 유사하게, 나머지 b(i,j)들도 주변의 가장 가까운 오차 파라미터 b 값들의 내삽 또는 외삽에 의해 구해질 수 있다.
참조 블록이 2개 이상인 경우, 복호화기는 각각의 참조 블록을 별개로 이용하여 2개 이상의 예측 블록을 생성할 수도 있고, 2 이상 참조 블록의 화소값들의 가중치 합을 이용하여 현재 블록에 대한 예측 블록의 화소값을 도출할 수도 있다. 또한 이 때 복호화기는 각각의 예측 블록에 대한 오차 블록 값을 도출할 수 있으며, 상기 오차 블록 값들의 가중치 합을 이용하여 현재 블록에 대한 1개의 오차 보상 값을 도출할 수도 있다.
복호화기가 현재 블록에 대한 예측 블록의 화소값 및 현재 블록에 대한 오차 보상 값을 각각 가중치 합에 의해 1개씩만 도출한 경우, 최종 예측 블록의 화소값은 참조 블록이 1개인 경우와 유사한 방법으로 도출될 수 있다.
복호화기가 각각의 참조 블록을 별개로만 이용하여 2개 이상의 예측 블록의 화소값을 도출하고, 1개의 오차 보상 값이 아닌 각각의 예측 블록에 대한 오차 블록 값들만을 도출한 경우, 복호화기는 그 값이 특정 크기 이상인 오차 블록 값만을 최종 예측 블록 화소값 도출에 사용할 수 있고, 또는 그 값이 특정 크기 이하인 오차 블록 값만을 최종 예측 블록 화소값 도출에 사용할 수도 있다. 일 실시예로, 0차 오차 모델이 사용되는 경우, 상기 방법은 다음 수학식 25에 의해 나타내어질 수 있다.
[수학식 25]
최종 예측 블록의 화소값(x,y) = 1/N(예측 블록의 화소값1(x,y)+오차 블록 값1(x,y)*Wth) + 1/N(예측 블록의 화소값2(x,y)+오차 블록 값2(x,y)*Wth) + … + 1/N(예측 블록의 화소값N(x,y)+오차 블록 값N(x,y)*Wth)
여기서, Wth는 오차 블록 값의 사용 여부를 나타내기 위해 오차 블록 값에 곱해지는 값이다. 또한 수학식 25의 실시예에서 예측 블록의 화소값들은 각각의 참조 블록이 별개로 이용되어 도출된 값들이다.
수학식 25의 실시예에서는 예를 들어, 그 값이 특정 크기 이상인 오차 블록 값만이 최종 예측 블록 화소값 도출에 사용될 수 있다. 즉, 각 예측 블록 값에 대해, 오차 파라미터 b가 일정 임계값(threshold)보다 큰 경우에는 상기 Wth 값이 1, 그렇지 않은 경우에는 상기 Wth 값이 0일 수 있다.
또한 수학식 25의 실시예에서는 예를 들어, 그 값이 특정 크기 이하인 오차 블록 값만이 최종 예측 블록 화소값 도출에 사용될 수도 있다. 즉, 각 예측 블록 값에 대해, 오차 파라미터 b가 일정 임계값(threshold)보다 작은 경우에는 상기 Wth 값이 1, 그렇지 않은 경우에는 상기 Wth 값이 0일 수 있다.
복호화기가 각각의 참조 블록을 별개로만 이용하여 2개 이상의 예측 블록의 화소값을 도출하고, 1개의 오차 보상 값이 아닌 각각의 예측 블록에 대한 오차 블록 값들만을 도출한 경우, 복호화기는 상기 예측 블록들과 오차 블록 값들의 가중치 합에 의해 최종 예측 블록의 화소값을 도출할 수 있다. 일 실시예로, 상기 방법에 의해 도출되는 최종 예측 블록의 화소값은 다음 수학식 26에 의해 나타내어질 수 있다.
[수학식 26]
최종 예측 블록의 화소값(x,y) = WP1*예측 블록의 화소값1(x,y)+WE1*오차 블록 값1(x,y) + WP2*예측 블록의 화소값2(x,y)+WE2*오차 블록 값2(x,y) + … + WPN*예측 블록의 화소값N(x,y)+WEN*오차 블록 값N(x,y)
여기서, 각각의 WP, WE들은 가중치를 나타낸다. 이 때, 상기 가중치는 현재 블록 및 각 참조 블록에 대응하는 예측 블록 간의 거리 정보를 이용하여 정해질 수 있다. 또한 참조 블록이 2개 이상인 경우 각 참조 블록을 지시하는 2 이상의 움직임 정보가 존재할 수 있고, 상기 가중치는 각 움직임 정보의 방향성 정보를 이용하여 정해질 수도 있다. 또한 상기 가중치는 상기 각 움직임 정보 간의 대칭성 정보를 이용하여 정해질 수도 있다.
가중치는 상술한 실시예들 중 적어도 하나 이상의 방법을 이용하여 적응적으로 구해질 수 있다. 또한 가중치가 정해지는 방법은 상술한 실시예들에 한하지 않으며, 가중치는 구현에 따라 다양한 방법으로 정해질 수 있다.
생략 모드에서의 예측에 적용되는 상술한 오차 보상 방식은, 항상 적용되는 것이 아니라 현재 영상의 부호화 방식, 블록 크기 등에 따라 선택적으로 적용될 수도 있다.
일 실시예로, 부호화기는, 슬라이스 헤더(slice header), 픽쳐 파라미터 셋(picture parameter set) 및/또는 시퀀스 파라미터 셋(sequence parameter set)에, 오차 보상이 적용되는지 여부를 지시하는 정보를 포함하여 복호화기로 전송할 수 있다. 예를 들어 상기 정보가 슬라이스 헤더에 포함되는 경우 복호화기는, 상기 정보의 값이 제1 논리값인 경우 상기 슬라이스에 대해 오차 보상을 적용하고, 상기 정보의 값이 제2 논리값인 경우 상기 슬라이스에 대해 오차 보상을 적용하지 않을 수 있다.
이 때, 상기 정보가 슬라이스 헤더에 포함되는 경우, 슬라이스마다 오차 보상 적용 여부가 변경될 수 있다. 상기 정보가 픽쳐 파라미터 셋에 포함되는 경우, 해당 픽쳐 파라미터를 사용하는 모든 슬라이스에 대해, 오차 보상 적용 여부가 제어될 수 있다. 상기 정보가 시퀀스 파라미터 셋에 포함되는 경우, 슬라이스의 종류별로 오차 보상 적용 여부가 제어될 수도 있다. 슬라이스의 종류에는 I 슬라이스, P 슬라이스, B 슬라이스 등이 있을 수 있다.
상기 정보는 부호화 유닛, 예측 유닛 등의 블록 크기에 따라 오차 보상 적용 여부를 다르게 지시할 수 있다. 예를 들어 상기 정보는 특정 크기의 부호화 유닛(CU) 및/또는 예측 유닛(PU)에서만 오차 보상이 적용된다는 정보를 포함할 수 있다. 이러한 경우에도 상기 정보는 슬라이스 헤더, 픽쳐 파라미터 셋 및/또는 시퀀스 파라미터 셋에 포함되어 전송될 수 있다.
예를 들어, 최대 CU 크기가 128x128이고, 최소 CU 크기가 8x8이고 CTB(Coding Tree Block)의 깊이(depth)가 5이며, 오차 보상은 128x128, 64x64 크기의 CU에만 적용된다고 가정한다. 이 때, CU 크기별로 오차 보상이 적용되는 경우, CU가 가질 수 있는 크기는 5이고 CTB의 깊이가 5이므로, 오차 보상 적용 여부를 지시하기 위해 5개의 플래그(flag) 정보가 필요하다. 일 실시예로 상기 플래그 정보는 11000 및/또는 00011 등으로 표현될 수 있다.
CTB의 깊이가 큰 경우 CU 크기별로 오차 보상 적용 여부에 관한 정보가 전송되는 것은 비효율적일 수 있다. 이 때는 미리 정해진 몇 가지의 경우에 대해 테이블(Table)을 정의하여 정의된 테이블 상에 나타난 정보를 지시할 수 있는 인덱스(index)를 복호화기로 전송하는 방법이 사용될 수도 있다. 상기 정의된 테이블은 부호화기 및 복호화기에 동일하게 저장될 수 있다.
오차 보상을 선택적으로 적용하는 방법은 상기 실시예에 한정되는 것이 아니고, 구현 또는 필요에 따라 다양한 방법이 사용될 수 있다.
인트라 모드에서도, 인터 모드의 생략 모드와 유사한 예측 모드가 사용될 수 있는 경우, 즉 주변 블록으로부터 제공 받은 정보를 이용하여 에측 블록이 생성되고 별도의 잔여 신호가 전송되지 않는 예측 모드가 사용될 수 있는 경우에는, 상술한 본 발명이 적용될 수 있다.
본 발명의 실시예에 따른 오차 보상을 이용한 예측 방법이 사용되는 경우, 화면 간의 조명 변화가 심한 경우, 큰 양자화 스텝의 양자화가 적용되는 경우 및/또는 다른 일반적인 경우에, 생략 모드에서 발생하는 오차가 감소될 수 있다. 따라서 율-왜곡 최적화 방식에 의해 예측 모드가 선택되는 경우, 생략 모드가 최적의 예측 모드로 선택되는 비율이 높아질 수 있고, 따라서 영상 부호화의 압축 성능이 향상될 수 있다.
생략 모드에 사용되는 본 발명의 실시예에 따른 오차 보상은, 이전에 부호화된 블록의 정보들만을 이용하여 수행될 수 있으므로, 복호화기도 부호화기로부터 전송되는 추가적인 정보 없이 부호화기와 동일한 오차 보상을 수행할 수 있다. 따라서 부호화기가 오차 보상을 위해 별도의 추가 정보를 복호화기로 전송할 필요가 없으므로, 부호화기에서 복호화기로 전송되는 정보량이 최소화될 수 있다.
상술한 실시예에서, 방법들은 일련의 단계 또는 블록으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
상술한 실시예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합을 기술할 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.

Claims (5)

  1. 현재 블록의 이전에 복호화된 블록으로부터 상기 현재 블록의 예측 블록에 대한 제1 화소값을 도출하는 단계;
    상기 제1 화소값에 대한 오차 보상값을 도출하는 단계;
    상기 제1 화소값 및 상기 오차 보상값을 이용하여 상기 현재 블록의 예측 블록에 대한 최종 화소값을 도출하는 단계;
    상기 현재 블록의 잔여 블록을 생성하는 단계; 및
    상기 최종 화소값을 포함하는 상기 예측 블록과 상기 잔여 블록을 이용하여 상기 현재 블록을 복원하는 단계를 포함하고,
    상기 오차 보상값은 상기 현재 블록의 주변 블록의 화소값을 이용하여 도출되고,
    상기 오차 보상값은 상기 현재 블록 내의 예측 대상 화소의 위치 및 상기 현재 블록의 부호화 모드 정보에 기초하여 도출되고,
    상기 현재 블록의 이전에 복호화된 블록은 상기 현재 블록의 좌측에 인접한 블록인 영상 복호화 방법.
  2. 제1항에 있어서,
    상기 오차 보상값은, 상기 현재 블록에 바로 인접한 라인에 포함되는 화소값들을 이용하여 도출되는 영상 복호화 방법.
  3. 현재 블록의 이전에 부호화되어 복호화된 블록으로부터 상기 현재 블록의 예측 블록에 대한 제1 화소값을 도출하는 단계;
    상기 제1 화소값에 대한 오차 보상값을 도출하는 단계;
    상기 제1 화소값 및 상기 오차 보상값을 이용하여 상기 현재 블록의 예측 블록에 대한 최종 화소값을 도출하는 단계;
    상기 현재 블록과 상기 최종 화소값을 포함하는 상기 예측 블록에 기초하여 상기 현재 블록의 잔여 블록을 생성하는 단계; 및
    상기 잔여 블록을 부호화하는 단계를 포함하고,
    상기 오차 보상값은 상기 현재 블록의 주변 블록의 화소값을 이용하여 도출되고,
    상기 오차 보상값은 상기 현재 블록 내의 예측 대상 화소의 위치 및 상기 현재 블록의 부호화 모드 정보에 기초하여 도출되고,
    상기 현재 블록의 이전에 복호화된 블록은 상기 현재 블록의 좌측에 인접한 블록인 영상 부호화 방법.
  4. 제3항에 있어서,
    상기 오차 보상값은, 상기 현재 블록에 바로 인접한 라인에 포함되는 화소값들을 이용하여 도출되는 영상 부호화 방법.
  5. 영상 복호화 장치에 의해 수신되고 복호화되어 영상을 복원하는데 사용되는 영상 데이터를 저장하는 컴퓨터 판독가능한 비일시적 기록 매체에 있어서,
    상기 영상 데이터는 현재 블록의 잔여 블록에 대한 정보를 포함하고,
    상기 현재 블록의 잔여 블록에 대한 정보는 상기 현재 블록의 잔여 블록을 생성하는데 이용되고,
    상기 현재 블록의 잔여 블록은 상기 현재 블록의 예측 블록과 함께 상기 현재 블록을 복원하는데 이용되고,
    상기 현재 블록의 예측 블록의 최종 화소값은, 상기 현재 블록의 이전에 복호화된 블록으로부터 상기 현재 블록의 예측 블록에 대한 제1 화소값을 도출하고, 상기 제1 화소값에 대한 오차 보상값을 도출하고, 상기 제1 화소값 및 상기 오차 보상값을 이용함으로써 도출되고,
    상기 오차 보상값은 상기 현재 블록의 주변 블록의 화소값을 이용하여 도출되고,
    상기 오차 보상값은 상기 현재 블록 내의 예측 대상 화소의 위치 및 상기 현재 블록의 부호화 모드 정보에 기초하여 도출되고,
    상기 현재 블록의 이전에 복호화된 블록은 상기 현재 블록의 좌측에 인접한 블록인 컴퓨터 판독가능한 비일시적 기록 매체.
KR1020190091087A 2010-09-30 2019-07-26 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치 KR102132410B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020100094955 2010-09-30
KR20100094955 2010-09-30

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020110099680A Division KR102006443B1 (ko) 2010-09-30 2011-09-30 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20190089836A true KR20190089836A (ko) 2019-07-31
KR102132410B1 KR102132410B1 (ko) 2020-07-09

Family

ID=46136622

Family Applications (10)

Application Number Title Priority Date Filing Date
KR1020110099680A KR102006443B1 (ko) 2010-09-30 2011-09-30 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치
KR1020190091089A KR20190089838A (ko) 2010-09-30 2019-07-26 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치
KR1020190091086A KR102132409B1 (ko) 2010-09-30 2019-07-26 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치
KR1020190091088A KR20190089837A (ko) 2010-09-30 2019-07-26 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치
KR1020190091085A KR20190089834A (ko) 2010-09-30 2019-07-26 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치
KR1020190091087A KR102132410B1 (ko) 2010-09-30 2019-07-26 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치
KR1020200085271A KR102420974B1 (ko) 2010-09-30 2020-07-10 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치
KR1020200085270A KR20200085722A (ko) 2010-09-30 2020-07-10 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치
KR1020210153457A KR102367669B1 (ko) 2010-09-30 2021-11-09 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치
KR1020220016076A KR102420975B1 (ko) 2010-09-30 2022-02-08 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치

Family Applications Before (5)

Application Number Title Priority Date Filing Date
KR1020110099680A KR102006443B1 (ko) 2010-09-30 2011-09-30 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치
KR1020190091089A KR20190089838A (ko) 2010-09-30 2019-07-26 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치
KR1020190091086A KR102132409B1 (ko) 2010-09-30 2019-07-26 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치
KR1020190091088A KR20190089837A (ko) 2010-09-30 2019-07-26 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치
KR1020190091085A KR20190089834A (ko) 2010-09-30 2019-07-26 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치

Family Applications After (4)

Application Number Title Priority Date Filing Date
KR1020200085271A KR102420974B1 (ko) 2010-09-30 2020-07-10 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치
KR1020200085270A KR20200085722A (ko) 2010-09-30 2020-07-10 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치
KR1020210153457A KR102367669B1 (ko) 2010-09-30 2021-11-09 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치
KR1020220016076A KR102420975B1 (ko) 2010-09-30 2022-02-08 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치

Country Status (2)

Country Link
US (1) US20130182768A1 (ko)
KR (10) KR102006443B1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130243085A1 (en) * 2012-03-15 2013-09-19 Samsung Electronics Co., Ltd. Method of multi-view video coding and decoding based on local illumination and contrast compensation of reference frames without extra bitrate overhead
RU2510944C2 (ru) * 2012-07-03 2014-04-10 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ кодирования/декодирования многоракурсной видео последовательности на основе адаптивной локальной коррекции яркости опорных кадров без передачи дополнительных параметров (варианты)
KR101929494B1 (ko) 2012-07-10 2018-12-14 삼성전자주식회사 영상 처리 방법 및 장치
CN105103556B (zh) * 2013-04-10 2018-07-31 寰发股份有限公司 用于亮度补偿的双向预测的方法和装置
US9497485B2 (en) 2013-04-12 2016-11-15 Intel Corporation Coding unit size dependent simplified depth coding for 3D video coding
BR112015023251B1 (pt) * 2013-04-12 2023-03-14 Intel Corporation Codificação de profundidade simplificada com intracodificação modificada para codificação de vídeo em 3d
WO2015142057A1 (ko) * 2014-03-21 2015-09-24 주식회사 케이티 다시점 비디오 신호 처리 방법 및 장치
CN108353164B (zh) * 2015-09-11 2022-06-24 株式会社Kt 用于处理视频信号的方法和设备
WO2018056709A1 (ko) 2016-09-22 2018-03-29 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측 방법 및 장치
US10880570B2 (en) 2016-10-05 2020-12-29 Qualcomm Incorporated Systems and methods of adaptively determining template size for illumination compensation
KR102053242B1 (ko) * 2017-04-26 2019-12-06 강현인 압축 파라미터를 이용한 영상 복원용 머신러닝 알고리즘 및 이를 이용한 영상 복원방법
US10715810B2 (en) * 2018-02-20 2020-07-14 Qualcomm Incorporated Simplified local illumination compensation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110280304A1 (en) * 2010-05-17 2011-11-17 Lg Electronics Inc. Intra prediction modes

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7830961B2 (en) * 2005-06-21 2010-11-09 Seiko Epson Corporation Motion estimation and inter-mode prediction
KR100995226B1 (ko) * 2005-07-22 2010-11-17 미쓰비시덴키 가부시키가이샤 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법, 화상 복호 방법, 화상 부호화 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체, 화상 복호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR100712532B1 (ko) * 2005-09-10 2007-04-30 삼성전자주식회사 단일표현과 다중표현 전환을 이용한 동영상 변환부호화장치 및 방법
EP2005752A4 (en) * 2006-03-30 2010-06-09 Lg Electronics Inc METHOD AND APPARATUS FOR DECODING / ENCODING A VIDEO SIGNAL
US7655986B2 (en) * 2006-12-21 2010-02-02 Intel Corporation Systems and methods for reducing contact to gate shorts
KR101426271B1 (ko) * 2008-03-04 2014-08-06 삼성전자주식회사 영상의 부호화, 복호화 방법 및 장치
KR20100027384A (ko) * 2008-09-02 2010-03-11 삼성전자주식회사 예측 모드 결정 방법 및 장치
US9479786B2 (en) * 2008-09-26 2016-10-25 Dolby Laboratories Licensing Corporation Complexity allocation for video and image coding applications
TWI498003B (zh) * 2009-02-02 2015-08-21 Thomson Licensing 代表一序列圖像的碼式資料連流之解碼方法和一序列圖像之寫碼方法及碼式圖像資料結構
KR20110050283A (ko) * 2009-11-06 2011-05-13 삼성전자주식회사 다중 참조 영상을 이용한 고속 움직임 추정 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110280304A1 (en) * 2010-05-17 2011-11-17 Lg Electronics Inc. Intra prediction modes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Ken McCann, "Samsung's Response to the Call for Proposals on Video Compression Technology"(JCTVC-A124, 2010.4.15. 공개)* *

Also Published As

Publication number Publication date
KR102420974B1 (ko) 2022-07-14
KR102367669B1 (ko) 2022-02-25
KR20190089837A (ko) 2019-07-31
KR102420975B1 (ko) 2022-07-14
KR20220024295A (ko) 2022-03-03
US20130182768A1 (en) 2013-07-18
KR20190089834A (ko) 2019-07-31
KR20120034042A (ko) 2012-04-09
KR20200085722A (ko) 2020-07-15
KR20190089835A (ko) 2019-07-31
KR102132409B1 (ko) 2020-07-09
KR102132410B1 (ko) 2020-07-09
KR20200087117A (ko) 2020-07-20
KR20190089838A (ko) 2019-07-31
KR20210137414A (ko) 2021-11-17
KR102006443B1 (ko) 2019-08-02

Similar Documents

Publication Publication Date Title
KR102420974B1 (ko) 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치
JP7387841B2 (ja) 映像復号化方法
KR20210098913A (ko) 인트라 예측 방법 및 그 장치
KR20170058838A (ko) 화면간 예측 향상을 위한 부호화/복호화 방법 및 장치
KR101990423B1 (ko) 인터 예측 방법 및 그 장치
KR20140095607A (ko) 인터 예측 방법 및 그 장치
KR20190084009A (ko) 인트라 예측 방법 및 그 장치
KR20160085237A (ko) 머지를 기반으로 한 복호화 방법 및 장치
WO2012044118A2 (ko) 오차 보상을 이용한 영상 부호화/복호화 방법 및 장치
KR20150112470A (ko) 영상의 부호화 방법 및 이를 이용하는 장치
KR102183366B1 (ko) 부호화 모드 결정 방법 및 그 장치

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right