KR101809630B1 - 적응적인 디블록킹 필터링에 관한 부호화/복호화 방법 및 장치 - Google Patents

적응적인 디블록킹 필터링에 관한 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
KR101809630B1
KR101809630B1 KR1020160073191A KR20160073191A KR101809630B1 KR 101809630 B1 KR101809630 B1 KR 101809630B1 KR 1020160073191 A KR1020160073191 A KR 1020160073191A KR 20160073191 A KR20160073191 A KR 20160073191A KR 101809630 B1 KR101809630 B1 KR 101809630B1
Authority
KR
South Korea
Prior art keywords
block
picture
prediction
current
division
Prior art date
Application number
KR1020160073191A
Other languages
English (en)
Other versions
KR20160146591A (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 KR20160146591A publication Critical patent/KR20160146591A/ko
Priority to KR1020170169371A priority Critical patent/KR102340133B1/ko
Application granted granted Critical
Publication of KR101809630B1 publication Critical patent/KR101809630B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Abstract

적응적인 디블록킹 필터링에 관한 부호화/복호화 방법 및 장치를 개시한다. 현재 픽쳐를 참조 픽쳐로 한 화면 간 예측 및 적응적 필터링을 수행하는 영상 부호화 방법은, 부호화 대상 현재 블록에 대한 화면 간 예측을 수행하여 참조 블록을 탐색하는 단계, 탐색된 참조 블록이 현재 블록이 위치한 현재 픽쳐 내에 있는지 여부를 지시하는 플래그를 생성하는 단계, 탐색된 참조 블록을 이용하여 현재 블록을 부호화하고 복원하는 단계, 플래그를 참조하여, 복원된 현재 블록에 대하여 인루프 필터를 적응적으로 적용하는 단계 및 인루프 필터가 적용되거나 적용되지 않은 현재 블록을 복원된 픽쳐 버퍼(Decoded Picture Buffer, DPB)에 저장하는 단계를 포함한다.

Description

적응적인 디블록킹 필터링에 관한 부호화/복호화 방법 및 장치{METHOD AND APPARATUS OF IMAGE ENCODING/DECODING USING ADAPTIVE DEBLOCKING FILTERING}
본 발명은 영상 부호화 및 복호화 기술에 관한 것으로, 더욱 상세하게는, 적응적인 디블록킹 필터링에 관한 부호화/복호화 방법 및 장치에 관한 것이다.
인터넷과 휴대 단말의 보급과 정보 통신 기술의 발전에 따라 멀티미디어 데이터에 대한 이용이 급증하고 있다. 따라서, 각종 시스템에서 영상 예측을 통해 다양한 서비스나 작업을 수행하기 위하여 영상 처리 시스템의 성능 및 효율 개선에 대한 필요성이 상당히 증가하고 있으나, 이러한 분위기에 호응할 수 있는 연구 개발 결과가 미흡한 실정이다.
또한, 영상 부호화는 예측, 변환, 양자화, 엔트로피 코딩 과정으로 구분되고, 양자화 과정에서는 양자화 에러로 인하여 복원된 픽쳐에 블록킹 열화(blocking artifact)와 링잉(ringing) 현상이 발생하며, 그로 인하여 복원된 영상의 주관적 화질이 저하되는 문제가 있다.
따라서 양자화를 사용하는 종래 기술의 영상 부호화 및 복호화 기술에서는 복원된 픽쳐에 필터링을 수행하여 주관적 화질을 개선하고 있다. 이러한 복원된 픽쳐의 필터링과 관련된 종래 기술은 화면 간 예측 모드에서 필터링된 픽쳐를 참조 픽쳐로 사용하는지에 따라 크게 후처리 필터 방식과 인-루프(In-loop) 필터 방식으로 나눠진다.
후처리 필터 방식은 영상 디코더 외부에서 복원 영상의 디스플레이 출력 직전에 필터링을 수행하며, 인-루프 필터 방식은 복원된 픽쳐에 필터링을 적용한 후 복호화 픽쳐 버퍼(decoded picture buffer, DPB)에 삽입하여 화면 간 예측 모드에서 참조 픽쳐로 사용하는 방식이다.
한편, 인-루프 필터 방식 즉, 디블록킹 필터 방식은 필터링을 수행할 때 메모리에 저장되어 있는 복원된 픽셀들을 로드한 후 필터링을 수행하고, 필터링이 수행된 픽셀을 다시 메모리에 저장하므로 잦은 메모리 접근을 야기한다. 또한, 디블록킹 필터는 필터링 연산 과정 자체도 복잡하며 이러한 연산 복잡도 및 메모리 접근에 대한 오버헤드로 인해 디코더에서 20~30%의 상당히 큰 복잡도를 차지하는 단점이 있다. 이와 같이 영상 부호화 및 복호화 기술에서는 복원된 픽쳐에 대한 효과적인 필터링 방안이 요구되고 있는 실정이다.
상기와 같은 과제를 해결하기 위한 본 발명의 목적은, 디블록킹 필터링을 개선하여 영상을 부호화/복호화하는 방법을 제공하는데 있다.
본 발명의 다른 목적은, 디블록킹 필터링을 개선하여 영상을 부호화/복호화하는 장치를 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 일 측면에 따른 화면 간 예측에서 적응적 필터링을 수행하는 영상 부호화 방법은, 부호화 대상 현재 블록에 대한 화면 간 예측을 수행하여 참조 블록을 탐색하는 단계, 탐색된 참조 블록이 현재 블록이 위치한 현재 픽쳐 내에 있는지 여부를 지시하는 플래그를 생성하는 단계, 탐색된 참조 블록을 이용하여 현재 블록을 부호화하고 복원하는 단계, 플래그를 참조하여, 복원된 현재 블록에 대하여 인루프 필터를 적응적으로 적용하는 단계 및 인루프 필터가 적용되거나 되지 않은 현재 블록을 복원된 픽쳐 버퍼(Decoded Picture Buffer, DPB)에 저장하는 단계를 포함한다.
여기서, 인루프 필터는 디블로킹 필터, 적응적 샘플 오프셋(SAO) 중 적어도 하나를 포함할 수 있다.
여기서, 인루프 필터를 적응적으로 적용하는 단계는, 플래그가 현재 픽쳐 내에 참조 블록이 있음을 지시하면, 복원된 현재 블록에 대하여 인루프 필터를 적용하지 않을 수 있다.
여기서, 인루프 필터를 적응적으로 적용하는 단계는, 플래그가 현재 픽쳐 내에 참조 블록이 없음을 지시하면, 복원된 현재 블록에 대하여 인루프 필터를 적용할 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 측면에 따른 화면 간 예측을 수행하는 영상 부호화 방법은, 현재 블록과 동일한 픽쳐 내에 위치하여, 현재 블록의 화면 간 예측시 블록 매칭되는 참조 블록을 포함하는 영상 신호가 부호화 후 복원되는 단계, 복원된 영상 신호가 복원된 픽쳐 버퍼(Decoded Picture Buffer, DPB)와 별도의 임시 메모리에 저장되는 단계 및 복원된 영상 신호에 포함된 참조 블록을 이용하여 현재 블록에 대하여 블록 매칭을 통한 화면 간 예측을 수행하는 단계를 포함한다.
여기서, 임시 메모리에 저장되는 단계는, 복원된 영상 신호가 인루프 필터(In-loop filter)와 별도의 필터를 거쳐 별도의 임시 메모리에 저장될 수 있다.
여기서, 별도의 필터는, 복원된 영상 신호에 포함된 참조 블록의 왼쪽과 위쪽 경계에 대하여 필터링을 수행할 수 있다.
여기서, 별도의 필터는, 복원된 영상 신호의 변환 블록 경계, 예측 블록 경계, 변환 블록과 예측 블록의 공통된 블록 경계 중 적어도 하나 이상에서 필터링을 수행할 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 측면에 따른 화면 간 예측에서 적응적 필터링을 수행하는 영상 복호화 방법은, 비트 스트림으로부터, 복호화할 현재 블록의 화면 간 예측시 블록 매칭되는 참조 블록을 포함하는 영상 신호를 복원하는 단계, 비트 스트림으로부터 참조 블록이 현재 블록이 위치한 현재 픽쳐 내에 있는지 여부를 지시하는 플래그를 획득하는 단계, 참조 블록을 이용하여 현재 블록을 복원하는 단계, 획득한 플래그에 기초하여 복원된 현재 블록에 대하여 인루프 필터를 적응적으로 적용하는 단계 및 인루프 필터가 적용되거나 적용되지 않은 현재 블록을 복원된 픽쳐 버퍼(Decoded Picture Buffer, DPB)에 저장하는 단계를 포함한다.
여기서, 인루프 필터는 디블로킹 필터, 적응적 샘플 오프셋(SAO) 중 적어도 하나를 포함할 수 있다.
여기서, 인루프 필터를 적응적으로 적용하는 단계는, 플래그가 현재 픽쳐 내에 참조 블록이 있음을 지시하면, 복원된 현재 블록에 대하여 인루프 필터를 적용하지 않을 수 있다.
여기서, 인루프 필터를 적응적으로 적용하는 단계는, 플래그가 현재 픽쳐 내에 참조 블록이 없음을 지시하면, 복원된 현재 블록에 대하여 인루프 필터를 적용할 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 측면에 따른 화면 간 예측을 수행하는 영상 복호화 방법은, 비트스트림으로부터 현재 블록과 동일한 픽쳐 내에 위치하여, 현재 블록의 화면 간 예측시 블록 매칭되는 참조 블록을 포함하는 영상 신호를 복원하는 단계, 복원된 영상 신호가 복원된 픽쳐 버퍼(Decoded Picture Buffer, DPB)와 별도의 임시 메모리에 저장되는 단계 및 복원된 영상 신호를 이용하여 현재 블록에 대하여 블록 매칭을 통한 화면 간 예측을 수행하는 단계를 포함한다.
여기서, 임시 메모리에 저장되는 단계는, 복원된 영상 신호가, 인루프 필터(In-loop filter)와 별도의 필터를 거쳐 임시 메모리에 저장될 수 있다.
여기서, 별도의 필터는, 복원된 영상 신호에 포함된 참조 블록의 왼쪽과 위쪽 경계에 대하여 필터링을 수행할 수 있다.
여기서, 별도의 필터는, 복원된 영상 신호의 변환 블록 경계, 예측 블록 경계, 변환 블록과 예측 블록의 공통된 블록 경계 중 적어도 하나 이상에서 필터링을 수행할 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 측면에 따른 화면 간 예측에서 적응적 필터링을 수행하고, 하나 이상의 프로세서들을 포함하는 영상 복호화 장치에서, 하나 이상의 프로세서들은, 비트 스트림으로부터, 복호화할 현재 블록의 화면 간 예측시 블록 매칭되는 참조 블록을 포함하는 영상 신호를 복원하는 단계, 비트 스트림으로부터 참조 블록이 현재 블록이 위치한 현재 픽쳐 내에 있는지 여부를 지시하는 플래그를 획득하는 단계, 참조 블록을 이용하여 현재 블록을 복원하는 단계, 획득한 플래그에 기초하여 복원된 현재 블록에 대하여 인루프 필터를 적응적으로 적용하는 단계 및 인루프 필터가 적용되거나 적용되지 않은 현재 블록을 복원된 픽쳐 버퍼(Decoded Picture Buffer, DPB)에 저장하는 단계를 수행한다.
여기서, 인루프 필터는 디블로킹 필터, 적응적 샘플 오프셋(SAO) 중 적어도 하나를 포함할 수 있다.
여기서, 인루프 필터를 적응적으로 적용하는 단계는, 플래그가 현재 픽쳐 내에 참조 블록이 있음을 지시하면, 복원된 현재 블록에 대하여 인루프 필터를 적용하지 않을 수 있다.
여기서, 인루프 필터를 적응적으로 적용하는 단계는, 플래그가 현재 픽쳐 내에 참조 블록이 없음을 지시하면, 복원된 현재 블록에 대하여 인루프 필터를 적용할 수 있다.
상술한 바와 같은 본 발명의 실시예에 따른 적응적인 디블록킹 필터링를 수행하는 부호화 방법, 복호화 방법 및 복호화 장치를 이용할 경우에는, 디블록킹 필터링의 성능을 개선함으로써 부호화 및 복호화 효율을 향상시킬 수 있다.
또한 적응적인 인루프 필터를 적용함으로써, 추가적인 메모리 소모를 방지할 수 있다.
또한, 인루프 필터와 별도로 구분되는 필터를 적용함으로써 예측 효율을 향상시킬 수 있다.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 2는 본 발명의 실시예에 따른, 영상 부호화 장치에 대한 구성도이다.
도 3은 본 발명의 실시예에 따른, 영상 복호화 장치에 대한 구성도이다.
도 4는 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 P 슬라이스의 화면 간 예측을 나타낸 예시도이다.
도 5는 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 B 슬라이스의 화면 간 예측을 나타낸 예시도이다.
도 6은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 단방향으로 예측 블록을 생성하는 경우를 설명하기 위한 예시도이다.
도 7은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 참조 픽쳐 리스트로부터 구성하는 예시도이다.
도 8은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 참조 픽쳐 리스트로부터 화면 간 예측을 수행하는 경우의 다른 예를 나타낸 예시도이다.
도 9는 본 발명의 일실시예에 따른 영상 부호화 방법에서 화면 내 예측을 설명하기 위한 예시도이다.
도 10은 본 발명의 일실시예에 따른 영상 부호화 방법에서 P 슬라이스나 B 슬라이스에서의 예측 원리를 설명하기 위한 예시도이다.
도 11은 예측 블록을 획득하는 과정을 설명하기 위한 예시도이다.
도 12는 본 발명의 일실시예에 따른 영상 부호화 방법의 주요 과정을 코딩 단위(coding unit)에서의 신택스로 설명하기 위한 예시도이다.
도 13은 현재 픽쳐에서 블록매칭을 통해 예측 블록을 생성할 경우, 화면 간 예측에서와 같이 대칭형(symmetric type) 분할 또는 비대칭형(asymmetric type) 분할을 지원하는 예를 설명하기 위한 예시도이다.
도 14는 화면 간 예측(Inter)에서 2N×2N, N×N을 지원할 수 있음을 설명하기 위한 예시도이다.
도 15는 현재 픽쳐 내의 참조 블록을 이용한 블록 매칭을 통해 예측 블록을 생성하는 예시도이다.
도 16은 현재 픽쳐 내에서 블록 매칭시 사용된 이미 부호화된 영역의 참조 블록을 설명하는 예시도이다.
도 17는, 필터링 스킵 확인부가 추가된 영상 부호화 장치에 대한 구성도이다.
도 18은, 필터링 스킵 확인부가 추가된 영상 복호화 장치에 대한 구성도이다.
도 19 내지 도 22는 본 발명의 실시예에 따른 영상 부호화 방법에 있어서 다양한 크기의 블록 단위로의 플래그 전송을 설명하는 예시도이다.
도 23은, 참조 블록 활용 여부를 지시하는 플래그를 전송하는 방법을 설명하기 위한 예시도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
통상적으로 동영상은 일련의 픽쳐(Picture)로 구성될 수 있으며, 각 픽쳐들은 블록(Block)과 같은 소정의 영역으로 분할될 수 있다. 또한, 분할된 영역은 블록(Block)뿐 아니라, CTU(Coding Tree Unit), CU(Coding Unit), PU(Prediction Unit), TU(Transform Unit)과 같이 다양한 크기 또는 용어로 지칭할 수 있다. 각 유닛(Unit)은 하나의 휘도 블록과 두 개의 색차 블록으로 구성될 수 있으며, 이는 컬러 포맷에 따라 달리 구성될 수 있다. 또한, 컬러 포맷에 따라 휘도 블록과 색차 블록의 크기가 결정될 수 있다. 예를 들어, 4:2:0인 경우 색차 블록의 크기는 휘도 블록의 가로, 세로가 1/2인 길이를 가질 수 있다. 이 단위에 대해서는 기존의 HEVC 또는 H.264/AVC 등의 용어를 참조할 수 있다. 본 발명에서는 블록과 상기 용어들을 혼용하여 사용하였으나, 표준 기술에 따라 달리 이해될 수 있고, 그러한 표준 기술에 따른 부호화 및 복호화 과정에 따라 상응하는 용어 또는 단위로 이해되어야 한다.
또한, 현재 블록 또는 현재 화소를 부호화하거나 복호화하는데 참조되는 픽쳐, 블록 또는 화소를 참조 픽쳐(Reference Picture), 참조 블록(Reference Block) 또는 참조 화소(Reference Pixel)라고 한다. 또한, 이하에 기재된 "픽쳐(picture)"이라는 용어는 영상(image), 프레임(frame) 등과 같은 동등한 의미를 갖는 다른 용어로 대치되어 사용될 수 있음을 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있다
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 1을 참조하면, 영상 부호화 장치(12) 및 복호화 장치(11)는 개인용 컴퓨터(PC:Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선 통신 단말기(Wireless Communication Terminal), 스마트폰(Smart Phone), TV 등과 같은 사용자 단말기이거나 응용 서버와 서비스 서버 등 서버 단말기일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하거나 복호화하거나 부호화 또는 복호화를 위해 인터 또는 인트라 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리(memory, 18), 프로그램을 실행하여 연산 및 제어하기 위한 프로세서(processor, 14) 등을 구비하는 다양한 장치를 포함할 수 있다. 또한, 영상 부호화 장치(12)에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망(Network) 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등과 같은 다양한 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 영상 복호화 장치에서 복호화되어 영상으로 복원되고 재생될 수 있다.
또한, 영상 부호화 장치에 의해 비트스트림으로 부호화된 영상은 컴퓨터 판독 가능한 기록 매체를 통하여 부호화 장치에서 복호화 장치로 전달될 수도 있다.
도 2는 본 발명의 일실시예에 따른 영상 부호화 장치에 대한 블록도이다. 도 3은 본 발명의 일실시예에 따른 영상 복호화 장치에 대한 블록도이다.
본 실시예에 따른 영상 부호화 장치(20)는, 도 2에 나타낸 바와 같이, 예측부(200), 감산부(205), 변환부(210), 양자화부(215), 역양자화부(220), 역변환부(225), 가산부(230), 필터부(235), 복호화 픽쳐 버퍼(240) 및 엔트로피 부호화부(245)를 포함할 수 있다.
또한, 본 실시예에 따른 영상 복호화 장치(30)는, 도 3에 나타낸 바와 같이, 엔트로피 복호화부(305), 예측부(310), 역양자화부(315), 역변환부(320), 가산부(325), 필터부(330) 및 복호화 픽쳐 버퍼(335)를 포함할 수 있다.
전술한 영상 부호화 장치(20)와 영상 복호화 장치(30)는 각각 별도의 장치들일 수 있으나, 구현에 따라서 하나의 영상 부호화 및 복호화 장치로 만들어질 수 있다. 그 경우, 영상 부호화 장치(20)의 예측부(200), 역양자화부(220), 역변환부(225), 가산부(230), 필터부(235) 및 메모리(240)는 기재된 순서대로 영상 복호화 장치(30)의 예측부(310), 역양자화부(315), 역변환부(320), 가산부(325), 필터부(330) 및 메모리(335)와 실질적으로 동일한 기술요소로서 적어도 동일한 구조를 포함하거나 적어도 동일한 기능을 수행하도록 구현될 수 있다. 또한, 엔트로부 부호화부(245)는 그 기능을 역으로 수행할 때, 엔트로피 복호화부(305)에 대응될 수 있다. 따라서 이하의 기술요소들과 이들의 작동 원리 등에 대한 상세 설명에서는 대응 기술요소들의 중복되는 설명을 생략하기로 한다.
그리고 영상 복호화 장치(30)는 영상 부호화 장치(20)에서 수행되는 영상 부호화 방법을 복호화에 적용하는 컴퓨팅 장치에 대응하므로, 이하의 설명에서는 영상 부호화 장치(20)를 중심으로 설명하기로 한다.
컴퓨팅 장치는 영상 부호화 방법 및/또는 영상 복호화 방법을 구현하는 프로그램이나 소프트웨어 모듈을 저장하는 메모리와 메모리에 연결되어 프로그램을 수행하는 프로세서를 포함할 수 있다. 그리고 영상 부호화 장치는 부호화기로, 영상 복호화 장치는 복호화기로 각각 지칭될 수 있다.
본 실시예의 영상 부호화 장치의 각 구성요소를 좀더 구체적으로 설명하면 다음과 같다.
여기서, 영상 부호화 장치(20)는, 분할부를 더 포함할 수 있다. 분할부는 입력 영상을 정해진 크기의 블록(M×N)으로 분할한다. 여기서, M 또는 N은 1 이상의 임의의 자연수이다. 상세하게는, 분할부은 픽쳐 분할부와 블록 분할부로 구성될 수 있다. 블록은 영상의 특성 및 해상도 등에 따라 크기 또는 형태가 결정될 수 있고, 픽쳐 분할부를 통해 지원되는 블록의 크기 또는 형태는 가로 및 세로의 길이가 2의 지수승으로 표현되는 M×N 정사각 형태(256×256, 128×128, 64×64, 32×32, 16×16, 8×8, 4×4 등)이거나, M×N 직사각 형태일 수 있다. 예를 들어, 해상도가 높은 8k UHD급 영상의 경우 256×256, 1080p HD급 영상의 경우 128×128, WVGA급 영상의 경우 16×16 등 크기로 입력 영상을 분할할 수 있다.
이러한 블록의 크기 또는 형태에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위에서 설정이 가능하며, 관련 정보를 복호화기에 전송할 수 있다. 즉, 시퀀스 파라미터 셋, 픽쳐 파라미터 셋, 슬라이스 헤더 또는 이들의 조합 단위에서 설정될 수 있다.
여기서, 시퀀스(sequence)는 몇 개의 관련 장면을 모아서 구성되는 구성단위를 가리킨다. 그리고 픽쳐(picture)는 하나의 장면 또는 픽쳐에서 일련의 휘도(Y) 성분 혹은 휘도 + 색차(Y, Cb, Cr) 성분 전체를 일컫는 용어로서, 한 픽쳐의 범위는 경우에 따라서 한 프레임 혹은 한 필드가 될 수 있다.
슬라이스(slice)는 동일 액세스 유닛(access unit) 안에 존재하는 하나의 독립 슬라이스 세그먼트와 다수의 종속 슬라이스 세그먼트를 말할 수 있다. 액세스 유닛은 한 장의 코딩된 픽쳐와 관련된 NAL(network abstraction layer) 유닛의 집합(set)을 의미한다. NAL 유닛은 H.264/AVC와 HEVC 표준에서 비디오 압축 비트스트림을 네트워크 친화적인 형식으로 구성한 구문 구조(syntax structure)이다. 한 슬라이스 단위를 하나의 NAL 유닛으로 구성하는 것이 일반적이며, 시스템 표준에서는 일반적으로 한 프레임을 구성하는 NAL 혹은 NAL 집합을 하나의 액세스 유닛으로 간주한다.
다시 픽쳐 분할부의 설명으로 되돌아가서, 블록 크기 또는 형태(M×N)에 대한 정보는 명시적 플래그로 이루어질 수 있는데, 구체적으로 블록 형태 정보, 블록이 정사각형인 경우에 하나의 길이 정보, 직사각형일 경우에는 각각의 길이 정보, 또는 가로와 세로 길이의 차이값 정보 등을 포함할 수 있다. 예를 들어, M과 N이 k의 지수승(k를 2라 가정)으로 구성되어 있을 경우(M=2m, N=2n), m과 n에 대한 정보를 단항 이진화, 절삭형 단항 이진화 등의 다양한 방법으로 부호화하여 관련 정보를 복호화장치에 전달할 수 있다. 또는, 픽쳐 분할부에서 지원하는 분할 허용 최소 크기(Minblksize)가 I×J(설명의 편의상 I=J라고 가정. I=2i,J=2j 일 경우), m-i 또는 n-j에 대한 정보를 전달할 수 있다. 다른 예로, M과 N이 다를 경우, m과 n의 차이값(|m-n|)을 전달할 수 있다. 또는, 픽쳐 분할부에서 지원하는 분할 허용 최대 크기(Maxblksize)가 I×J(설명의 편의상 I=J라고 가정. I=2i,J=2j 일 경우), i-m 또는 n-j에 대한 정보를 전달할 수 있다.
묵시적인 상황일 경우 예컨대, 관련 정보에 대한 신택스는 존재하나 부호화기 또는 복호화기에서 확인할 수 없는 경우에는, 부호화기나 복호화기는 미리 준비된 기본 설정을 따를 수 있다. 예를 들어, 블록 형태 정보를 확인하는 단계에서 관련 신택스를 확인할 수 없는 경우 블록 형태는 기본 설정인 정사각 형태로 둘 수 있다. 또는, 블록 크기 정보를 확인하는 단계, 상세하게는 상기 예와 같이 분할 허용 최소 크기(Minblksize)로부터의 차이값을 통해 블록 크기 정보를 확인하는 단계에서 차이값 관련 신택스는 확인할 수 있으나 분할 허용 최소 크기(Minblksize) 관련 신택스는 확인할 수 없는 경우 미리 준비된 분할 허용 최소 크기(Minblksize) 관련 기본 설정값으로부터 얻을 수 있다.
이와 같이, 픽쳐 분할부에서 블록의 크기 또는 형태는 부호화기 또는 복호화기에서 관련 정보를 명시적으로 전송하거나 또는 영상의 특성 및 해상도 등에 따라 묵시적으로 결정될 수 있다.
상기와 같이 픽쳐 분할부를 통해 분할 및 결정된 블록은 기본 부호화 단위로 사용될 수 있다. 또한, 픽쳐 분할부를 통해 분할 및 결정된 블록은 픽쳐, 슬라이스, 타일(tile) 등의 상위 레벨 단위를 구성하는 최소 단위일 수 있고, 부호화(Coding Block), 예측(Prediction Block), 변환(Transform Block), 양자화(Quantization Block), 엔트로피(Entropy Block), 인루프 필터(Inloopfiltering Block) 등의 블록의 최대 단위일 수 있으나, 일부 블록은 이에 한정되지 않고 예외도 가능하다.
예컨대, 인루프 필터링 블록과 같이 일부는 위에서 설명한 블록 크기보다 더 큰 단위로 적용될 수 있다.
블록 분할부는 부호화, 예측, 변환, 양자화, 엔트로피, 인루프 필터 등의 블록에 대한 분할을 수행한다. 분할부는 각 구성에 포함되어 기능을 수행하기도 한다. 예컨대, 변환부(210)에 변환블록 분할부, 양자화부(215)에 양자화블록 분할부를 포함할 수 있다. 블록 분할부의 초기 블록의 크기 또는 형태는 이전 단계 또는 상위 레벨 블록의 분할 결과에 의해 결정될 수 있다. 예를 들어, 부호화 블록의 경우 이전 단계인 픽쳐 분할부를 통해 획득된 블록을 초기 블록으로 설정할 수 있다. 또는, 예측 블록의 경우 예측 블록의 상위 레벨인 부호화 블록의 분할 과정을 통해 획득된 블록을 초기 블록으로 설정할 수 있다. 또는, 변환 블록의 경우 변환 블록의 상위 레벨인 부호화 블록의 분할 과정을 통해 획득된 블록을 초기 블록으로 설정할 수 있다. 상기 초기 블록의 크기 또는 형태를 결정하는 조건은 항상 고정적이지 않으며 일부가 변경되거나 예외인 경우가 존재할 수 있다. 또한, 이전 단계 또는 상위 레벨 블록의 분할 상태(예를 들어, 부호화 블록의 크기, 부호화 블록의 형태 등)와 현재 레벨의 설정 조건(예를 들어, 지원되는 변환 블록의 크기, 변환 블록의 형태 등) 각각 최소 하나 이상의 요인의 조합에 따라 현재 레벨의 분할 동작(분할 가능 여부, 분할 가능한 블록 형태 등)에 영향을 줄 수도 있다.
블록 분할부는 쿼드트리(Quad tree) 기반의 분할 방식을 지원할 수 있다. 즉, 분할 전 블록에서 가로 및 세로가 1/2씩의 길이를 갖는 4개의 블록으로 분할할 수 있다. 이는 최초 블록 기준(dep_0)으로 분할 허용 깊이 한계(dep_k, k는 분할 허용 횟수를 의미하고, 분할 허용 깊이 한계(dep_k)일 때의 블록 크기는 (M >> k, N >> k)임)까지 분할을 반복적으로 할 수 있다.
또한, 바이너리 트리 기반의 분할 방식을 지원할 수 있다. 이는 가로 또는 세로 중 하나의 길이가 분할 전 블록과 비교하여 1/2의 길이를 갖는 2개의 블록으로 분할할 수 있음을 나타낸다. 상기 쿼드 트리 분할과 바이너리 트리의 분할의 경우 대칭 분할(Symmetric Partition)이나 비대칭 분할(Asymmetric Partition)일 수 있으며, 이는 부호화기 또는 복호화기의 설정에 따라 어느 분할 방식을 따를지 정할 수 있다. 본 발명의 영상 부호화 방법에서 대칭 분할 방식 위주로 설명을 할 것이다.
분할 플래그(div_flag)를 통해 각 블록의 분할 여부를 나타낼 수 있으며, 해당 값이 1이면 분할을 수행하고, 값이 0이면 분할을 수행하지 않는다. 또는, 해당 값이 1이면 분할을 수행하고 추가 분할이 가능하며, 값이 0이면 분할을 수행하지 않고 더 이상의 분할을 허용하지 않을 수 있다. 분할 허용 최소 크기, 분할 허용 깊이 한계 등의 조건에 의해 상기 플래그는 분할 여부에 대해서만 고려하고 추가 분할 여부에 대해서는 고려하지 않을 수 있다.
분할 플래그는 쿼드트리 분할에서 사용 가능하고, 바이너리 트리 분할에서도 사용 가능하다. 바이너리 트리 분할에서는 분할 방향이 블록의 분할 깊이, 부호화 모드, 예측 모드, 크기, 형태, 종류(부호화, 예측, 변환, 양자화, 엔트로피, 인루프 필터 등 중 하나일 수 있음. 또는, 휘도, 색차 중 하나일 수 있음) 그리고 슬라이스 타입, 분할 허용 깊이 한계, 분할 허용 최소 및 최대 크기 등의 요인 중 최소 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수 있다.
그 경우 분할 플래그에 따라 해당 분할 방향에 따라 즉, 블록의 가로만 1/2로 분할되거나 또는 세로만 1/2로 분할될 수 있다. 예를 들어, 블록이 M×N(M>N)으로 M이 N보다 클 때 가로 분할을 지원하며, 현재 분할 깊이(dep_curr)는 분할 허용 깊이 한계보다 작아서 추가 분할이 가능하다고 가정하면, 위의 분할 플래그는 1비트로 할당되어 해당 값이 1이면 가로 분할을 수행하고, 0이면 더 이상 분할하지 않을 수 있다. 분할 깊이는 쿼드 트리와 바이너리 트리 분할에 하나의 분할 깊이를 둘 수도 있고, 쿼드 트리와 바이너리 트리 분할에 각각의 분할 깊이를 둘 수도 있다. 또한, 분할 허용 깊이 한계는 쿼드 트리와 바이너리 트리 분할에 하나의 분할 허용 깊이 한계를 둘 수도 있고, 쿼드 트리와 바이너리 트리 분할에 각각의 분할 허용 깊이 한계를 둘 수도 있다.
다른 예로, 블록이 M×N (M>N)이고 N이 미리 설정된 분할 허용 최소 크기와 같아서 가로 분할을 지원하지 않는다면, 위의 분할 플래그는 1비트로 할당되어 해당 값이 1이면 세로 분할을 수행하고, 0이면 분할을 수행하지 않는다.
또한, 가로 분할 또는 세로 분할을 위한 플래그(div_h_flag, div_v_flag)를 각각 지원할 수 있으며, 상기 플래그에 따라 바이너리 분할을 지원할 수 있다. 가로 분할 플래그(div_h_flag) 또는 세로 분할 플래그(div_v_flag)를 통해 각 블록의 가로 또는 세로 분할 여부를 나타낼 수 있으며, 가로 분할 플래그(div_h_flag) 또는 세로 분할 플래그(div_v_flag)가 1이면 가로 또는 세로 분할을 수행하며, 0이면 가로 또는 세로 분할을 수행하지 않는다. 또는, 각 플래그가 1이면 가로 또는 세로 분할을 수행하며 가로 또는 세로의 추가 분할이 가능하고, 값이 0이면 가로 또는 세로 분할을 수행하지 않으며 더 이상의 가로 또는 세로의 추가 분할은 허용하지 않을 수 있다. 분할 허용 최소 크기, 분할 허용 깊이 한계 등의 조건에 의해 상기 플래그는 분할 여부에 대해서 고려하고 추가 분할 여부에 대해서는 고려하지 않을 수 있다. 또는, 가로 분할 또는 세로 분할을 위한 플래그(div_flag/h_v_flag)를 지원할 수 있으며, 상기 플래그에 따라 바이너리 분할을 지원할 수 있다. 분할 플래그(div_flag)는 가로 또는 세로 분할 여부를 나타낼 수 있으며 분할 방향 플래그(h_v_flag)는 가로 또는 세로의 분할 방향을 나타낼 수 있다. 분할 플래그(div_flag)가 1이면 분할을 수행하며 분할 방향 플래그(h_v_flag)에 따라 가로 또는 세로 분할을 수행하며, 0이면 가로 또는 세로 분할을 수행하지 않는다. 또는, 해당 값이 1이면 분할 방향 플래그(h_v_flag)에 따라 가로 또는 세로 분할을 수행하며 가로 또는 세로의 추가 분할이 가능하고, 값이 0이면 가로 또는 세로 분할을 수행하지 않으며 더 이상의 가로 또는 세로 분할을 허용하지 않는 것으로 간주할 수 있다. 분할 허용 최소 크기, 분할 허용 깊이 한계 등의 조건에 의해 상기 플래그는 분할 여부에 대해서 고려하고 추가 분할 여부에 대해서는 고려하지 않을 수 있다.
이러한 분할 플래그 또한 가로, 세로 분할을 위해 각각 지원할 수 있으며, 상기 플래그에 따라 바이너리 트리 분할을 지원할 수 있다. 또한, 분할 방향이 미리 결정되어 있는 경우, 상기 예와 같이 둘 중의 하나의 분할 플래그만 사용되거나, 두 분할 플래그 모두가 사용될 수 있다.
예를 들어, 상기의 플래그가 다 허용되면 가능한 블록의 형태는 M×N, M/2×N, M×N/2, M/2×N/2 중 어느 하나로 분할이 될 수 있다. 이 경우, 플래그는 (div_h_flag/div_v_flag순으로) 00, 01, 10, 11로 부호화될 수 있다. 위의 경우 상기 분할 플래그가 중첩되어 사용될 수 있는 설정에서의 예시이고, 상기 분할 플래그가 중첩되어 사용될 수 없는 설정 또한 가능하다. 예를 들어, 분할 블록 형태가 M×N, M/2×N, M×N/2로 분할 될 수 있으며, 이 경우 위의 플래그는 (div_h_flag/div_v_flag순으로) 00, 01, 10로 부호화되거나, (div_flag/h_v_flag순으로. h_v_flag는 분할 방향이 가로 또는 세로를 나타내는 플래그) 0, 10, 11로 부호화될 수 있다. 여기에서 중첩의 의미는 가로 분할과 세로 분할을 동시에 수행하는 것을 의미할 수 있다. 전술한 쿼드트리 분할 및 바이너리 트리 분할은 부호화기 또는 복호화기의 설정에 따라 어느 하나가 단독으로 사용되거나 혼용되어 사용될 수 있다. 예컨대, 블록 크기 또는 형태에 따라서 쿼드트리 또는 바이너리 트리 분할이 결정될 수 있다. 즉, 블록 형태가 M×N이고, M이 N보다 큰 경우에는 가로 분할, 블록 형태가 M×N이고, N이 M보다 큰 경우에는 세로 분할에 따라 바이너리 트리 분할이 지원될 수 있고, 블록 형태가 M×N이고, N과 M인 동일한 경우에는 쿼드트리 분할이 지원될 수 있다.
다른 예로, 블록(M×M)의 크기가 블록 분할 경계값(Thrblksize)보다 크거나 같은 경우는 바이너리 트리 분할이 지원될 수 있고, 그보다 작은 경우에는 쿼드트리 분할이 지원될 수 있다.
다른 예로, 블록(M×N)의 M 또는 N이 제 1 분할 허용 최대 크기 (Maxblksize1)보다 작거나 같고 제 1 분할 허용 최소 크기(Minblksize1)보다 크거나 같을 경우에는 쿼드 트리 분할을 지원하고, 블록(M×N)의 M 또는 N이 제 2 분할 허용 최대 크기(Maxblksize2)보다 작거나 같고 제 2 분할 허용 최소 크기(Minblksize2)보다 크거나 같을 경우에는 바이너리 트리 분할이 지원될 수도 있다. 만약 상기 분할 허용 최대 크기와 분할 허용 최소 크기로 정의할 수 있는 제 1 분할 지원 범위와 제 2 분할 지원 범위가 중복되는 경우에는, 부 또는 복호화기의 설정에 따라 제 1 또는 제 2 분할 방법 중의 우선순위가 주어질 수 있다. 본 예에서는 제 1의 분할 방법은 쿼드트리 분할, 제 2 분할 방법은 바이너리 트리 분할로 예를 들 수 있다. 예를 들어, 제 1 분할 허용 최소 크기(Minblksize1)이 16이고 제 2 분할 허용 최대 크기(Maxblksize2)가 64이며 분할 전 블록이 64×64 일 경우, 제 1 분할 지원 범위와 제 2 분할 지원 범위에 모두 속하므로 쿼드 트리 분할과 바이너리 트리 분할이 가능하다. 기설정에 따라 제 1 분할 방법(본 예에서는 쿼드 트리 분할)으로 우선 순위가 주어진다면, 분할 플래그 (div_flag)가 1일 경우에는 쿼드 트리 분할을 수행하며 추가 쿼드 트리 분할이 가능하고, 0일 경우에는 쿼드 트리 분할을 수행하지 않으며 더 이상 쿼드 트리 분할을 수행하지 않는 것으로 간주할 수 있다. 또는, 분할 플래그(div_flag)가 1일 경우에는 쿼드 트리 분할을 수행하며 추가 쿼드 트리 또는 바이너리 트리 분할이 가능하고, 0일 경우에는 쿼트 트리 분할을 수행하지 않으며 더 이상 쿼드 트리 분할을 수행하지 않지만 바이너리 트리 분할 가능한 것으로 간주할 수 있다.
분할 허용 최소 크기, 분할 허용 깊이 한계 등의 조건에 의해 상기 플래그는 분할 여부에 대해서만 고려하고 추가 분할 여부에 대해서는 고려하지 않을 수 있다. 만약, 상기 분할 플래그(div_flag)가 1일 경우에는 32×32의 크기를 갖는 4개의 블록으로 분할이 되어 제 1 분할 허용 최소 크기(Minblksize1) 보다 크기 때문에 쿼드 트리 분할을 계속 수행할 수 있다. 만약, 0일 경우에는 추가적인 쿼드 트리 분할을 수행하지 않으며, 현재 블록 크기(64×64)가 상기 제 2 분할 지원 범위에 속하게 되므로 바이너리 트리 분할을 수행할 수 있다. 분할 플래그(div_flag/h_v_flag순으로)가 0일 경우에는 더 이상 분할을 수행하지 않으며, 10 또는 11인 경우에는 가로 분할 또는 세로 분할을 수행할 수 있다. 만약 분할 전 블록이 32×32이며 분할 플래그(div_flag)가 0이라 더 이상 쿼드 트리 분할을 하지 않고 제 2 분할 허용 최대 크기(Maxblksize2)가 16일 경우, 현재 블록의 크기(32×32)가 제 2 분할 지원 범위에 속하지 않으므로 더 이상의 분할을 지원하지 않을 수 있다. 위 설명에서 분할 방법의 우선순위는 슬라이스 타입, 부호화 모드, 휘도 및 색차 성분 등 중에서 최소 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수 있다.
다른 예로, 휘도 및 색차 성분에 따라 다양한 설정을 지원할 수 있다. 예를 들어, 휘도 성분에서 결정된 쿼드 트리 또는 바이너리 트리 분할 구조를 색차 성분에서는 추가적인 정보 부 또는 복호화없이 그대로 사용할 수 있다. 또는, 휘도 성분과 색차 성분의 독립적인 분할을 지원할 경우, 휘도 성분에는 쿼드 트리 + 바이너리 트리, 색차 성분에는 쿼드 트리 분할을 지원할 수도 있다. 또는, 휘도와 색차 성분에서 쿼드 트리 + 바이너리 트리 분할을 지원하되, 상기 분할 지원 범위가 휘도와 색차 성분에도 동일 또는 비례할 수도 있고, 그렇지 않을 수도 있다. 예를 들어, 컬러 포맷이 4:2:0인 경우일 경우, 색차 성분의 분할 지원 범위가 휘도 성분의 분할 지원 범위의 N/2일 수 있다.
다른 예로, 슬라이스 타입에 따라 다른 설정을 둘 수 있다. 예를 들어, I 슬라이스에서는 쿼드 트리 분할을 지원할 수 있고, P 슬라이스에서는 바이너리 트리 분할을 지원할 수 있고, B 슬라이스에서는 쿼드 트리 + 바이너리 트리 분할을 지원할 수 있다.
상기 예와 같이 쿼드 트리 분할 및 바이너리 트리 분할이 다양한 조건에 따라 설정 및 지원될 수 있다. 상기 예들은 전술한 경우에만 특정하는 것은 아니며 서로의 조건이 뒤바뀌는 경우도 포함할 수 있고, 상기 예에서 언급된 하나 이상의 요인 또는 이들의 조합되는 경우도 포함할 수 있고, 다른 경우의 예로 변형 또한 가능하다. 위의 분할 허용 깊이 한계는 분할 방식(쿼드트리, 바이너리 트리), 슬라이스 타입, 휘도 및 색차 성분, 부호화 모드 등에서 최소 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수 있다. 또한, 상기 분할 지원 범위는 분할 방식(쿼드트리, 바이너리 트리), 슬라이스 타입, 휘도 및 색차 성분, 부호화 모드 등에서 최소 하나 이상의 요인에 또는 이들의 조합에 따라 결정될 수 있으며, 관련 정보는 분할 지원 범위의 최대값, 최소값으로 표현할 수 있다. 이에 대한 정보를 명시적 플래그로 구성할 경우, 최대값 및 최소값 각각의 길이 정보, 또는 최소값과 최대값의 차이값 정보 등을 표현할 수 있다. 예를 들어, 최대값과 최소값이 k의 지수승(k를 2라 가정)으로 구성되어 있을 경우, 최대값과 최소값의 지수 정보를 다양한 이진화를 통해 부호화하여 복호화 장치에 전달할 수 있다. 또는, 최대값과 최소값의 지수의 차이값을 전달할 수 있다. 이 때 전송되는 정보는 최소값의 지수 정보와 지수의 차이값 정보일 수 있다
전술한 설명에 따라 플래그와 관련한 정보들은 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위에서 생성되고 전송될 수 있다.
상기 예시로 제시된 분할 플래그들로 쿼드 트리 또는 바이너리 트리 또는 두 트리 방식의 혼합을 통해 블록 분할 정보를 나타낼 수 있으며, 분할 플래그는 단항 이진화, 절삭형 단항 이진화 등의 다양한 방법으로 부호화하여 관련 정보를 복호화 장치에 전달할 수 있다. 상기 블록의 분할 정보를 표현하기 위한 분할 플래그의 비트스트림 구조는 1개 이상의 스캔 방법 중 선택할 수 있다. 예를 들어, 분할 깊이 순서(dep0에서 dep_k순서로) 기준으로 분할 플래그들의 비트스트림을 구성할 수 있고, 분할 여부 기준으로 분할 플래그들의 비트스트림을 구성할 수도 있다. 분할 깊이 순서 기준 방법에서는 최초 블록 기준으로 현 수준의 깊이에서의 분할 정보를 획득한 후 다음 수준의 깊이에서의 분할 정보를 획득하는 방법이며, 분할 여부 기준 방법에서는 최초 블록 기준으로 분할된 블록에서의 추가 분할 정보를 우선적으로 획득하는 방법을 의미하며, 이 외에도 위의 예에서 제시되지 않은 다른 스캔 방법이 포함되어 선택될 수 있다.
또한, 구현에 따라서, 블록 분할부는 전술한 분할 플래그가 아닌 미리 정의된 소정 형태의 블록 후보군에 대한 인덱스 정보를 생성하여 이를 표현할 수 있다. 블록 후보군의 형태는, 예를 들어, 분할 전 블록에서 가질 수 있는 분할 블록의 형태로서 M×N, M/2×N, M×N/2, M/4×N, 3M/4×N, M×N/4, M×3N/4, M/2×N/2 등을 포함할 수 있다. 위와 같이 분할 블록의 후보군이 결정되면 상기 분할 블록 형태에 대한 인덱스 정보를 고정 길이 이진화, 단삭 절단형 이진화, 절단형 이진화 등과 같은 다양한 방법을 통해 부호화할 수 있다. 위에서 설명한 분할 플래그와 같이 블록의 분할 깊이, 부호화 모드, 예측 모드, 크기, 형태, 종류 그리고 슬라이스 타입, 분할 허용 깊이 한계, 분할 허용 최소 및 최대 크기 등의 요인 중 최소 하나 이상의 요인 또는 이들의 조합에 따라 분할 블록 후보군이 결정될 수 있다. 다음 설명을 위해서 (M×N, M/2×N/2)를 후보 list1, (M×N, M/2×N, M×N/2, M/2×N/2)를 후보 list2, (M×N, M/2×N, M×N/2)를 후보 list3, (M×N, M/2×N, M×N/2, M/4×N, 3M/4×N, M×N/4, M×3N/4, M/2×N/2)를 후보 list4라 가정한다. 예를 들어, M×N을 기준으로 설명할 때, (M=N)일 경우에는 후보 list2의 분할 블록 후보를, (M≠N)일 경우에는 후보 list3의 분할 블록 후보를 지원할 수 있다.
다른 예로, M×N의 M 또는 N이 경계값(blk_th)보다 크거나 같을 경우에는 후보 list2의 분할 블록 후보를, 그보다 작을 경우에는 후보 list4의 분할 블록 후보를 지원할 수 있다. 또는, M또는 N이 제 1 경계값(blk_th_1)보다 크거나 같을 경우에는 후보 list1의 분할 블록 후보를, 제 1 경계값(blk_th_1)보다는 작지만 제 2 경계값(blk_th_2)보다는 크거나 같을 경우에는 후보 list2의 분할 블록 후보를, 제 2 경계값(blk_th_2)보다 작을 경우에는 후보 list4의 분할 블록 후보를 지원할 수 있다.
다른 예로, 부호화 모드가 화면 내 예측인 경우 후보 list2의 분할 블록 후보를, 화면 간 예측인 경우 후보 list4의 분할 블록 후보를 지원할 수 있다.
상기와 같은 분할 블록 후보가 지원된다 하더라도 각각의 블록에서 이진화에 따른 비트 구성은 같을 수도, 다를 수도 있다. 예를 들어, 위의 분할 플래그에서의 적용과 같이 블록 크기 또는 형태에 따라 지원되는 분할 블록 후보가 제한된다면 해당 블록 후보의 이진화에 따른 비트 구성이 달라질 수 있다. 예컨대, (M>N)일 경우에는 가로 분할에 따른 블록 형태 즉, M×N, M×N/2, M/2×N/2를 지원할 수 있고, 분할 블록 후보군(M×N, M/2×N, M×N/2, M/2×N/2)에서의 M×N/2과 현재 조건의 M×N/2에 따른 인덱스의 이진 비트가 서로 다를 수 있다. 블록의 종류 예컨대 부호화, 예측, 변환, 양자화, 엔트로피, 인루프필터링 등에 사용되는 블록의 종류에 따라 분할 플래그 또는 분할 인덱스 방식 중 하나를 사용하여 블록의 분할 및 형태에 대한 정보를 표현할 수 있다. 또한, 각 블록 종류에 따라 분할 및 블록의 형태 지원에 대한 블록 크기 제한 및 분할 허용 깊이 한계 등이 다를 수 있다.
블록 단위의 부호화 또는 복호화 과정은 우선 부호화 블록이 결정된 후, 예측 블록 결정, 변환 블록 결정, 양자화 블록 결정, 엔트로피 블록 결정, 인루프 필터 결정 등의 과정에 따라 부호화 또는 복호화를 진행할 수 있다. 상기의 부호화 또는 복호화 과정에 대한 순서는 항상 고정적이지 않으며, 일부 순서가 변경되거나 제외될 수 있다. 상기 블록의 크기 및 형태의 후보별 부호화 비용에 따라 각 블록의 크기 및 형태가 결정되고, 결정된 각 블록의 영상 데이터 및 결정된 각 블록의 크기 및 형태 등의 분할 관련 정보들을 부호화할 수 있다.
예측부(200)는 소프트웨어 모듈인 예측 모듈(prediction module)을 이용하여 구현될 수 있고, 부호화할 블록에 대하여 화면 내 예측 방식이나 화면 간 예측 방식으로 예측 블록을 생성할 수 있다. 여기서, 예측 블록은 화소 차이의 관점에서, 부호화할 블록과 가깝게 일치하는 것으로 이해되는 블록이며, SAD(Sum of Absolute Difference), SSD(Sum of Square Difference)를 포함하는 다양한 방법으로 결정될 수 있다. 또한, 이때 영상 블록들을 복호화시에 사용될 수 있는 각종 구문(Syntax)들을 생성할 수도 있다. 예측 블록은 부호화 모드에 따라 화면 내 블록과 화면 간 블록으로 분류될 수 있다.
화면 내 예측(intra prediction)은 공간적인 상관성을 이용하는 예측 기술로, 현재 픽쳐 내에서 이전에 부호화되고 복호화되어 복원된 블록들의 참조 화소들을 이용하여 현재 블록을 예측하는 방법을 말한다. 즉, 화면 내 예측은 예측과 복원으로 재구성된 밝기 값을 부호화기 및 복호화기에서 참조 화소로 사용할 수 있다. 화면 내 예측은 연속성을 갖는 평탄한 영역 및 일정한 방향성을 가진 영역에 대해 효과적일 수 있으며, 공간적인 상관성을 이용하기 때문에 임의 접근(random access)을 보장하고, 오류 확산을 방지하는 목적으로 사용될 수 있다.
화면 간 예측(inter prediction)은 하나 이상의 과거 또는 미래 픽쳐에서 부호화된 영상을 참조하여 시간적인 상관성을 이용하여 데이터의 중복을 제거하는 압축 기법을 이용한다. 즉, 화면 간 예측은 하나 이상의 과거 또는 미래 픽쳐를 참조함으로써 높은 유사성을 갖는 예측 신호를 생성할 수 있다. 화면 간 예측을 이용하는 부호화기에서는 참조 픽쳐에서 현재 부호화하려는 블록과 상관도가 높은 블록을 탐색하고, 선택된 블록의 위치 정보와 잔차(residue) 신호를 복호화기로 전송할 수 있고, 복호화기는 전송된 영상의 선택 정보를 이용하여 부호화기와 동일한 예측 블록을 생성하고 전송된 잔차 신호를 보상하여 복원 영상을 구성할 수 있다.
도 4는 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 P 슬라이스의 화면 간 예측을 나타낸 예시도이다. 도 5는 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 B 슬라이스의 화면 간 예측을 나타낸 예시도이다.
본 실시예의 영상 부호화 방법에서, 화면 간 예측은 시간적으로 높은 상관성이 있는 이전에 부호화된 픽쳐로부터 예측 블록을 생성하기 때문에 부호화 효율을 높일 수 있다. Current(t)는 부호화할 현재 픽쳐를 의미할 수 있고, 영상 픽쳐의 시간적인 흐름 혹은 픽쳐 오더 카운트(Picture Order Count, POC)기준으로 할 때 현재 픽쳐의 POC보다 이전의 제1 시간적인 거리(t-1)를 가지는 제1 참조픽쳐(t-1)와 제1 시간적인 거리보다 이전의 제2 시간적인 거리(t-2)를 가지는 제2 참조픽쳐(t-2)를 포함할 수 있다.
즉, 도 4에 도시한 바와 같이, 본 실시예의 영상 부호화 방법에 채용할 수 있는 화면 간 예측은 현재 픽쳐(current(t))의 현재 블록과 참조 픽쳐들(t-1, t-2)의 참조 블록들의 블록 매칭을 통해 상관성이 높은 블록을 이전에 부호화가 완료된 참조 픽쳐들(t-1, t-2)로부터 최적의 예측 블록을 찾는 움직임 추정을 수행할 수 있다. 정밀한 추정을 위해 필요에 따라 인접한 두 화소들 사이에 적어도 하나 이상의 부화소가 배열된 구조에 기반하는 보간(interpolation) 과정을 수행한 후, 최적의 예측 블록을 찾은 후에 움직임 보상을 하여 최종적인 예측 블록을 찾을 수 있다.
또한, 도 5에 도시한 바와 같이, 본 실시예의 영상 부호화 방법에 채용할 수 있는 화면 간 예측은 현재 픽쳐(current(t))을 기준으로 시간적으로 양방향에 존재하는 이미 부호화가 완료된 참조 픽쳐들(t-1, t+1)로부터 예측 블록을 생성할 수 있다. 또한, 1개 이상의 참조 픽쳐에서 2개의 예측 블록을 생성할 수 있다.
화면 간 예측을 통해 영상의 부호화를 수행할 경우, 최적의 예측 블록에 대한 움직임 벡터 정보와 참조 픽쳐에 대한 정보를 부호화한다. 본 실시예에서는 단방향 또는 양방향으로 예측 블록을 생성할 경우 참조 픽쳐 리스트를 달리 구성하여 해당 참조 픽쳐 리스트로부터 예측 블록을 생성할 수 있다. 기본적으로 시간적으로 현재 픽쳐 이전에 존재하는 참조 픽쳐는 리스트 0에 할당되고 현재 픽쳐 이후에 존재하는 참조 픽쳐는 리스트 1에 할당되어 관리될 수 있다. 참조 픽쳐 리스트 0를 구성할 때, 참조 픽쳐 리스트 0의 참조 픽쳐 허용 개수까지 채우지 못할 경우 현재 픽쳐 이후에 존재하는 참조 픽쳐를 할당할 수 있다. 이와 비슷하게 참조 픽쳐 리스트 1을 구성할 때, 참조 픽쳐 리스트 1의 참조 픽쳐 허용 개수까지 채우지 못할 경우 현재 픽쳐 이전에 존재하는 참조 픽쳐를 할당할 수 있다.
도 6은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 단방향으로 예측 블록을 생성하는 경우를 설명하기 위한 예시도이다.
도 6을 참조하면, 본 실시예에 따른 영상 부호화 및 복호화 방법에서는 기존과 같이 이전에 부호화된 참조 픽쳐(t-1, t-2)로부터 예측 블록을 찾을 수 있고, 이에 더하여 현재 픽쳐(current(t))에 이미 부호화가 완료된 영역으로부터 예측 블록을 찾을 수 있다.
즉, 본 실시예에 따른 영상 부호화 및 복호화 방법에서는, 시간적으로 높은 상관성이 있는 이전에 부호화된 픽쳐(t-1, t-2)로부터 예측 블록을 생성한 것뿐만 아니라 공간적으로 상관성이 높은 예측 블록을 함께 찾도록 구현될 수 있다. 그러한 공간적으로 상관성이 높은 예측 블록을 찾는 것은 화면 내 예측의 방식으로 예측 블록을 찾는 것에 대응할 수 있다. 현재 픽쳐에서 부호화가 완료된 영역으로부터 블록 매칭을 수행하기 위해, 본 실시예의 영상 부호화 방법은 화면 내 예측 모드와 혼합하여 예측 후보와 관련된 정보에 대한 신택스(syntax)를 구성할 수 있다.
예를 들어, n(n은 임의의 자연수) 가지의 화면 내 예측 모드를 지원하는 경우, 한 가지 모드를 화면 내 예측 후보군에 추가하여 n+1가지 모드를 지원하며 2M-1≤n+1<2M 를 만족시키는 M개의 고정 비트를 사용하여 예측 모드를 부호화할 수 있다. 또한, HEVC(high efficiency video coding)의 MPM(most probable mode)와 같이 가능성 높은 예측 모드의 후보군 중에서 선택하도록 구현될 수 있다. 또한, 예측 모드 부호화의 상위 단계에서 우선적으로 부호화할 수도 있다.
현재 픽쳐에서 블록 매칭을 통해 예측 블록을 생성할 경우, 본 실시예의 영상 부호화 방법은 화면 간 예측 모드와 혼합하여 관련된 정보에 대한 신택스를 구성할 수도 있다. 추가적인 관련 예측 모드 정보로는 움직임 또는 이동(motion or displacement) 관련 정보가 이용될 수 있다. 움직임 또는 이동 관련 정보는 여러 벡터 후보 중 최적의 후보 정보, 최적의 후보 벡터와 실제 벡터와의 차분치, 참조 방향, 참조 픽쳐 정보 등을 포함할 수 있다.
도 7은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 참조 픽쳐 리스트로부터 구성하는 예시도이다. 도 8은 본 발명의 일실시예에 따른 영상 부호화 및 복호화 방법에서 참조 픽쳐 리스트로부터 화면 간 예측을 수행하는 경우의 다른 예를 나타낸 예시도이다.
도 7을 참조하면, 본 실시예에 따른 영상 부호화 방법은, 현재 픽쳐(current(t))의 현재 블록에 대하여 각기 참조 픽쳐 리스트(reference list 0, reference list 1)로부터 화면 간 예측을 수행할 수 있다.
도 7 및 도 8을 참조하면, 참조 픽쳐 리스트 0은 현재 픽쳐(t) 이전의 참조 픽쳐로 구성할 수 있는데, t-1, t-2는 각각 현재 픽쳐(t)의 픽쳐 오더 카운트(Picture Order Count, POC)보다 이전의 제1 시간적인 거리(t-1), 제2 시간적인 거리(t-2)를 가지는 참조 픽쳐들을 지시한다. 또한, 참조 픽쳐 리스트 1은 현재 픽쳐(t) 이후의 참조 픽쳐로 구성할 수 있는데, t+1, t+2는 각각 현재 픽쳐(t)의 POC보다 이후의 제1 시간적인 거리(t+1), 제2 시간적인 거리(t+2)를 가지는 참조 픽쳐들을 지시한다.
참조 픽쳐 리스트 구성에 관한 전술한 예들은 시간적인 거리(본 예에서는 POC 기준)의 차이가 1인 참조 픽쳐들로 참조 픽쳐 리스트를 구성하는 예를 나타내고 있으나, 참조 픽쳐간의 시간적인 거리 차이를 다르게 구성할 수도 있다. 즉, 참조 픽쳐들의 인덱스 차이와 참조 픽쳐들의 시간적인 거리 차이가 비례하지 않을 수 있다는 것을 의미한다. 또한, 리스트 구성 순서를 시간적인 거리 기준으로 구성되지 않을 수도 있다. 이에 대한 내용은 후술할 참조 픽쳐 리스트 구성 예에서 확인할 수 있다.
슬라이스 타입(I, P 또는 B)에 따라 리스트에 있는 참조 픽쳐로부터 예측을 수행할 수 있다. 그리고 현재 픽쳐(current(t))에서 블록 매칭을 통해 예측 블록을 생성할 경우, 참조 픽쳐 리스트(reference list 0, reference list 1)에 현재 픽쳐를 추가하여 화면 간 예측 방식으로 부호화를 수행할 수 있다.
도 8에 도시한 바와 같이 참조 픽쳐 리스트 0(reference list 0)에 현재 픽쳐(t)를 추가하거나 또는 참조 픽쳐 리스트 1(reference list 1)에 현재 픽쳐(t)를 추가할 수 있다. 즉, 참조 픽쳐 리스트 0은 현재 픽쳐(t) 이전의 참조 픽쳐에 시간적인 거리(t)인 참조 픽쳐를 추가하여 구성할 수 있고, 참조 픽쳐 리스트 1은 현재 픽쳐(t) 이후의 참조 픽쳐에 시간적인 거리(t)인 참조 픽쳐를 추가하여 구성할 수도 있다.
예를 들어, 참조 픽쳐 리스트 0를 구성할 때 현재 픽쳐 이전의 참조 픽쳐를 참조 픽쳐 리스트 0에 할당하고 이어 현재 픽쳐(t)를 할당할 수 있고, 참조 픽쳐 리스트 1을 구성할 때 현재 픽쳐 이후의 참조 픽쳐를 참조 픽쳐 리스트 1에 할당하고 이어 현재 픽쳐(t)를 할당할 수 있다. 또는, 참조 픽쳐 리스트 0를 구성할 때 현재 픽쳐(t)를 할당하고 이어 현재 픽쳐 이전의 참조 픽쳐를 할당할 수 있고, 참조 픽쳐 리스트 1을 구성할 때 현재 픽쳐(t)를 할당하고 이어 현재 픽쳐 이후의 참조 픽쳐를 할당할 수 있다. 또는, 참조 픽쳐 리스트 0을 구성할 때 현재 픽쳐 이전의 참조 픽쳐를 할당하고 이어 현재 픽쳐 이후의 참조 픽쳐를 할당하고 현재 픽쳐(t)를 할당할 수 있다. 이와 비슷하게 참조 픽쳐 리스트 1을 구성할 때 현재 픽쳐 이후의 참조 픽쳐를 할당하고 이어 현재 픽쳐 이전의 참조 픽쳐를 할당하고 현재 픽쳐(t)를 할당할 수 있다. 위의 예들은 전술한 경우에만 특정하는 것은 아니며 서로의 조건이 뒤바뀌는 경우도 포함할 수 있고, 다른 경우의 예로 변형 또한 가능하다.
각 참조 픽쳐 리스트에 현재 픽쳐를 포함할 지 여부(예를 들어, 어떤 리스트에도 추가하지 않음 또는 리스트 0에만 추가 또는 리스트 1에만 추가 또는 리스트 0와 1에 같이 추가)는 부호화기 또는 복호화기에 동일한 설정이 가능하고, 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송이 가능하다. 이에 대한 정보는 고정 길이 이진화, 단삭 절단형 이진화, 절단형 이진화 등의 방법을 통해 부호화될 수 있다.
본 실시예의 영상 부호화 및 복호화 방법은, 도 7의 방법과 달리, 현재 픽쳐(t)에서 블록 매칭을 수행하여 예측 블록을 선택하고, 이러한 예측 블록에 대한 관련 정보를 포함하는 참조 픽쳐 리스트를 구성하며, 이러한 참조 픽쳐 리스트를 영상 부호화 및 복호화에 이용하는데 차이가 있다.
참조 픽쳐 리스트 구성에 있어서 각 리스트 구성 순서 및 규칙, 각 리스트의 참조 픽쳐 허용 개수에 대한 설정을 달리할 수 있는데, 이는 현재 픽쳐의 리스트 포함여부(현재 픽쳐를 화면 간 예측에서의 참조 픽쳐로 포함할지 여부), 슬라이스 타입, 리스트 재구성 파라미터(리스트 0, 1에 각각 적용될 수도 있고, 리스트 0, 1에 같이 적용될 수도 있음), 픽쳐 집합(Group of Picture, GOP) 내의 위치, 시간적 계층 정보(temporal id) 등의 여러 요인 중 최소 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수도 있고, 명시적으로 관련 정보를 시퀀스, 픽쳐 등의 단위로 전송할 수 있다. 예를 들어, P 슬라이스인 경우 현재 픽쳐를 리스트에 포함하는 것과 관계없이 참조 픽쳐 리스트 0은 리스트 구성 규칙 A에 따를 수 있고, B 슬라이스인 경우 현재 픽쳐를 리스트에 포함하는 참조 픽쳐 리스트 0에는 리스트 구성 규칙 B, 참조 픽쳐 리스트 1에는 리스트 구성 규칙 C를 따를 수 있고, 현재 픽쳐를 포함하지 않는 참조 픽쳐 리스트 0에는 리스트 구성 규칙 D, 참조 픽쳐 리스트 1에는 리스트 구성 규칙 E에 따를 수 있으며, 리스트 구성 규칙 중 B와 D, C와 E는 같을 수도 있다. 리스트 구성 규칙은 상기 참조 픽쳐 리스트 구성 예에서 설명된 것과 같거나 변형된 방식으로 구성될 수 있다. 다른 예로, 현재 픽쳐를 리스트에 포함하는 경우에는 제 1 참조 픽쳐 허용 개수, 포함하지 않는 경우에는 제 2 참조 픽쳐 허용 개수를 설정할 수 있다. 제 1 참조 픽쳐 허용 개수와 제 2 참조 픽쳐 허용 개수는 같을 수도 있고 다를 수도 있으며, 제 1 참조 픽쳐 허용 개수와 제 2 참조 픽쳐 허용 개수의 차이가 1인 것을 기본 설정으로 둘 수도 있다. 다른 예로, 현재 픽쳐를 리스트에 포함하며 리스트 재구성 파라미터가 적용될 경우, 슬라이스 A에서는 모든 참조 픽쳐가 리스트 재구성 후보군이 될 수 있고, 슬라이스 B에서는 리스트 재구성 후보군에 일부 참조 픽쳐만 포함될 수 있다. 이 때, 슬라이스 A 또는 B는 현재 픽쳐의 리스트 포함여부, 시간적 계층 정보, 슬라이스 타입, 픽쳐 집합(Group of Picture, GOP) 내의 위치 등에 구분될 수 있고, 후보군에 포함 여부를 나누는 요인으로 참조 픽쳐의 픽쳐 오더 카운트(Picture Order Count, POC) 또는 참조 픽쳐 인덱스, 참조 예측 방향(현재 픽쳐 전후), 현재 픽쳐 여부 등에 의해 결정될 수 있다.
전술한 구성에 의하면, 현재 픽쳐에서 화면 간 예측으로 부호화된 참조 블록을 이용할 수 있으므로, I 슬라이스의 움직인 예측에서도 화면 간 예측을 허용 또는 이용할 수 있게 된다.
또한, 참조 픽쳐 리스트를 구성할 때, 슬라이스 타입에 따라 인덱스 할당 또는 리스트 구성 순서를 달리할 수 있다. I 슬라이스의 경우, 현재 픽쳐(current(t))에서 상기 참조 픽쳐 리스트 구성 예와 같이 우선순위를 높게 하여 더 적은 인덱스(예를 들어, idx=0, 1, 2와 같이)를 사용하고, 해당 참조 픽쳐 리스트의 참조 픽쳐 허용 개수(C)를 최대값으로 하는 이진화(고정 길이 이진화, 단삭 절단형 이진화, 절단형 이진화 등) 통해 영상 부호화에서의 비트량을 줄일 수 있다. 또한, P 또는 B 슬라이스의 경우, 현재 픽쳐에서 블록 매칭을 수행하여 현재 블록의 참조 픽쳐를 예측 후보로 선택할 확률이 다른 참조 픽쳐를 통해 예측 후보를 선택하는 확률보다 낮다고 판단되는 상황이라 하면, 현재 픽쳐의 블록 매칭에 대한 우선순위를 뒤로 설정하여 더 높은 인덱스(예를 들어, idx= C, C-1와 같이)를 사용하여 해당 참조 픽쳐 리스트의 참조 픽쳐 허용 개수를 최대값으로 하는 다양한 방법의 이진화를 통해 영상 부호화에서의 비트량을 줄일 수 있다. 위의 예에서 현재 픽쳐의 우선순위 설정은 상기 참조 픽쳐 리스트 구성 예에서 설명된 것과 같거나 변형된 방식으로 구성될 수 있다. 또한, 슬라이스 타입에 따라(예를 들어, I 슬라이스) 참조 픽쳐 리스트를 구성하지 않음으로써 참조 픽쳐에 대한 정보를 생략하는 것이 가능하다. 예컨대, 기존의 화면 간 예측을 통해 예측 블록을 생성하되 화면 간 예측 모드에서의 움직임 정보에서 참조 픽쳐 정보를 제외한 나머지로 화면간 예측 정보를 표현할 수 있다.
현재 픽쳐에서 블록 매칭을 수행하는 방식은 슬라이스 타입에 따라 지원 여부를 결정할 수 있다. 예를 들어, 현재 블록에서의 블록 매칭을 I 슬라이스에서는 지원하지만 P 슬라이스나 B 슬라이스에서는 지원하지 않도록 설정할 수도 있고, 다른 예로의 변형 또한 가능하다. 또한, 현재 픽쳐에서 블록 매칭을 지원하는 방식은 픽쳐, 슬라이스, 타일 등 단위로 지원 여부를 결정할 수도 있고, 픽쳐 집합(Group of Picture, GOP) 내의 위치, 시간적 계층 정보(temporal ID) 등에 따라 결정할 수도 있다. 이러한 설정 정보는 영상 부호화 과정이나 부호화기에서 복호화기로 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송될 수 있다. 또한, 상위 레벨 단위에서 위와 관련된 설정 정보 또는 신택스가 존재하며 설정 관련 동작이 온(on)되는 상황이라도 하위 레벨 단위에서 위와 동일한 설정 정보 또는 신택스가 존재할 때, 하위 레벨 단위에서의 설정 정보가 상위 레벨 단위에서의 설정 정보를 우선할 수 있다. 예를 들어, 동일 또는 유사한 설정 정보를 시퀀스, 픽쳐, 슬라이스에서 처리한다면, 시퀀스 단위보다는 픽쳐 단위가, 픽쳐 단위보다는 슬라이스 단위가 우선순위를 가질 수 있다. . 예를 들어, 시퀀스 파라미터에서 현재 픽쳐에서 블록 매칭을 지원하는 플래그는 sps_curr_pic_BM_enabled_flag일 수 있으며, 픽쳐 파라미터에서 현재 픽쳐에서 블록 매칭을 지원하는 플래그는 pps_curr_pic_BM_enabled_flag일 수 있다. 만약 sps_curr_pic_BM_enabled_flag가 온(on), pps_curr_pic_BM_enabled_flag가 오프(off)일 경우에는, 현재 픽쳐에서 블록 매칭을 지원하지 않을 수 있다. 상기 플래그에 따라 참조 픽쳐 리스트 0 구성에 현재 픽쳐의 포함여부를 결정할 수 있고, 참조 픽쳐 리스트 1 구성에 현재 픽쳐의 포함여부를 결정할 수도 있다.
도 9는 본 발명의 일실시예에 따른 영상 부호화 방법에서 화면 내 예측을 설명하기 위한 예시도이다.
도 9를 참조하면, 본 실시예에 따른 화면 내 예측 방법은, 참조 화소 채움(reference sample padding), 참조 화소 필터링(reference sample filtering), 화면 내 예측(intra prediciton) 및 경계 필터링(boundary filtering)의 일련의 단계들을 포함할 수 있다.
참조 화소 채움 단계는 참조 화소 구성 단계의 예시일 수 있고, 참조 화소 필터링 단계는 참조 화소 필터부로 지칭될 수 있고, 화면 내 예측은 예측 블록 생성 단계와 예측 모드 부호화 단계를 포함할 수 있으며, 경계 필터링은 후처리 필터 단계의 일실시예에 대한 예시일 수 있다.
즉, 본 실시예의 영상 부호화 장치에서 실행되는 화면 내 예측은 참조 화소 구성 단계, 참조 화소 필터링 단계, 예측 블록 생성 단계, 예측 모드 부호화 단계 및 후처리 필터링 단계를 포함할 수 있다. 여러 가지 환경 요인 예컨대, 블록 크기, 블록의 형태, 블록 위치, 예측 모드, 예측 방법, 양자화 파라미터 등에 따라서 전술한 과정들 중 하나 또는 일부는 생략될 수 있고, 다른 과정이 추가될 수도 있으며, 위에 기재된 순서가 아닌 다른 순서로 변경될 수 있다.
전술한 참조 화소 구성 단계, 참조 화소 필터링 단계, 예측 블록 생성 단계, 예측 모드 부호화 단계 및 후처리 필터링 단계는 메모리에 저장되는 소프트웨어 모듈들을 메모리에 연결되는 프로세서가 실행하는 형태로 구현될 수 있다. 따라서 이하의 설명에서는 설명의 편의상 각 단계를 구현하는 소프트웨어 모듈과 이를 실행하는 프로세서의 조합에 의해 생성되는 기능부 또는 이러한 기능부의 기능을 수행하는 구성부로서 각각 참조 화소 구성부, 참조 화소 필터부, 예측 블록 생성부, 예측 모드 부호화부 및 후처리 필터부를 각 단계의 실행 주체로서 지칭하기로 한다.
각 구성요소를 좀더 구체적으로 설명하면, 참조 화소 구성부는 참조 화소 채움을 통해 현재 블록의 예측에 사용될 참조 화소를 구성한다. 참조 화소가 존재하지 않거나 이용 불가한 경우, 참조 화소 채움은 이용가능한 가까운 화소로부터 값을 복사 등의 방법을 하여 참조 화소에 사용할 수 있다. 값의 복사에는 복원된 픽쳐 버퍼(decoded picture buffer, DPB)가 이용될 수 있다.
즉, 화면 내 예측은 현재 픽쳐의 이전에 부호화가 완료된 블록들의 참조 화소를 사용하여 예측을 수행한다. 이를 위해, 참조 화소 구성 단계에서는 현재 블록의 이웃 블록 즉, 왼쪽, 왼쪽 위, 왼쪽 아래, 위쪽, 오른쪽 위 블록들 등과 같은 인접한 화소들을 주로 참조 화소로 사용한다. 상기 참조 화소를 위한 이웃 블록의 후보군은 블록의 부호화 순서를 래스터 스캔(raster scan) 또는 제트 스캔(z-scan)를 따를 경우의 예시일 뿐, 역 제트 스캔(inverse z-scan) 등과 같은 스캔이 부호화 순서 스캔 방식으로 사용될 경우에는 위의 블록들에 추가로 오른쪽, 오른쪽 아래, 아래 블록 등과 같은 인접 화소들도 참조 화소로 사용할 수 있다.
또한, 구현에 따라서 화면 내 예측의 단계별 구성에 따라 바로 인접한 화소 외의 추가적인 화소들이 대체 또는 기존 참조 화소와 혼합되어 사용될 수 있다.
또한, 화면 내 예측의 모드 중 방향성을 갖는 모드로 예측이 되는 경우, 정수 단위의 참조 화소를 선형 보간을 통해 소수 단위의 참조 화소를 생성할 수 있다. 정수 단위 위치에 존재하는 참조 화소를 통해 예측을 수행하는 모드는 수직, 수평, 45도, 135도를 갖는 일부 모드를 포함하며, 위 예측 모드들에 대해서는 소수 단위의 참조 화소를 생성하는 과정은 필요하지 않을 수 있다. 상기 예측 모드를 제외한 다른 방향성을 가진 예측 모드들은 보간되는 참조 화소는 1/2, 1/4, 1/8, 1/16, 1/32, 1/64 와 같이 1/2의 지수승의 보간 정밀도를 가질 수도 있고, 1/2의 배수의 정밀도를 가질 수도 있다. 이는 지원되는 예측 모드의 개수 또는 예측 모드의 예측 방향 등에 따라 보간 정밀도가 결정될 수 있기 때문이다. 픽쳐, 슬라이스, 타일, 블록 등에서 항상 고정적인 보간 정밀도를 지원할 수도 있고, 블록의 크기, 블록의 형태, 지원되는 모드의 예측 방향 등에 따라 적응적인 보간 정밀도가 지원될 수도 있다. 이 때, 모드의 예측 방향은 특정 선 기준(예를 들어, 좌표평면 상의 양<+>의 x축)으로 상기 모드가 가리키는 방향의 기울기 정보 또는 각도 정보로 표현될 수 있다.
보간 방법으로는 바로 인접한 정수 화소를 통해 선형 보간을 수행하기도 하지만 그 외의 보간 방법을 지원할 수 있다. 보간을 위해 1개 이상의 필터 종류 및 탭의 개수 예를 들어, 6-tap 위너 필터, 8-tap 칼만 필터 등을 지원할 수 있으며, 블록의 크기, 예측 방향 등에 따라 어떤 보간을 수행할 것인지를 결정할 수 있다. 또한, 관련 정보는 시퀀스, 픽쳐, 슬라이스, 블록 등의 단위로 전송될 수 있다.
참조 화소 필터부는 참조 화소를 구성한 후 부호화 과정에서 남아있는 열화를 줄여줌으로써 예측 효율을 높여줄 목적으로 참조 화소에 필터링을 수행할 수 있다. 참조 화소 필터부는, 블록의 크기, 형태 및 예측 모드에 따라 필터의 종류 및 필터링의 적용 유무를 묵시적 또는 명시적으로 결정할 수 있다. 즉, 같은 탭(tap)의 필터라도 필터 종류에 따라 필터 계수를 다르게 결정할 수 있다. 예를 들어, [1,2,1]/4, [1,6,1]/8과 같은 3 탭 필터를 사용할 수 있다.
또한, 참조 화소 필터부는, 추가적으로 비트를 보낼지 안 보낼지를 결정하여 필터링 적용 여부를 결정할 수 있다. 예를 들어, 묵시적인 경우, 참조 화소 필터부는 주변 참조 블록에서의 화소들의 특성(분산, 표준편차 등)에 따라 필터링 적용 여부를 판단할 수 있다.
또한, 참조 화소 필터부는, 관련 플래그가 잔차 계수, 화면 내 예측 모드 등에 기설정된 숨김(hiding) 조건을 만족하는 경우, 필터링 적용 여부를 판단할 수 있다. 필터의 탭수는, 예를 들어, 작은 블록(blk)에서는 [1,2,1]/4와 같은 3-tap, 큰 블록(blk)에서는 [2,3,6,3,2]/16과 같은 5-tap으로 설정될 수 있고, 적용 횟수는 필터링을 수행하지 않을 것인지, 1번 필터링할 것인지, 2번 필터링할 것인지 등으로 결정될 수 있다.
또한, 참조 화소 필터부는 현재 블록의 가장 인접한 참조 화소에 대해 기본적으로 필터링을 적용할 수 있다. 가장 인접한 참조 화소 외에 추가적인 참조 화소들 또한 필터링 과정에 고려될 수 있다. 예를 들어, 가장 인접한 참조 화소를 대체하여 추가적인 참조 화소들에 필터링을 적용할 수도 있고, 가장 인접한 참조 화소에 추가적인 참조 화소들을 혼용하여 필터링을 적용할 수도 있다.
상기 필터링은 고정적 또는 적응적으로 적용될 수 있는데, 이는 현재 블록의 크기 또는 이웃 블록의 크기, 현재 블록 또는 이웃 블록의 부호화 모드, 현재 블록과 이웃 블록의 블록 경계 특성(예를 들어, 부호화 단위의 경계인지 변환 단위의 경계인지 등), 현재 블록 또는 이웃 블록의 예측 모드 또는 방향, 현재 블록 또는 이웃 블록의 예측 방식, 양자화 파라미터 등의 요인 중에서 최소 하나 이상의 요인 또는 이들의 조합에 따라 결정이 될 수 있다. 이에 대한 결정은 부호화기 또는 복호화기에 동일한 설정을 가질 수 있고(묵시적), 부호화 비용 등을 고려하여 결정될 수도 있다(명시적). 기본적으로 적용되는 필터는 저역통과 필터(low pass filter)이며, 위에 명시된 여러 요인에 따라 필터 탭수, 필터 계수, 필터 플래그 부호화 여부, 필터 적용 횟수 등이 결정될 수 있으며, 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스, 블록 등의 단위에서 설정이 가능하며, 관련 정보를 복호화기에 전송할 수 있다.
예측 블록 생성부는 화면 내 예측에 있어서 참조 화소를 통해 외삽 또는 보외(extrapolation) 방식이나, 참조 화소의 평균값(DC) 또는 평면(planar) 모드와 같은 내삽(interpolation) 방식이나, 참조 화소의 복사(copy) 방식으로 예측 블록을 생성할 수 있다. 참조 화소의 복사의 경우 하나의 참조 화소를 복사하여 하나의 이상의 예측 화소를 생성할 수도 있고, 하나 이상의 참조 화소를 복사하여 하나 이상의 예측 화소를 생성할 수 있으며, 복사한 참조 화소의 개수는 복사된 예측 화소의 개수와 동일하거나 적을 수 있다.
또한, 상기 예측 방식에 따라 방향성 예측 방식과 비방향성 예측 방식으로 분류가 가능하며, 상세하게는 방향성 예측 방식은 직선 방향성 방식과 곡선 방향성 방식으로 분류가 가능하다. 직선 방향성 방식은 외삽 또는 보외 방식을 차용하나 예측 블록의 화소는 예측 방향 선상에 놓인 참조 화소를 통해 생성하며, 곡선 방향성 방식은 외삽 또는 보외 방식을 차용하나 예측 블록의 화소는 예측 방향 선상에 놓인 참조 화소를 통해 생성하되 블록의 세부 방향성(예를 들어, 에지<Edge>)를 고려하여 화소 단위의 부분적인 예측 방향의 변경이 허용되는 방식을 의미한다. 본 발명의 영상 부호화 및 복호화 방법에서 방향성 예측 모드의 경우 직선 방향성 방식 위주로 설명을 할 것이다. 또한, 상기 방향성 예측 방식의 경우 인접한 예측 모드 간의 간격은 균등하거나 비균등일 수 있으며, 이는 블록의 크기 또는 형태에 따라 결정될 수 있다. 예를 들어, 블록 분할부를 통해 현재 블록이 M×N의 크기와 형태를 갖는 블록을 획득했을 때, M과 N이 같을 경우에는 예측 모드 간의 간격은 균등일 수 있으며, M과 N이 다를 경우에는 예측 모드 간의 간격은 비균등일 수 있다. 다른 예로, M이 N보다 큰 경우에는 수직 방향성을 갖는 모드들은 수직 모드(90도)에 가까운 예측 모드 사이에는 더 세밀한 간격을 할당하고, 수직 모드에 먼 예측 모드에는 넓은 간격을 할당할 수 있다. N이 M보다 큰 경우에는 수평 방향성을 갖는 모드들은 수평 모드(180도)에 가까운 예측 모드 사이에는 더 세밀한 간격을 할당하고, 수평 모드에 먼 예측 모드에는 넓은 간격을 할당할 수 있다. 위의 예들은 전술한 경우에만 특정하는 것은 아니며 서로의 조건이 뒤바뀌는 경우도 포함할 수 있고, 다른 경우의 예로 변형 또한 가능하다. 이 때, 예측 모드 간의 간격은 각 모드의 방향성을 나타내는 수치 기반으로 계산될 수 있으며, 예측 모드의 방향성은 방향의 기울기 정보 또는 각도 정보로 수치화될 수 있다.
또한, 위의 방법 외에 공간적인 상관성을 이용하는 다른 방법 등을 포함하여 예측 블록을 생성할 수 있다. 예를 들어, 현재 픽쳐를 참조 픽쳐 삼아 움직임 탐색 및 보상과 같은 화면 간 예측 방식을 이용한 참조 블록을 예측 블록으로 생성할 수 있다. 예측 블록 생성 단계는 상기 예측 방식에 따라 참조 화소를 사용하여 예측 블록을 생성할 수 있다. 즉, 상기 예측 방식에 따라 기존의 화면 내 예측 방식의 외삽, 내삽, 복사, 평균 등의 방향성 예측 또는 비방향성 예측 방식을 통해 예측 블록을 생성할 수 있고, 화면 간 예측 방식을 사용하여 예측 블록을 생성할 수 있으며, 그 외의 추가적인 방법도 사용될 수 있다.
상기 화면 내 예측 방식은 부호화기 또는 복호화기의 동일한 설정 하에 지원될 수 있으며, 슬라이스 타입, 블록의 크기, 블록의 형태 등에 따라 결정될 수 있다. 화면 내 예측 방식은 상기 언급된 예측 방식 중 최소 하나 이상의 방식 또는 이들의 조합에 따라 지원될 수 있다. 화면 내 예측 모드는 상기 지원되는 예측 방식에 따라 구성될 수 있다. 지원되는 화면 내 예측 모드의 개수는 상기 예측 방식, 슬라이스 타입, 블록의 크기, 블록의 형태 등에 따라 결정될 수 있다. 상기 관련 정보들은 시퀀스, 픽쳐, 슬라이스, 블록 등의 단위에서 설정 및 전송이 가능하다.
예측 모드 부호화에 의해 실행되는 예측 모드 부호화 단계는 부호화 비용 측면에서 각 예측 모드에 따른 부호화 비용이 최적인 모드를 현재 블록의 예측 모드로 결정할 수 있다.
일례로, 예측 모드 부호화부는 예측 모드 비트를 줄이기 위한 목적으로 하나 이상의 이웃 블록의 모드를 현재 블록 모드 예측에 이용할 수 있다. 현재 블록의 모드와 동일할 확률이 높은 모드(most_probable_mode, MPM) 후보군으로 포함할 수 있는데, 이웃 블록의 모드들은 위의 후보군에 포함될 수 있다. 예를 들어, 현재 블록의 왼쪽, 왼쪽 위, 왼쪽 아래, 위쪽, 오른쪽 위 등의 블록의 예측 모드를 위의 후보군에 포함할 수 있다.
예측 모드의 후보군은 이웃 블록의 위치, 이웃 블록의 우선순위, 분할 블록에서의 우선순위, 이웃 블록의 크기 또는 형태, 기설정된 특정 모드, (색차 블록인 경우) 휘도 블록의 예측 모드 등의 요인 중 최소 하나 이상의 요인 또는 그들의 조합에 따라 구성될 수 있으며, 관련 정보는 시퀀스, 픽쳐, 슬라이스, 블록 등의 단위로 전송할 수 있다.
예를 들어, 현재 블록과 이웃한 블록이 2개 이상의 블록으로 분할되어 있을 경우, 분할된 블록 중 어느 블록의 모드를 현재 블록의 모드 예측 후보로 포함할 지는 부호화기 또는 복호화기의 동일한 설정하에 결정할 수 있다. 예를 들어, 현재 블록(M×M)의 이웃 블록 중 왼쪽 블록은 블록 분할부에서 쿼드 트리 분할을 수행하여 분할 블록이 3개로 구성되어 있으며 위에서 아래 방향으로 M/2×M/2, M/4×M/4, M/4×M/4의 블록을 포함할 경우, 블록 크기 기준으로 M/2×M/2 블록의 예측 모드를 현재 블록의 모드 예측 후보로 포함할 수 있다. 다른 예로, 현재 블록(N×N)의 이웃 블록 중 위쪽 블록은 블록 분할부에서 바이너리 트리 분할을 수행하여 분할 블록이 3개로 구성되어 있으며 왼쪽에서 오른쪽 방향으로 N/4×N, N/4×N, N/2×N의 블록을 포함할 경우, 기설정된 순서(왼쪽에서 오른쪽으로 우선순위가 할당됨)에 따라 왼쪽에서 첫번째 N/4×N 블록의 예측 모드를 현재 블록의 모드 예측 후보로 포함할 수 있다.
다른 예로, 현재 블록과 이웃한 블록의 예측 모드가 방향성 예측 모드일 경우, 해당 모드의 예측 방향과 인접한 예측 모드(상기 모드의 방향의 기울기 정보 또는 각도 정보 측면)를 현재 블록의 모드 예측 후보군에 포함할 수 있다. 또한, 기설정된 모드(planar, DC, 수직, 수평 등)은 이웃 블록의 예측 모드 구성 또는 조합에 따라 우선적으로 포함될 수 있다. 또한, 이웃 블록의 예측 모드 중 발생 빈도가 높은 예측 모드를 우선적으로 포함할 수 있다. 상기 우선순위는 현재 블록의 모드 예측 후보군에 포함될 가능성뿐만 아니라 상기 후보군 구성에서도 더 높은 우선 순위 또는 인덱스(즉, 이진화 과정에서 적은 비트를 할당 받을 확률이 높음을 의미)를 할당 받을 가능성을 의미할 수 있다.
다른 예로, 현재 블록의 모드 예측 후보군의 최대치가 k개이고, 왼쪽 블록은 현재 블록의 세로 길이보다 길이가 작은 m개의 블록으로 구성되며, 위쪽 블록은 현재 블록의 가로 길이보다 길이가 작은 n개의 블록으로 구성되면, 이웃 블록들의 분할 블록 합(m+n)이 k보다 클 때 기설정된 순서(왼쪽에서 오른쪽, 위쪽에서 아래쪽)에 따라 후보군을 채울 수 있고, 이웃 블록 분할들의 분할 블록 합(m+n)이 후보군의 최대치(k)보다 클 경우, 상기 이웃 블록(왼쪽 블록, 위쪽 블록)의 예측 모드에 상기 이웃 블록 위치 외 다른 이웃 블록(예를 들어, 왼쪽 아래, 왼쪽 위, 오른쪽 위 등)과 같은 블록의 예측 모드도 현재 블록의 모드 예측 후보군에 포함될 수 있다. 위의 예들은 전술한 경우에만 특정하는 것은 아니며 서로의 조건이 뒤바뀌는 경우도 포함할 수 있고, 다른 경우의 예로 변형 또한 가능하다.
이와 같이, 현재 블록의 모드의 예측을 위한 후보 블록은 특정 블록 위치에만 한정하지 않으며 왼쪽, 왼쪽 위, 왼쪽 아래, 위쪽, 오른쪽 위에 위치하는 블록 중 최소 하나 이상의 블록으로부터 예측 모드 정보를 활용할 수 있으며, 상기 예에서와 같이 여러 요인들을 고려하여 현재 블록의 예측 모드 후보군을 구성할 수 있다.
예측 모드 부호화부 현재 블록의 모드와 동일할 확률이 높은 모드(MPM) 후보군(본 예에서 후보군 1로 지칭함)과 그렇지 않은 모드 후보군(본 예에서 후보군 2로 지칭함)으로 분류할 수 있으며, 현재 블록의 예측 모드가 상기 후보군들 중 어느 후보군에 속하는지에 따라 예측 모드 부호화 과정이 달라질 수 있다. 전체 예측 모드는 후보군 1의 예측 모드와 후보군 2의 예측 모드의 합으로 구성될 수 있으며, 후보군 1의 예측 모드 개수와 후보군 2의 예측 모드 개수는 전체 예측 모드의 개수, 슬라이스 타입, 블록의 크기, 블록의 형태 등의 요인 중 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수 있다. 상기 후보군에 따라 동일한 이진화를 적용하거나 다른 이진화를 적용할 수 있다. 예를 들어, 후보군 1에는 고정 길이 이진화를, 후보군 2에는 단삭 절단형 이진화를 적용할 수도 있다. 위의 설명에서 후보군의 개수를 2개로 예를 들었지만, 현재 블록의 모드와 동일할 확률이 높은 모드 제 1 후보군, 현재 블록의 모드와 동일할 확률이 높은 모드 제 2 후보군, 그렇지 않은 모드 후보군 등과 같이 확장이 가능하며, 이의 변형 또한 가능하다.
후처리 필터부에 의해 실행되는 후처리 필터링 단계는, 현재 블록과 이웃 블록의 경계에 인접한 참조 화소와 인접한 현재 블록 내의 화소 간에 상관성이 높은 특성을 고려하여 이전 과정에서 생성한 예측 블록 중 일부 예측 화소는 경계에 인접한 하나 이상의 참조 화소와 하나 이상의 상기 예측 화소를 필터링하여 생성된 값으로 대체할 수 있고, 상기 블록의 경계에 인접한 참조 화소들간의 특성을 수치화한 값(예를 들어, 화소값의 차이, 기울기 정보 등)을 필터링 과정에 적용하여 생성된 값으로 상기 예측 화소를 대체할 수 있고, 위의 방법 외에 비슷한 목적(참조 화소를 통해 예측 블록의 일부 예측 화소를 보정)을 갖는 다른 방법 등이 추가될 수 있다. 후처리 필터부에 있어서, 필터의 종류 및 필터링 적용 유무는 묵시적 또는 명시적으로 결정될 수 있으며, 후처리 필터부에 사용되는 참조 화소와 현재 화소의 위치 및 개수, 그리고 적용되는 예측 모드의 종류 등은 부호화기 또는 복호화기에서 설정 가능하고, 관련 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송 가능하다.
또한, 후처리 필터링 단계에서는 상기 블록 경계 필터링(boundary filtering)과 같이 예측 블록 생성 후 추가적인 후처리 과정을 진행할 수 있다. 또한, 잔차 신호 획득 후 변환, 양자화 과정 및 그 역과정을 거쳐서 얻게된 잔차 신호와 예측 신호를 합하여 복원된 현재 블록을 위의 경계 필터링과 비슷하게 인접한 참조 블록의 화소의 특성을 고려하여 후처리 필터링을 수행할 수도 있다.
최종적으로 전술한 과정을 통해 예측 블록을 선택 또는 획득하게 되며, 이 과정에서 나오는 정보는 예측 모드 관련 정보를 포함할 수 있고, 예측 블록의 획득 후 잔차 신호의 부호화를 위해 변환부(210)에 전달할 수 있다.
도 10은 본 발명의 일실시예에 따른 영상 부호화 방법에서 P 슬라이스나 B 슬라이스에서의 예측 원리를 설명하기 위한 예시도이다.
도 10을 참조하면, 본 실시예에 따른 영상 부호화 방법은, 모션 예측(motion estimation module) 및 보간(interpolation) 단계들을 포함할 수 있다. 모션 예측 단계에서 생성되는 모션 벡터, 참조 픽쳐 인덱스, 참조 방향에 대한 정보는 보간 단계로 전달될 수 있다. 모션 예측 단계와 보간 단계에서는 복원된 픽쳐 버퍼(decoded picture buffer, DPB)에 저장되는 값을 이용할 수 있다.
즉, 영상 부호화 장치는, 이전의 부호화된 픽쳐들에서 현재 블록과 유사한 블록을 찾기 위해 모션 예측(motion estimation)을 실행할 수 있다. 또한, 영상 부호화 장치는 소수 단위의 정밀도보다 정밀한 예측을 위해 참조 픽쳐의 내삽(interpolation)을 실행할 수 있다. 최종적으로 영상 부호화 장치는 예측 변수(predictor)를 통해 예측 블록을 획득하게 되며, 이 과정에서 나오는 정보는 움직임 벡터(motion vector), 참조 픽쳐 인덱스(reference picture index 또는 reference index), 참조 방향(reference direction) 등이 있으며, 이후 잔차 신호 부호화를 진행할 수 있다.
본 실시예에서는 P 슬라이스나 B 슬라이스에서도 화면 내 예측을 수행하기 때문에 화면 간 예측과 화면 내 예측을 지원하는 도 9와 같은 조합 방식의 구현이 가능하다.
도 11은 예측 블록을 획득하는 과정을 설명하기 위한 예시도이다.
도 11을 참조하면, 본 실시예에 따른 영상 부호화 방법은, 참조 화소 채움(reference sample padding), 참조 화소 필터링(reference sample filtering), 화면 내 예측(intra prediction), 경계 필터링(boundary filtering), 모션 예측(motion estimation), 및 보간(interpolation)의 단계들을 포함할 수 있다.
영상 부호화 장치는, 현재 픽쳐에서 블록 매칭을 지원하는 경우, I 슬라이스에서의 예측 방식은 도 9에 도시한 구성이 아닌 도 11에 도시한 구성으로 구현 가능하다. 즉, 영상 부호화 장치는 I 슬라이스에서 예측 모드뿐만 아니라 P 슬라이스나 B 슬라이스에서만 발생하는 움직임 벡터, 참조 픽쳐 인덱스, 참조 방향 등의 정보를 예측 블록 생성에 이용할 수 있다. 다만, 참조 픽쳐가 현재라는 특성으로 인해 부분 생략 가능한 정보가 존재할 수 있다. 일례로, 참조 픽쳐가 현재 픽쳐인 경우 참조 픽쳐 인덱스, 참조 방향은 생략 가능하다.
또한, 영상 부호화 장치는, 내삽(interpolation)을 적용하는 경우, 영상의 특성상 예컨대 컴퓨터 그래픽 등의 인공적인 영상의 특성상 소수 단위까지의 블록 매칭이 필요하지 않을 수 있기 때문에 이에 대한 수행 여부도 부호화기에서 설정할 수 있고, 이에 대해서 시퀀스, 픽쳐, 슬라이스 등의 단위 설정도 가능하다.
예를 들어, 영상 부호화 장치는, 부호화기의 설정에 따라 화면 간 예측에 사용되는 참조 픽쳐들의 내삽을 수행하지 않을 수 있고, 현재 픽쳐에서 블록 매칭을 하는 경우에만 내삽을 수행하지 않는 등의 다양한 설정을 할 수 있다. 즉, 본 실시예의 영상 부호화 장치는 참조 픽쳐들의 내삽 수행 여부에 대해 설정할 수 있다. 이 때, 참조 픽쳐 리스트를 구성하는 모든 참조 픽쳐 또는 일부 참조 픽쳐들에 내삽 수행 여부를 결정할 수 있다. 일례로, 영상 부호화 장치는, 어떤 현재 블록에서는 참조 블록이 존재하는 영상의 특성이 인공적인 영상이라 소수 단위로 블록 매칭을 할 필요가 없을 때에는 내삽을 수행하지 않고, 자연 영상이라 소수 단위로 블록 매칭을 할 필요가 있을 때는 내삽을 수행하도록 동작할 수 있다.
또한, 영상 부호화 장치는, 블록 단위로 내삽을 수행한 참조 픽쳐에서 블록 매칭 적용 여부에 대한 설정이 가능하다. 예를 들어, 자연 영상과 인공 영상이 혼합되어 있을 경우 참조 픽쳐에 내삽을 수행하되 인공적인 영상의 부분을 탐색하여 최적의 움직임 벡터를 얻을 수 있는 경우에는 일정 단위(여기에서 정수 단위라고 가정)로 움직임 벡터를 표현할 수 있으며, 또한 선택적으로 자연 영상의 부분을 탐색하여 최적의 움직임 벡터를 얻을 수 있는 경우에는 다른 일정 단위(여기에서는 1/4 단위라고 가정)로 움직임 벡터를 표현할 수 있다.
도 12는 본 발명의 일실시예에 따른 영상 부호화 방법의 주요 과정을 코딩 단위(coding unit)에서의 신택스로 설명하기 위한 예시도이다.
도 12를 참조하면, curr_pic_BM_enabled_flag는 현재 픽쳐에서 블록 매칭을 허용하는 플래그를 의미하고 시퀀스, 픽쳐 단위에서 정의 및 전송될 수 있으며, 이 때 현재 픽쳐에서 블록 매칭을 수행하여 예측 블록 생성하는 과정은 화면 간 예측을 통해 동작하는 경우를 의미할 수 있다. 그리고 잔차 신호를 부호화하지 않는 화면 간 기술인 cu_skip_flag는, I 슬라이스를 제외한 P 슬라이스나 B 슬라이스에서만 지원되는 플래그라고 가정할 수 있다. 그 경우, curr_pic_BM_enabled_flag가 온(on)이 되는 경우에 I 슬라이스에서도 블록 매칭(block maching, BM)을 화면 간 예측 모드에서 지원할 수가 있다.
즉, 본 실시예의 영상 부호화 장치는 현재 픽쳐에 블록 매칭을 통해 예측 블록을 생성하는 경우에 스킵(skip)을 지원할 수 있으며, 블록 매칭 외의 화면 내 기술의 경우에도 스킵을 지원할 수 있다. 그리고 조건에 따라 I 슬라이스에서 스킵을 지원하지 않을 수도 있다. 이러한 스킵 여부는 부호화기 설정에 따라 결정될 수 있다.
일례로, I 슬라이스에서 스킵을 지원할 경우, 특정 플래그인 if(cu_skip_flag)를 통해 예측 단위인 prediction_unit()으로 연결하여 잔차신호를 부호화하지 않고 블록 매칭을 통해 예측 블록을 복원 블록으로 바로 복원할 수 있다. 또한, 영상 부호화 장치는 현재 픽쳐에서 블록 매칭을 통해 예측 블록을 사용하는 방법을 화면 간 예측 기술로 분류하고, 그러한 구분을 특정 플래그인 pred_mode_flag를 통해 처리할 수 있다.
즉, 영상 부호화 장치는, pred_mode_flag가 0이면 예측 모드를 화면 간 예측 모드(MODE_INTER)로 설정하고, 1이면 화면 내 예측 모드(MODE_INTRA)로 설정할 수 있다. 이것은 기존과 유사한 화면 내 기술이지만 기존의 구조와의 구분을 위해 I 슬라이스에서 화면 간 기술 또는 화면 내 기술로 분류될 수 있다. 즉, 본 실시예의 영상 부호화 장치는, I 슬라이스에서 시간적인 상관성을 이용하지 않지만 시간적인 상관성의 구조를 사용할 수 있다. part_mode는 부호화 단위에서 분할되는 블록의 크기 및 형태에 대한 정보를 의미한다. . 예를 들어, 시퀀스 파라미터에서 현재 픽쳐에서 블록 매칭을 지원하는 플래그는 sps_curr_pic_BM_enabled_flag일 수 있으며, 픽쳐 파라미터에서 현재 픽쳐에서 블록 매칭을 지원하는 플래그는 pps_curr_pic_BM_enabled_flag일 수 있다. 만약 sps_curr_pic_BM_enabled_flag가 온(on), pps_curr_pic_BM_enabled_flag가 오프(off)일 경우에는, 현재 픽쳐에서 블록 매칭을 지원하지 않을 수 있다. 상기 플래그에 따라 참조 픽쳐 리스트 0 구성에 현재 픽쳐의 포함여부를 결정할 수 있고, 참조 픽쳐 리스트 1 구성에 현재 픽쳐의 포함여부를 결정할 수도 있다.
도 13은 현재 픽쳐에서 블록매칭을 통해 예측 블록을 생성할 경우, 화면 간 예측에서와 같이 대칭형(symmetric type) 분할 또는 비대칭형(asymmetric type) 분할을 지원하는 예를 설명하기 위한 예시도이다.
도 13을 참조하면, 본 실시예에 따른 영상 부호화 방법은, 현재 픽쳐에서 블록 매칭을 통해 예측 블록을 생성하는 경우, 화면 간 예측에서와 같이 2N×2N, 2N×N, N×2N와 같은 대칭형(symmetric) 분할을 지원하거나, nL×2N, nR×2N, 2N×nU, 2N×nD와 같은 비대칭형(asymmetric) 분할을 지원할 수 있다. 이는 블록 분할부의 분할 방식에 따라 다양한 블록 크기 및 형태가 결정될 수 있다.
도 14는 화면 간 예측(Inter)에서 2N×2N, N×N을 지원할 수 있음을 설명하기 위한 예시도이다.
도 14를 참조하면, 본 실시예에 따른 영상 부호화 방법은, 기존의 화면 내 예측에 사용하는 예측 블록 형태와 같이 2N×2N 및 N×N을 지원할 수 있다. 이는 블록 분할부에서 쿼드트리 분할 방식 또는 미리 정의된 소정의 블록 후보군에 따른 분할 방식 등을 통해 정사각 형태를 지원한 예이며, 화면 내 예측에서도 바이너리 트리 분할 방식 또는 미리 정의돈 소정의 블록 후보군에 직사각 형태를 추가하여 다른 블록 형태 또한 지원할 수 있으며, 이에 대한 설정은 부호화기에서 설정이 가능하다. 또한, 화면 내 예측 중 현재 픽쳐에 블록 매칭을 할 경우에만 스킵(skip)을 적용할 것인지, 기존의 화면 내 예측에도 스킵을 적용할 것인지, 그 외의 새로운 화면 내 예측에 스킵을 적용할 것인지를 부호화기에서 설정 가능하다. 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송될 수 있다.
감산부(205, 도 2 참조)는 부호화할 현재 블록의 화소값으로부터 예측부(200)로부터 생성되는 예측 블록의 화소값들을 감산하여 화소 차이값을 도출함으로써, 잔차 블록을 생성할 수 있다.
변환부(210, 도 2 참조)는 감산부(205)에서 현재 블록과 화면 내 예측 또는 화면 간 예측을 통해 생성된 예측 블록과의 차분치인 잔차 블록을 전달받아 주파수 영역으로 변환한다. 변환 과정을 통해 잔차 블록의 각 화소는 변환 블록의 변환 계수에 대응된다. 변환 블록의 크기 및 형태는 부호화 단위와 같거나 작은 크기를 가질 수 있다. 또한, 변환 블록의 크기 및 형태는 예측 단위와 같을 수도 있고 작을 수도 있다. 영상 부호화 장치는 여러 예측 단위를 묶어서 변환 처리를 수행할 수 있다.
변환 블록의 크기 또는 형태는 블록 분할부를 통해 결정될 수 있으며, 블록 분할에 따라 정사각 형태 또는 직사각 형태의 변환을 지원할 수 있다. 부호화기 또는 복호화기에서 지원되는 변환 관련 설정 (지원되는 변환 블록의 크기, 형태 등)에 따라 상기 블록 분할 동작에 영향을 줄 수 있다.
상기 변환 블록의 크기 및 형태의 후보별 부호화 비용에 따라 각 변환 블록의 크기 및 형태가 결정되고, 결정된 각 변환 블록의 영상 데이터 및 결정된 각 변환 블록의 크기 및 형태 등의 분할 정보들을 부호화할 수 있다.
변환은 1차원 변환 매트릭스에 의해 변환될 수 있다. (DCT, DST 등) 수평, 수직 단위로 각 변환 매트릭스가 적응적으로 사용될 수 있다. 적응적 사용의 예로는 블록의 크기, 블록의 형태, 블록의 종류(휘도 및 색차), 부호화 모드, 예측 모드 정보, 양자화 파라미터, 이웃 블록의 부호화 정보 등의 여러 요인으로 결정될 수 있다.
예를 들어, 화면내 예측의 경우, 예측 모드가 수평일 경우에는 수직 방향으로는 DCT 기반의 변환 매트릭스가, 수평 방향으로는 DST 기반의 변환 매트릭스가 사용될 수도 있다. 수직일 경우에는 수평 방향으로는 DCT 기반의 변환 매트릭스가, 수직 방향으로는 DST 기반의 변환 매트릭스가 사용될 수 있다. 변환 매트릭스는 위의 설명에서 나온 것에 한정되지 않는다. 이에 대한 정보는 묵시적 또는 명시적인 방법을 사용하여 결정될 수 있으며, 블록의 크기, 블록의 형태, 부호화 모드, 예측 모드, 양자화 파라미터, 이웃 블록의 부호화 정보 등에 요인 중 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수 있으며, 상기 관련 정보는 시퀀스, 픽쳐, 슬라이스, 블록 등의 단위로 전송할 수 있다.
여기서, 명시적인 방법을 사용을 할 경우를 고려하면, 수평 및 수직 방향에 대한 2개 이상의 변환 매트릭스를 후보군으로 두고 있을 경우, 각 방향마다 어떤 변환 매트릭스를 사용했는지에 대한 정보를 각각 보낼 수도 있고, 또는 수평, 수직 방향에 대해 각각 어떤 변환 매트릭스를 사용했는지에 대한 각 하나의 쌍으로 묶어 2개 이상의 쌍을 후보군으로 두어 어떤 변환 매트릭스를 수평, 수직 방향에서 사용했는지에 대한 정보를 전송할 수도 있다.
또한, 영상의 특성을 고려하여 부분적인 변환 또는 전체적인 변환을 생략할 수 있다. 예를 들면, 수평 또는 수직 성분 둘 중 하나 또는 둘다 생략할 수 있다. 화면내 예측 또는 화면간 예측이 잘 이뤄지지 않아 현재 블록과 예측 블록의 차이가 크게 발생할 경우(즉, 잔차 성분이 클 때)에 이를 변환할 시 그에 따른 부호화 손실이 커질 수 있기 때문이다. 이는 부호화 모드, 예측 모드 정보, 블록의 크기, 블록의 형태, 블록의 종류(휘도 및 색차), 양자화 파라미터, 이웃 블록의 부호화 정보 등의 요인 중 최소 하나 이상의 요인 또는 이들의 조합에 따라 결정될 수 있다. 위의 조건에 따라 묵시적 또는 명시적인 방법을 사용하여 이를 표현할 수 있고, 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송이 가능하다.
양자화부(215, 도 2 참조)는 변환부(210)에서 변환된 잔차 성분의 양자화를 수행한다. 양자화 파라미터는 블록 단위로 결정이 되며, 양자화 파라미터는 시퀀스, 픽쳐, 슬라이스, 블록 등의 단위로 설정될 수 있다.
일례로, 양자화부(215)는 현재 블록의 왼쪽, 왼쪽 위, 위쪽, 오른쪽 위, 왼쪽 아래 등의 이웃 블록으로부터 유도된 1개 또는 2개 이상의 양자화 파라미터를 사용하여 현재 양자화 파라미터를 예측할 수 있다.
또한, 양자화부(215)는 이웃 블록으로부터 예측한 양자화 파라미터가 존재하지 않는 경우 즉, 블록이 픽쳐, 슬라이스 등의 경계에 있는 경우, 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송된 기본 파라미터와의 차분치를 출력 혹은 전송할 수 있다. 이웃 블록으로부터 예측한 양자화 파라미터가 존재하는 경우, 해당 블록의 양자화 파라미터를 사용하여 차분치를 전송할 수도 있다.
양자화 파라미터를 유도할 블록의 우선순위는 미리 설정할 수도 있고, 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송할 수 있다. 잔차 블록을 데드존 균일 경계 양자화(DZUTQ: Dead Zone Uniform Threshold Quantization), 양자화 가중치 매트릭스(Quantization weighted matrix) 또는 이를 개량한 기법을 통해 양자화할 수 있다. 이는 1개 이상의 양자화 기법을 후보로 둘 수 있으며 부호화 모드, 예측 모드 정보 등에 의해 결정될 수 있다.
예를 들어, 양자화부(215)는 양자화 가중치 매트릭스를 화면 간 부호화, 화면 내 부호화 단위 등에 적용하기 위해 설정해 둘 수 있고, 또한 화면 내 예측 모드에 따라 다른 가중치 매트릭스를 둘 수도 있다. 양자화 가중치 매트릭스는 M×N의 크기로 블록의 크기가 양자화 블록 크기와 같다고 가정할 때, 각 주파수 성분의 위치마다 양자화 계수를 달리하여 구성할 수 있다. 그리고 양자화부(215)는 기존의 여러 양자화 방법 중 택일할 수도 있고, 부호화기 또는 복호화기의 동일한 설정하에 사용될 수도 있다. 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송 가능하다.
한편, 도 2, 3에 도시한 역양자화부(220,315) 및 역변환부(225,320)는 위의 변환부(210) 및 양자화부(215)에서의 과정을 역으로 수행하여 구현될 수 있다. 즉, 역양자화부(220)는 양자화부(215)에서 생성된 양자화된 변환 계수를 역양자화할 수 있고, 역변환부(225)는 역양자화된 변환 계수를 역변환하여 복원된 잔차 블록을 생성할 수 있다.
도 2, 3에 도시한 가산부(230, 324)는 상기 복원된 잔차 블록의 화소값에 예측부로부터 생성되는 예측 블록의 화소값을 가산하여 복원 블록이 생성될 수 있다. 복원 블록은 부호화 및 복호화 픽쳐 버퍼(240, 335)에 저장되어 예측부 및 필터부에 제공될 수 있다.
필터부는 복원 블록에 디블록킹 필터(Deblocking Filter), 적응적 샘플 오프셋(Sample Adaptive Offset, SAO), 적응적 루프 필터(Adaptive Loop Filter, ALF) 등과 같은 인루프 필터를 적용할 수 있다. 디블록킹 필터는 부호화 및 복호화 과정에서 발생하는 블록 경계 사이의 왜곡을 제거하기 위해, 복원 블록을 필터링할 수 있다. SAO는 잔차 블록에 대하여, 화소 단위로 원본 영상과 복원 영상과의 차이를 오프셋으로 복원해주는 필터 과정이다. ALF는 예측 블록과 복원 블록 사이의 차이를 최소화하기 위해 필터링을 수행할 수 있다. ALF는 디블록킹 필터를 통해 복원된 블록과 현재 블록의 비교값을 기초로 필터링을 수행할 수 있다.
엔트로피 부호화부(245, 도 2 참조)는 양자화부(215)를 통해 양자화된 변환 계수들을 엔트로피 부호화할 수 있다. 예를 들어, 컨텐스트 적응 가변 길이 코딩(CAVLC), 컨텍스트 적응 2진 산술 코딩(CABAC), 구문 기반 컨텍스트 적응 2진 산술 코딩(SBAC), 확률 간격 파티셔닝 엔트로피(PIPE) 코딩 등의 기법을 수행할 수 있다.
엔트로피 부호화부(245)는 양자화 계수를 부호화한 비트열과 부호화된 비트열을 복호화하는데 필요한 다양한 정보들을 부호화 데이터에 포함할 수 있다. 부호화 데이터는 부호화된 블록 형태, 양자화 계수 및 양자화 블록이 부호화된 비트열 및 예측에 필요한 정보 등을 포함할 수 있다. 양자화 계수의 경우 2차원의 양자화 계수를 1차원으로 스캐닝할 수 있다. 양자화 계수는 영상의 특성에 따라 분포도가 달라질 수 있다. 특히, 화면 내 예측의 경우 계수의 분포가 예측 모드에 따라 특정한 분포를 가질 수 있기 때문에 스캔 방법을 달리 설정할 수 있다.
또한, 엔트로피 부호화부(245)는 부호화하는 블록의 크기에 따라 달리 설정될 수 있다. 스캔 패턴은 지그재그, 대각선, 래스터(raster) 등 다양한 패턴들 중 적어도 어느 하나 이상으로 미리 설정하거나 후보로 설정할 수 있으며, 부호화 모드, 예측 모드 정보 등에 의해 결정될 수 있고, 부호화기와 복호화기의 동일한 설정하에 사용될 수 있다. 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송 가능하다.
엔트로피 부호화부(245)에 입력되는 양자화된 블록(이하, 양자화 블록)의 크기는 변환 블록의 크기와 같거나 작을 수 있다. 또한, 양자화 블록은 2개 이상의 서브 블록으로 분할될 수 있으며, 분할된 경우에 분할 블록에서 스캔 패턴은 기존의 양자화 블록과 동일하게 설정할 수도 있고, 다르게 설정할 수도 있다.
예를 들어, 기존의 양자화 블록의 스캔 패턴을 지그재그라고 할 경우, 서브 블록 모두에 지그재그를 적용할 수도 있고, 또는 DC 성분을 포함하는 블록의 좌측 상단에 위치하는 서브블록에 지그재그 패턴을 적용하고, 그 이외의 블록에는 대각선 패턴을 적용할 수 있다. 이 역시 부호화 모드, 예측 모드 정보 등에 따라 결정될 수 있다.
또한, 엔트로피 부호화부(245)에서 스캔 패턴의 시작 위치는 기본적으로 좌측 상단으로부터 시작을 하나, 영상의 특성에 따라 우측 상단, 우측 하단 또는 좌측 하단에서 시작할 수 있으며, 2개 이상의 후보군 중 어느 것을 선택했는지에 대한 정보를 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송할 수 있다. 부호화 기술로서는 엔트로피 부호화 기술이 사용될 수 있으나 이에 한정되지 않는다.
한편, 도 2 및 도 3에 도시한 역양자화부(220)의 역양자화 및 역변환부(225)의 역변환은 위의 양자화부(215)의 양장화 및 변환부(210)의 변환 구조를 반대로 구성하고 기본적인 필터부(235, 330)를 조합하는 것으로 구현 가능하다.
한편, 영상 데이터의 부호화 또는 복호화 방법에 있어서, 데이터-레벨 병렬화는 병렬화하는 프로그램에서 처리할 데이터를 여러 단위로 분할한 후 각각 분할된 데이터를 서로 다른 코어 또는 스레드에 할당하여 동일한 작업을 병렬적으로 수행하는 방식이다. 이론적으로 병렬화는 코어 또는 스레드의 성능 한계 내에서 병렬화할수록 영상 처리 속도가 빨라지기 때문에 성능에 중요한 요소 중 하나이다.
이러한 병렬 처리의 데이터 단위는 프레임, 슬라이스, 블록 단위의 병렬화가 자주 사용되고 있다. 화면 간 예측을 이와 같은 병렬 처리로 수행한다고 할 경우를 전제로 하여 이하 설명한다.
도 15는 현재 픽쳐 내의 참조 블록을 이용한 블록 매칭을 통해 예측 블록을 생성하는 예시도이다.
도 15를 참조하면, 가운데 네 개의 블록을 부호화할 현재 블록들이라고 할 수 있고, 화살표는 참조 블록을 지시하는데, 그에 따른 참조 블록들이 현재 픽쳐 내에 존재하는 경우를 지시한다. 본 실시예는 현재 픽쳐에서 블록 매칭을 수행할 때 이를 화면 간 부호화 구조를 통해 부호화하는 경우에 적용될 수 있다.
도 16은 현재 픽쳐 내에서 블록 매칭시 사용된 이미 부호화된 영역의 참조 블록을 설명하는 예시도이다.
도 16을 참조하면, 빗금친 블록이 부호화된 영역의 참조 블록을 지시한다. 이와 같은 참조 블록은, 앞에서 설명한 것처럼, 인루프 필터가 적용되지 않아 블로킹 열화가 생길 수 있다.
이처럼 현재 블록에 앞서 이미 부호화된 영역의 경우, 아직 디블록킹 필터와 적응적 샘플 오프셋(Sample Adaptive Offset, SAO) 등의 인루프 필터가 적용되기 전이기 때문에 현재 픽쳐에서 블록 매칭을 수행하는 경우, 병렬처리 관점에서 볼 때 문제가 발생할 수 있다. 그로 인해, 블록 매칭을 위하여, 필터링이 적용되기 전에 추가적인 메모리가 필요할 수 있다.
또한, 이미 부호화된 영역의 경우, 인루프 필터가 적용되기 전이기 때문에 블록 간의 열화로 인해 최적의 예측 블록을 생성하는데 어려움이 있을 수 있다.
본 실시예에 의하면, 복호화 픽쳐 버퍼(DPB)에서 현재 픽쳐를 위한 메모리와 현재 픽쳐 내의 다른 블록을 참조하는 경우에는 추가적인 메모리가 필요할 수 있다. 이 때, 추가적인 메모리는 기존의 현재 픽쳐를 위한 메모리 외에 현재 픽쳐를 위한 다른 메모리일 수 있으며, 현재 픽쳐의 부호화 또는 복호화 과정에서 사용될 수 있는 임시 메모리일 수 있다. 또한, 병렬 처리시에는 추가적인 메모리의 크기가 매우 큰 용량이 필요할 수도 있다.
또한, 디블록킹 필터 및 적응적 샘플 오프셋(Sample Adaptive Offset, SAO) 등의 인루프 필터가 적용된 경우에는 현재 픽쳐를 위한 메모리일 수 있으며, 상기 인루프 필터가 적용되지 않은 경우에는 추가적인 메모리일 수 있다. 또한, 시퀀스 파라미터 셋, 픽쳐 파라미터 셋, 슬라이스 헤더 등의 단위에서 상기 인루프 필터 동작 설정에 따라 상기 추가적인 메모리는 필요하지 않을 수 있다. 예를 들어, 디블록킹 필터는 오프(off), SAO는 오프(off), ALF는 오프(off)와 같은 인루프 필터 동작 설정에는 상기 추가적인 메모리가 필요하지 않을 수 있으며, 위의 인루프 필터는 위의 구성 중 일부 또는 다른 구성이 포함되어 구성될 수 있다.
위의 설명과 같이 현재 픽쳐 내의 다른 블록에 참조되는 참조 블록은 추가적인 메모리에 저장될 수 있다. 이것은 추가적인 메모리의 손실을 가져오고 이를 방지할 필요성이 있다. 이하에서 적응적 필터링을 통한 추가적 메모리 방지를 설명한다.
도 17는, 필터링 스킵 확인부가 추가된 영상 부호화 장치에 대한 구성도이다.
도 17을 참조하면, 예측부(200), 가산부(205), 변환부(transform unit, 210), 양자화부(quantiztion, 215), 역양자화부(inverse quantization, 220), 역변환부(inverse transform, 225), 감산부(230), 복호화 픽쳐 버퍼(DPB, 240), 엔트로피 부호화부(entropy encoder, 245), 필터링 스킵 확인부(250), 스킵 선택 회로(260), 및 필터부(290)를 포함할 수 있다.
여기서, 예측부(200)는 인트라 예측(intra prediction)을 위한 제1 예측수단(201)과 인터 예측(inter prediction)을 위한 제2 예측수단(202)을 포함할 수 있다. 제1 예측수단은 인트라 예측부로 지칭되고, 제2 예측수단은 인터 예측부로 지칭될 수 있다. 또한, 가산부(205)와 감산부(230)는 제1 가감산부와 제2 가감산부로 각각 지칭될 수 있다.
또한, 필터링 스킵 확인부(250)는 제2 가감산부(230)와 필터부(290) 사이에 위치하고, 스킵 선택 회로(260)는 필터링 스킵 확인부(250)와 필터부(290)와의 사이 및 필터링 스킵 확인부(250)와 복호화 픽쳐 버퍼(240)와의 사이에 위치한다. 필터링 스킵 확인부(250)는 필터링 스킵 플래그에 의한 선택 정보에 기반하여 스킵 선택 회로(260)를 제어함으로써 디블록킹 필터링을 적응적으로 수행할 수 있다.
또한, 필터부(290)는 인루프 필터부로 지칭될 수 있으며, 디블록킹 필터(deblocking filter, 270) 및 샘플 적응적 오프셋(sample adaptive offset, SAO, 280) 중 적어도 어느 하나 이상을 포함할 수 있다. 필터부(290)는 복원된 영상에 대한 필터링을 수행할 수 있다.
디블록킹 필터(270)를 좀더 구체적으로 설명하면 다음과 같다. 즉, 앞서 예측, 변환, 양자화, 엔트로피 부호화 과정을 거치는 동안 양자화 단계에서는 양자화 에러가 발생할 수 있다. 이는 양자화 파라미터 값에 의해 조정되는데 양자화 파라미터 값이 작으면 변환계수에 대해 촘촘한 양자화가 수행되어 양자화 에러가 상대적으로 작고, 양자화 파라미터 값이 크면 양자화 에러가 상대적으로 크게 발생할 수 있다. 이러한 문제를 개선하기 위해 복원된 픽쳐에 대해 필터링을 수행함으로써 화질 열화를 줄여줄 수 있다.
도 17에서 확인하는 것과 같이, 필터링 스킵 확인부(250)를 추가로 구성하여, 필터링 스킵 확인부(250)는 참조 블록으로 활용되었는지 여부에 따른 플래그에 기초하여 필터부(290)의 적용과 스킵이 선택되도록 스킵 선택 회로(26)를 제어할 수 있다. 이에 따라, 추가적인 메모리의 사용 없이 하나의 DPB(240)를 이용하여 병렬 처리를 수행할 수 있게 된다.
이를 위한 설정 정보는 부호화기와 복호화기가 동일하게 가질 수 있고, 부호화기와 복호화기 사이에서 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송될 수 있다.
도 18은, 필터링 스킵 확인부가 추가된 영상 복호화 장치에 대한 구성도이다.
도 18을 참조하면, 본 실시예에 따른 영상 복호화 장치는, 엔트로피 복호화부(entropy encoder), 역양자화부(inverse quantization), 역변환부(inverse transform), 화면 내 예측부(intra prediction), 화면 간 예측부(inter prediction), 디블로킹 필터(Deblocking filter), 적응적 샘플 오프셋(Sample adaptive offset, SAO), 복원된 픽쳐 버퍼(DPB), 필터링 스킵 확인부를 포함할 수 있다.
여기서, 기존의 구성에 대해서는, 앞서 설명한 도 3을 참조할 수 있으므로 중복된 설명은 생략하고, 도 18을 참조하면, 기존의 영상 복호화 장치에 필터링 스킵 확인부가 추가된 것을 확인할 수 있다.
즉, 영상 복호화 장치는 영상 부호화 장치로부터 전송된 플래그를 바탕으로 필터링 스킵 여부에 대한 스위칭 동작을 지시할 수 있다. 만약 필터링이 스킵되는 경우 해당 데이터는 바로 복원된 픽쳐 버퍼(DPB)에 저장되며, 그렇지 않은 경우 해당 데이터는 필터링이 적용된 후 복원된 픽쳐 버퍼(DPB)에 저장될 수 있다.
도 19 내지 도 22는 본 발명의 실시예에 따른 영상 부호화 방법에 있어서 다양한 크기의 블록 단위로의 플래그 전송을 설명하는 예시도이다.
즉, 도 19 내지 도 22는, 인루프 필터의 적응적 적용 여부를 지시하거나 또는 현재 픽쳐 내에서 다른 픽쳐의 참조 블록으로 활용되었는지 여부를 지시하는 플래그가 다양한 블록 단위로 전송될 수 있는 예들을 설명할 수 있다.
먼저 도 19를 참조하면, 최대 부호화 단위가 64×64인 경우, 최대 부호화 단위로 전송할 수 있다. 최대 부호화 단위는 코딩 트리 유닛(coding tree unit, CTU)에 대응될 수 있다.
도 20을 참조하면, 최대 부호화 단위를 분할된 부호화 단위로 하여 전송할 수 있다. 분할된 단위로 플래그를 생성할 때는 트리 기반의 분할이 가능하다. 본 실시예에서는 최대 부호화 단위를 4개로 분할하거나, 4개로 분할된 부호화 단위 중 적어도 하나를 다시 4개로 분할할 수 있음을 보여주고 있다.
도 21을 참조하면, 1개 이상의 최대 부호화 단위를 묶음 단위로 전송할 수 있다. 본 실시예에서 4개의 최대 부호화 단위들이 하나의 묶음 단위로 전송될 수 있음을 보여주고 있다.
도 22를 참조하면, 1개 이상의 최대 부호화 단위를 묶음 단위로 전송하는 것과 최대 부호화 단위를 복수개로 분할한 분할된 부호화 단위로 전송하는 것을 조합하는 것이 가능하다.
전술한 도 19 내지 도 22는 그 분할 방식으로 쿼드 트리 분할을 예로 들었으나, 상기 분할부(도 2 참조)에서의 분할 방식에 따라 다양한 블록 크기 및 형태로 분할될 수 있다.
전술한 최대 블록의 크기부터 최소 블록의 크기에 대한 정보는 부호화기와 복호화기에 동일하게 설정 가능하고, 이와 관련된 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송할 수 있다.
도 23은, 참조 블록 활용 여부를 지시하는 플래그를 전송하는 방법을 설명하기 위한 예시도이다.
도 23을 참조하면, 동그라미는 분할 플래그, 네모는 필터링적용 플래그, 빗금은 분할되었거나 필터링이 적용된 것을 의미하고, 무색은 분할되지 않았거나 필터링이 적용되지 않았음을 의미할 수 있다.
여기서, 최소 하나의 분할 블록이 참조되었다면 해당 블록은 분할하고, 더 이상 분할되지 않을 경우에는 인루프 필터의 온,오프 (on, off) 플래그를 전송할 수 있다. 블록의 분할에 대한 심도(depth)는 최대 블록의 크기, 픽쳐 타입 등에 의해 정해질 수 있고 다만 지원되는 심도가 0이면 분할되지 않을 수 있다. 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송될 수 있다. 또한, 여기서, 최대 블록의 크기는 64×64이고, 지원되는 심도는 3(여기서는 8×8까지)까지 지원된다고 할 경우를 나타낸다.
이때, 블록의 크기가 유동적이므로 분할 여부를 먼저 전송해야 하는데 1이면, 블록을 분할, 0이면 블록이 더 이상 분할되지 않는다는 것을 전송하고, 한 블록 내를 기준으로 좌상단 블록, 우상단 블록, 좌하단 블록, 좌하단 블록 순서(또는 제트 스캔 방향)로 정보를 전송할 수 있다.
먼저, CTU_64 로 표시된 64×64 블록(트리 구조의 최상단)에 대하여 분할을 의미하는 1(64×64분할)을 전송하고, 이어서 좌상단 블록(32×32)에 대하여 1(32×32 분할)을 전송하여 분할함을 전송하며 그 내부의 네 블록(16×16)에 대하여 0(16×16 결정) 0(16×16 결정) 0(16×16 결정) 0(16×16 결정)을 전송할 수 있다. 이어서 우상단 블록에 대하여 0(32×32 결정)을 전송하여 더 이상 분할되지 않음을 전송하고, 좌하단 블록에 대해서도 0(32×32 결정)을 전송할 수 있다. 우하단 블록(32×32)에 대하여 1(32×32 분할)을 전송하여 분할됨을 전송하며, 다시 그 내부의 좌상단 블록(16×16)에 대하여 1(16×16 분할)을 전송하여 분할됨을 나타낸다. 상기 좌상단 블록(16×16)의 경우 분할됨에 따라 분할된 블록의 크기(8×8)가 지원되는 심도 깊이(8×8)과 동일하므로 분할된 블록(8×8)에는 분할 플래그를 전송하지 않는다. 그 후 남은 블록(16×16)에 대해 0(16×16 결정), 0(16×16 결정), 0(16×16 결정)을 전송할 수 있다. 즉, 분할 여부를 알리는 지시 데이터로서, 1100000011000을 전송할 수 있다.
상기 과정을 통해 분할 여부를 알리는 정보를 생성하고, 이 후에는 필터링 적용여부에 대한 정보를 생성할 수 있다. 상기 과정을 통해 13개의 블록에 대해 필터링 적용여부에 대한 플래그를 제트 스캔 방향으로 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0를 전송할 수 있다.
상기 블록의 분할 정보에 대한 플래그를 표현하기 위한 분할 플래그의 비트스트림 구조는 1개 이상의 스캔 방법 중 선택할 수 있다. 상기 예와 같이 제트 스캔 기반에 최초 블록 기준으로 분할된 블록에서의 추가 분할 정보를 우선적으로 획득할 수 있다. 또는 제트 스캔 기반의 심도 깊이 순서 기준 방법으로, 최초 블록 기준으로 현 수준의 심도 깊이에서의 분할 정보를 획득한 후 다음 수준의 심도 깊이에서의 분할 정보를 획득하는 방법이다. 위의 방법을 사용할 경우 1(64×64 분할), 1(32×32 분할), 0(32×32 결정), 0(32×32 결정), 1(32×32 분할), 0(16×16 결정), 0(16×16 결정), 0(16×16 결정), 0(16×16 결정), 1(16×16 분할), 0(16×16 결정), 0(16×16 결정), 0(16×16 결정)을 전송할 수 있다. 즉, 분할 여부를 알리는 지시 데이터로서, 1100100001000을 전송할 수 있다. 이 외에도 위의 예에서 제시되지 않은 다른 스캔 방법이 포함되어 선택될 수 있다.
본 실시예에 있어서, 이미 부호화된 현재 픽쳐에 있는 데이터는 아직 인루프 필터가 적용되지 않아서 블록 간의 열화가 존재한다. 이러한 데이터를 담고 있는 메모리는 현재 픽쳐의 부호화 또는 복호화 과정 동안만 저장되는 임시 메모리일 수 있다. 블록 매칭을 통해 열화가 존재하는 데이터를 참조할 경우 블록 간의 열화로 인해 예측의 정확도가 떨어지는 단점이 존재할 수 있다. 그 경우에는 블록의 부호화가 완료되고 다음 블록으로 진행되기 전에 현재 블록의 왼쪽과 위쪽 경계에 블록 열화를 줄여주는 필터링을 적용함으로써 블록 열화를 줄여줄 수 있다.
또한, 오른쪽과 아래쪽 경계는 다음에 부호화될 블록에서 처리될 수 있다. 어떤 블록 경계에서 필터링이 적용할 것인지는 기설정된 조건 예컨대, 블록 경계의 타입, 최소 블록 크기 등에 의해 필터링 적용을 결정할 수 있다. 변환 블록 경계에서 필터링을 수행할 수도 있고, 예측 블록 경계에서 필터링을 수행할 수도 있으며, 변환 블록과 예측 블록의 공통된 블록 경계에서 수행할 수도 있다. 필터링이 수행되는 최소 블록의 크기 또한 설정 가능하며, 이와 관련된 정보는 시퀀스, 픽쳐, 슬라이스 등의 단위로 생성 또는 전송될 수 있다.
또한, 블록 경계에 놓인 블록의 특성 예컨대 부호화 모드, 블록 경계 특성, 예측 정보, 부호화 계수 등을 분석하여 필터링 적용 유무, 필터링 적용 화소, 필터 종류 등을 설정할 수 있다. 이와 관련된 설정 정보는 부호화기와 복호화기에 동일하게 설정될 수 있고, 시퀀스, 픽쳐, 슬라이스 등의 단위로 전송될 수 있다. 전술한 본 실시예에 채용되는 필터링은 기존의 디블록킹 필터와 동일한 구성을 이용할 수 있고, 또한 다른 구성을 이용할 수도 있다.
전술한 실시예에 의하면, 화면 내 예측 기술이 사용되고 있는 MPEG-2, MPEG-4, H.264 등의 국제 코덱 또는 기타 다른 코덱과 이 코덱들을 사용하는 매체, 그리고 영상 산업에 전반적으로 이용가능한 고성능 고효율의 영상 부호화 복호화 기술을 제공할 수 있다.
또한, 향후에는 현재의 고효율 영상 부호화 기술(HEVC) 및 H.264/AVC와 같은 표준 코덱과 화면 내 예측을 사용하는 영상 처리 분야에 적용이 예상된다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (20)

  1. 화면 간 예측을 수행하는 영상 부호화 방법에 있어서,
    현재 블록에 대한 화면 간 예측을 수행하여 참조 블록을 탐색하는 단계;
    상기 탐색된 참조 블록에 따라, 상기 현재 블록을 포함하는 현재 픽쳐를 참조 픽쳐 리스트에 포함할 것인지 여부를 지시하는 플래그를 픽쳐 파라미터 세트 단위로 부호화하는 단계;
    상기 탐색된 참조 블록을 이용하여 상기 현재 블록을 부호화하고 복원하는 단계; 및
    상기 현재 픽쳐를 복원된 픽쳐 버퍼(Decoded Picture Buffer, DPB)에 저장하는 단계를 포함하되,
    상기 복원된 픽쳐 버퍼는, 상기 현재 픽쳐가 상기 참조 픽쳐 리스트에 포함되는지 여부 및 상기 현재 픽쳐에 인루프 필터가 적용되는지 여부에 따라, 상기 인루프 필터가 적용된 현재 픽쳐의 저장을 위해 할당되는 제1 메모리 및 상기 인루프 필터가 적용되지 않은 현재 픽쳐의 저장을 위해 할당되는 제2 메모리를 포함하도록 구성되는, 영상 부호화 방법.
  2. 청구항 1에 있어서,
    상기 인루프 필터는 디블로킹 필터, 적응적 샘플 오프셋(SAO) 중 적어도 하나를 포함하는 것을 특징으로 하는, 영상 부호화 방법.
  3. 청구항 1에 있어서,
    상기 참조 픽쳐 리스트는 참조 픽쳐 리스트 0 및 참조 픽쳐 리스트 1 중 적어도 하나를 포함하는, 영상 부호화 방법.
  4. 청구항 3에 있어서,
    상기 참조 픽쳐 리스트 0는, 상기 현재 픽쳐 이전의 참조 픽쳐를 배열한 뒤, 상기 현재 픽쳐를 배열하여 구성되는, 영상 부호화 방법.
  5. 청구항 3에 있어서,
    상기 참조 픽쳐 리스트 1은, 상기 현재 픽쳐 이후의 참조 픽쳐를 배열한 뒤, 상기 현재 픽쳐를 배열하여 구성되는, 영상 부호화 방법.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 화면 간 예측을 수행하는 영상 복호화 방법에 있어서,
    현재 블록을 포함하는 현재 픽쳐가 참조 픽쳐 리스트에 포함되는지 여부를 지시하는 플래그를 픽쳐 파라미터 세트로부터 복호화하는 단계;
    상기 현재 블록에 대한 참조 픽쳐 리스트를 생성하는 단계;
    상기 참조 픽쳐 리스트를 이용하여, 상기 현재 블록을 복원하는 단계; 및
    복원된 현재 픽쳐를 복원된 픽쳐 버퍼(Decoded Picture Buffer, DPB)에 저장하는 단계를 포함하되,
    상기 복원된 픽쳐 버퍼는, 상기 현재 픽쳐가 상기 참조 픽쳐 리스트에 포함되는지 여부 및 상기 현재 픽쳐에 인루프 필터가 적용되는지 여부에 따라, 상기 인루프 필터가 적용된 현재 픽쳐의 저장을 위해 할당되는 제1 메모리 및 상기 인루프 필터가 적용되지 않은 현재 픽쳐의 저장을 위해 할당되는 제2 메모리를 포함하도록 구성되는, 영상 복호화 방법.
  10. 청구항 9에 있어서,
    상기 인루프 필터는 디블로킹 필터, 적응적 샘플 오프셋(SAO) 중 적어도 하나를 포함하는 것을 특징으로 하는, 영상 복호화 방법.
  11. 청구항 9에 있어서,
    상기 참조 픽쳐 리스트는 참조 픽쳐 리스트 0 및 참조 픽쳐 리스트 1 중 적어도 하나를 포함하는, 영상 복호화 방법.
  12. 청구항 11에 있어서,
    상기 참조 픽쳐 리스트 0는, 상기 현재 픽쳐 이전의 참조 픽쳐를 배열한 뒤, 상기 현재 픽쳐를 배열하여 구성되는, 영상 복호화 방법.
  13. 청구항 11에 있어서,
    상기 참조 픽쳐 리스트 1은, 상기 현재 픽쳐 이후의 참조 픽쳐를 배열한 뒤, 상기 현재 픽쳐를 배열하여 구성되는, 영상 복호화 방법.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020160073191A 2015-06-11 2016-06-13 적응적인 디블록킹 필터링에 관한 부호화/복호화 방법 및 장치 KR101809630B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170169371A KR102340133B1 (ko) 2015-06-11 2017-12-11 적응적인 디블록킹 필터링에 관한 부호화/복호화 방법 및 장치

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20150082702 2015-06-11
KR1020150082702 2015-06-11

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020170169371A Division KR102340133B1 (ko) 2015-06-11 2017-12-11 적응적인 디블록킹 필터링에 관한 부호화/복호화 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20160146591A KR20160146591A (ko) 2016-12-21
KR101809630B1 true KR101809630B1 (ko) 2017-12-15

Family

ID=57735014

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020160073191A KR101809630B1 (ko) 2015-06-11 2016-06-13 적응적인 디블록킹 필터링에 관한 부호화/복호화 방법 및 장치
KR1020170169371A KR102340133B1 (ko) 2015-06-11 2017-12-11 적응적인 디블록킹 필터링에 관한 부호화/복호화 방법 및 장치
KR1020210177545A KR102447872B1 (ko) 2015-06-11 2021-12-13 적응적인 디블록킹 필터링에 관한 부호화/복호화 방법 및 장치
KR1020220119949A KR102558270B1 (ko) 2015-06-11 2022-09-22 적응적인 디블록킹 필터링에 관한 부호화/복호화 방법 및 장치

Family Applications After (3)

Application Number Title Priority Date Filing Date
KR1020170169371A KR102340133B1 (ko) 2015-06-11 2017-12-11 적응적인 디블록킹 필터링에 관한 부호화/복호화 방법 및 장치
KR1020210177545A KR102447872B1 (ko) 2015-06-11 2021-12-13 적응적인 디블록킹 필터링에 관한 부호화/복호화 방법 및 장치
KR1020220119949A KR102558270B1 (ko) 2015-06-11 2022-09-22 적응적인 디블록킹 필터링에 관한 부호화/복호화 방법 및 장치

Country Status (1)

Country Link
KR (4) KR101809630B1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020207492A1 (en) 2019-04-12 2020-10-15 Beijing Bytedance Network Technology Co., Ltd. Interaction between matrix-based intra prediction and other coding tools
JP2022535726A (ja) 2019-05-31 2022-08-10 北京字節跳動網絡技術有限公司 行列ベースイントラ予測における制約されたアップサンプリングプロセス
CN113950836B (zh) 2019-06-05 2024-01-12 北京字节跳动网络技术有限公司 基于矩阵的帧内预测的上下文确定
WO2021101201A1 (ko) * 2019-11-18 2021-05-27 엘지전자 주식회사 루프 필터링을 제어하는 영상 코딩 장치 및 방법
CN115088265A (zh) 2019-12-12 2022-09-20 Lg电子株式会社 用于控制环路滤波的图像编码装置和方法
WO2021118297A1 (ko) * 2019-12-12 2021-06-17 엘지전자 주식회사 필터링을 위한 정보의 시그널링 기반 영상 코딩 장치 및 방법
WO2021118261A1 (ko) * 2019-12-12 2021-06-17 엘지전자 주식회사 영상 정보를 시그널링하는 방법 및 장치
KR20220088795A (ko) * 2019-12-12 2022-06-28 엘지전자 주식회사 픽처 레벨 또는 슬라이스 레벨에서 적용되는 영상 정보를 시그널링하는 방법 및 장치
CN117939160A (zh) * 2022-10-14 2024-04-26 中兴通讯股份有限公司 一种视频解码方法、视频处理设备、介质及产品

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Bin Li, "Non-SCCE1: Unification of intra BC and inter modes", JCTVC 18th Meeting: Sapporo, JP, JCTVC-R0100, 30 June 2014.*
C. Rosewarne, "On deblocking for intra block copy", JCTVC 18th Meeting: Sapporo, JP, JCTVC─R0126, 30 June 2014.*

Also Published As

Publication number Publication date
KR20210156810A (ko) 2021-12-27
KR20160146591A (ko) 2016-12-21
KR102558270B1 (ko) 2023-07-24
KR20170141168A (ko) 2017-12-22
KR102447872B1 (ko) 2022-09-27
KR20220132516A (ko) 2022-09-30
KR102340133B1 (ko) 2021-12-16

Similar Documents

Publication Publication Date Title
KR101988888B1 (ko) 화면 내 예측 모드에 대한 부호화/복호화 방법 및 장치
US11368675B2 (en) Method and device for encoding and decoding intra-frame prediction
KR102558270B1 (ko) 적응적인 디블록킹 필터링에 관한 부호화/복호화 방법 및 장치
KR102462012B1 (ko) 움직임 벡터 차분치를 이용하는 영상 부호화 및 복호화 방법과 영상 복호화 장치
KR101966195B1 (ko) 화면내 예측에서의 참조 화소 구성에 관한 부호화/복호화 방법 및 장치
KR101782156B1 (ko) 적응적인 디블록킹 필터링을 이용하는 영상 부호화 방법과 영상 복호화 방법 및 장치
KR102514392B1 (ko) 움직임 벡터 차분치를 이용하는 영상 부호화 및 복호화 방법과 영상 복호화 장치
KR102476230B1 (ko) 움직임 벡터 정밀성을 이용하는 영상 부호화 및 복호화 방법과 영상 복호화 장치

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant