KR20170026334A - 비디오 신호의 처리 방법 및 이를 위한 장치 - Google Patents

비디오 신호의 처리 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR20170026334A
KR20170026334A KR1020167032154A KR20167032154A KR20170026334A KR 20170026334 A KR20170026334 A KR 20170026334A KR 1020167032154 A KR1020167032154 A KR 1020167032154A KR 20167032154 A KR20167032154 A KR 20167032154A KR 20170026334 A KR20170026334 A KR 20170026334A
Authority
KR
South Korea
Prior art keywords
sample
current block
information
obtaining
video signal
Prior art date
Application number
KR1020167032154A
Other languages
English (en)
Inventor
손은용
예세훈
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Publication of KR20170026334A publication Critical patent/KR20170026334A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • 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/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • 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

Landscapes

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

Abstract

본 발명은 비디오 신호(video signal)를 디코딩하기 위한 방법 및 이를 위한 장치에 관한 것으로서, 현재 블록을 포함하는 픽처와 상이한 제1 참조 픽처로부터 적어도 하나의 제1 참조 샘플(reference sample)을 획득하는 단계; 상기 획득한 제1 참조 샘플에 필터를 적용하여 필터링된 제1 참조 샘플을 생성하는 단계; 상기 획득한 제1 참조 샘플과 상기 필터링된 제1 참조 샘플 간의 차분(difference)으로부터 참조 샘플 배열(reference sample array)을 생성하는 단계; 상기 비디오 신호로부터 제1 변이 벡터(disparity vector) 정보를 획득하는 단계; 상기 제1 변이 벡터 정보에 기초하여 상기 생성된 참조 샘플 배열로부터 제1 예측 샘플을 획득하는 단계; 및 상기 제1 예측 샘플에 기초하여 상기 현재 블록을 복원하는 단계를 포함하는 방법 및 이를 위한 장치에 관한 것이다.

Description

비디오 신호의 처리 방법 및 이를 위한 장치{METHOD FOR PROCESSING VIDEO SIGNAL, AND APPARATUS THEREFOR}
본 발명은 영상 처리에 관한 것으로서, 보다 구체적으로는 주파수 분할 코딩 방식을 이용한 비디오 신호의 처리 방법 및 이를 위한 장치에 관한 것이다.
디지털 동영상 처리 기술이 급격히 발전함에 따라 고화질 디지털방송, 디지털 멀티미디어 방송, 인터넷 방송 등과 같은 다양한 매체를 이용한 디지털 멀티미디어 서비스가 활성화되고 있으며, 고화질 디지털 방송이 일반화되면서 다양한 서비스 애플리케이션이 개발되고 있고, 고화질, 고해상도의 영상을 위한 고속 동영상 처리 기술들이 요구되고 있다. 이를 위해, H.265/HEVC(High Efficiency Video Coding), H.264/AVC(Advanced Video Coding)와 같은 비디오 신호의 코딩에 관한 표준이 활발히 논의되고 있다.
본 발명의 목적은 비디오 신호를 효율적으로 처리할 수 있는 방법 및 이를 위한 장치를 제공하는 데 있다.
본 발명의 다른 목적은 주파수 분할 방식을 이용하여 비디오 신호를 효율적으로 처리할 수 있는 방법 및 이를 위한 장치를 제공하는 데 있다.
본 발명의 또 다른 목적은 인터프레임 스트라이프 예측(ISP)이 적용되는 코딩 방식에 있어서 비디오 신호를 효율적으로 처리할 수 있는 방법 및 이를 위한 장치를 제공하는 데 있다.
본 발명에서 이루고자 하는 기술적 과제들은 상기 기술적 과제로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 양상으로서, 디코딩 장치에서 비디오 신호(video signal)를 디코딩하기 위한 방법이 제공되며, 상기 방법은 현재 블록을 포함하는 픽처와 상이한 제1 참조 픽처로부터 적어도 하나의 제1 참조 샘플(reference sample)을 획득하는 단계; 상기 획득한 제1 참조 샘플에 필터를 적용하여 필터링된 제1 참조 샘플을 생성하는 단계; 상기 획득한 제1 참조 샘플과 상기 필터링된 제1 참조 샘플 간의 차분(difference)으로부터 참조 샘플 배열(reference sample array)을 생성하는 단계; 상기 비디오 신호로부터 제1 변이 벡터(disparity vector) 정보를 획득하는 단계; 상기 제1 변이 벡터 정보에 기초하여 상기 생성된 참조 샘플 배열로부터 제1 예측 샘플을 획득하는 단계; 및 상기 제1 예측 샘플에 기초하여 상기 현재 블록을 복원하는 단계를 포함할 수 있다.
본 발명의 다른 양상으로서, 비디오 신호(video signal)를 디코딩하도록 구성된 디코딩 장치가 제공되며, 상기 디코딩 장치는 적어도 하나의 픽처를 저장하는 메모리; 및 상기 메모리에 동작시 연결되는(operatively connected) 프로세서를 포함하며, 상기 프로세서는 현재 블록을 포함하는 픽처와 상이한 제1 참조 픽처로부터 적어도 하나의 제1 참조 샘플(reference sample)을 획득하고, 상기 획득한 제1 참조 샘플에 필터를 적용하여 필터링된 제1 참조 샘플을 생성하고, 상기 획득한 제1 예측 샘플과 상기 필터링된 제1 참조 샘플 간의 차분(difference)으로부터 참조 샘플 배열(reference sample array)을 생성하고, 상기 비디오 신호로부터 제1 변이 벡터(disparity vector) 정보를 획득하고, 상기 제1 변이 벡터 정보에 기초하여 상기 생성된 참조 샘플 배열로부터 제1 예측 샘플을 획득하고, 상기 제1 예측 샘플에 기초하여 상기 현재 블록을 복원하도록 구성될 수 있다.
바람직하게는, 상기 방법은 상기 비디오 신호로부터 상기 인터프레임 스트라이프 예측(ISP) 모드 정보를 획득하는 단계를 더 포함하며, 상기 ISP 모드 정보는 상기 현재 블록을 위한 스캐닝 순서를 지시하며, 상기 현재 블록을 복원하는 단계는, 상기 제1 예측 샘플에 기초하여 상기 현재 블록을 위한 일차원 샘플 배열을 복원하는 것과, 상기 복원된 일차원 샘플 배열을 상기 ISP 모드 정보가 지시하는 스캐닝 순서에 따라 이차원 샘플 배열로 전환하는 것을 포함할 수 있다.
바람직하게는, 상기 방법은 상기 비디오 신호로부터 세그먼트 개수 정보를 획득하는 단계를 더 포함하며, 상기 세그먼트 개수 정보는 상기 현재 블록을 위한 일차원 샘플 배열에 포함되는 세그먼트의 개수를 지시하며, 상기 세그먼트의 개수가 1보다 큰 경우, 상기 방법은 상기 비디오 신호로부터 제2 변이 벡터 정보를 획득하는 단계; 및 상기 제2 변이 벡터 정보에 기초하여 상기 참조 샘플 배열로부터 제2 예측 샘플을 획득하는 단계를 더 포함하며, 상기 현재 블록은 상기 제1 예측 샘플과 상기 제2 예측 샘플에 기초하여 복원될 수 있다.
바람직하게는, 상기 적어도 하나의 제1 참조 샘플을 획득하는 단계는 상기 비디오 신호로부터 제1 움직임 정보를 획득하는 것과, 상기 획득된 제1 움직임 정보로부터 제1 움직임 벡터 및 제1 참조 픽처 인덱스를 획득하는 것과, 상기 제1 참조 픽처 인덱스는 참조 픽처 리스트 내에서 상기 제1 참조 픽처를 가리키며, 상기 제1 움직임 벡터에 기초하여 상기 제1 참조 픽처로부터 상기 적어도 하나의 제1 참조 샘플을 획득하는 것을 포함할 수 있다.
바람직하게는, 상기 참조 샘플 배열을 생성하는 단계는, 상기 차분을 제1 스캐닝 순서에 따라 제1 일차원 샘플 배열로 전환하는 것과, 상기 제1 일차원 샘플 배열의 각 인접한 2개의 샘플 간의 차이의 절대값의 합을 구하는 것과, 상기 차분을 제2 스캐닝 순서에 따라 제2 일차원 샘플 배열로 전환하는 것과, 상기 제2 일차원 샘플 배열의 각 인접한 2개의 샘플 간의 차이의 절대값의 합을 구하는 것과, 상기 제1 일차원 샘플 배열에 대한 절대값의 합과 상기 제2 일차원 샘플 배열에 대한 절대값의 합을 비교하는 것과, 상기 비교 결과에 따라 절대값의 합이 작은 일차원 샘플 배열을 상기 참조 샘플 배열로 결정하는 것을 포함할 수 있다.
바람직하게는, 상기 변이 벡터 정보는 상기 현재 블록 내에서 특정 세그먼트를 위한 변이 벡터를 지시하며, 상기 변이 벡터는 상기 특정 세그먼트의 시작 샘플 위치와 상기 참조 샘플 배열 내에서 상기 제1 예측 샘플의 시작 샘플 위치 간의 차이를 나타낼 수 있다.
바람직하게는, 상기 방법은 상기 비디오 신호로부터 제1 변환 계수 정보를 획득하는 단계; 상기 획득한 제1 변환 계수 정보에 기초하여 역변환을 수행하여 제1 레지듀얼 데이터를 생성하는 단계를 더 포함하며, 상기 현재 블록을 복원하는 단계는 상기 제1 예측 샘플과 상기 제1 레지듀얼 데이터를 이용하여 상기 현재 블록의 제1 복원 샘플을 획득하는 것을 포함할 수 있다.
바람직하게는, 상기 방법은 제2 참조 픽처로부터 적어도 하나의 제2 참조 샘플을 획득하는 단계; 상기 획득한 제2 참조 샘플에 상기 필터를 적용하여 제2 예측 샘플을 생성하는 단계; 상기 비디오 신호로부터 제2 변환 계수 정보를 획득하는 단계; 및 상기 획득한 제2 변환 계수 정보에 기초하여 역변환을 수행하여 제2 레지듀얼 데이터를 생성하는 단계; 및 상기 제2 예측 샘플, 상기 제2 레지듀얼 데이터에 기초하여 상기 현재 블록의 제2 복원 샘플을 획득하는 것을 포함할 수 있다.
바람직하게는, 상기 현재 블록을 복원하는 단계는, 상기 현재 블록의 제1 복원 샘플과 상기 제2 복원 샘플을 합산하여 상기 현재 블록을 복원하는 것을 포함할 수 있다.
바람직하게는, 상기 적어도 하나의 제2 참조 샘플을 획득하는 단계는 상기 비디오 신호로부터 제2 움직임 정보를 획득하는 것과, 상기 획득된 제2 움직임 정보로부터 제2 움직임 벡터 및 제2 참조 픽처 인덱스를 획득하는 것과, 상기 제2 참조 픽처 인덱스는 참조 픽처 리스트 내에서 상기 제2 참조 픽처를 가리키며, 상기 제2 움직임 벡터에 기초하여 상기 제2 참조 픽처로부터 상기 적어도 하나의 제2 참조 샘플을 획득하는 것을 포함할 수 있다.
바람직하게는, 상기 제1 복원 샘플은 상기 현재 블록의 고주파 성분에 해당하고, 상기 제2 복원 샘플은 상기 현재 블록의 저주파 성분에 해당할 수 있다.
바람직하게는, 상기 필터는 가우시안 필터를 포함할 수 있다.
바람직하게는, 상기 필터링된 제1 참조 샘플은 다음 수학식에 따라 생성되며,
Figure pct00001
x는 샘플의 수평 좌표를 나타내고, y는 샘플의 수직 좌표를 나타내고, O(x,y)는 상기 적어도 하나의 제1 참조 샘플 중에서 (x,y) 위치에 대응되는 샘플을 나타내고, 상기 L(x,y)는 상기 필터링된 제1 참조 샘플 중에서 (x,y) 위치에 대응되는 샘플을 나타낼 수 있다.
바람직하게는, 상기 차분은 다음 수학식에 따라 생성되며,
Figure pct00002
H(x,y)는 상기 차분 중에서 (x,y) 위치에 대응되는 샘플을 나타낼 수 있다.
본 발명에 의하면, 비디오 신호를 효율적으로 처리할 수 있다.
또한, 본 발명에 의하면, 주파수 분할 방식을 이용하여 비디오 신호를 효율적으로 처리할 수 있다.
또한, 본 발명에 의하면, 인터프레임 스트라이프 예측(ISP)이 적용되는 코딩 방식에 있어서 비디오 신호를 효율적으로 처리할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
첨부 도면은 본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되며, 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 사상을 설명한다.
도 1은 종래 기술에 따른 인코딩 과정을 예시한다.
도 2는 종래 기술에 따른 디코딩 과정을 예시한다.
도 3은 인터프레임 스트라이프 예측(Interframe Stripe Prediction, ISP)을 이용한 인코딩 방법을 예시한다.
도 4는 인터프레임 스트라이프 예측(ISP)의 순서도를 예시한다.
도 5는 인터프레임 스트라이프 예측(ISP)에 사용될 수 있는 스캔 모드를 예시한다.
도 6은 특정 스캔 모드에 따라 생성된 스트라이프 및 세그먼트를 예시한다.
도 7은 세그먼트에 대한 변이 벡터를 예시한다.
도 8은 본 발명에 따른 인코딩 방법을 예시한다.
도 9는 본 발명에 적용될 수 있는 필터를 예시한다.
도 10은 본 발명에 따라 생성된 비트스트림에 포함된 정보를 예시한다.
도 11은 주파수 분할 코딩 방식에 따른 디코딩 방법의 순서도를 예시한다.
도 12는 본 발명이 적용될 수 있는 영상 처리 장치의 블록도를 예시한다.
이하의 기술은 비디오 신호(video signal)를 인코딩(encoding) 및/또는 디코딩하도록 구성된 영상 신호 처리 장치에서 사용될 수 있다. 일반적으로 비디오 신호는 눈으로 인지가능한 영상 신호(image signal) 또는 픽처들의 시퀀스를 지칭하지만, 본 명세서에서 비디오 신호는 코딩된 픽처(picture)를 나타내는 비트들의 시퀀스(sequence) 또는 비트 시퀀스에 해당하는 비트스트림을 지칭하는 데 사용될 수 있다. 픽처(picture)는 샘플들의 배열을 지칭할 수 있으며, 프레임(frame), 영상(image) 등으로 지칭될 수 있다. 보다 구체적으로, 픽처는 샘플들의 이차원 배열 또는 이차원 샘플 배열을 지칭할 수 있다. 샘플은 픽처를 구성하는 최소 단위를 지칭할 수 있고, 픽셀(pixel), 화소(picture element), 펠(pel) 등으로 지칭될 수 있다. 샘플은 휘도(luminance, luma) 성분 및/또는 색차(chrominance, chroma, color difference) 성분을 포함할 수 있다. 본 명세서에서, 코딩은 인코딩을 지칭하는 데 사용될 수도 있고, 혹은 인코딩/디코딩을 통칭할 수 있다.
픽처는 적어도 하나의 슬라이스를 포함할 수 있으며, 슬라이스는 적어도 하나의 블록을 포함할 수 있다. 슬라이스는 병렬 처리 등의 목적, 데이터 손실 등으로 인해 비트스트림이 훼손된 경우 디코딩의 재동기화 등의 목적을 위해 정수 개의 블록을 포함하도록 구성될 수 있으며, 각 슬라이스는 서로 독립적으로 코딩될 수 있다. 블록은 적어도 하나의 샘플을 포함할 수 있으며, 샘플들의 배열을 지칭할 수 있다. 블록은 픽처보다 작거나 같은 크기를 가질 수 있다. 블록은 유닛으로 지칭될 수 있다. 현재 코딩되는 픽처를 현재 픽처라고 지칭하고, 현재 코딩되는 블록을 현재 블록이라고 지칭할 수 있다. 픽처를 구성하는 다양한 블록 단위가 존재할 수 있으며, 예를 들어 ITU-T H.265 표준(또는 HEVC(High Efficiency Video Coding) 표준)의 경우 코딩 트리 블록(CTB)(또는 코딩 트리 유닛(CTU)), 코딩 블록(CB)(또는 코딩 유닛(CU)), 예측 블록(PB)(또는 예측 유닛(PU)), 변환 블록(TB)(또는 변환 유닛(TU)) 등의 블록 단위가 존재할 수 있다.
코딩 트리 블록은 픽처를 구성하는 가장 기본적인 단위를 지칭하며, 픽처의 텍스처(texture)에 따라 코딩 효율을 높이기 위해 쿼드-트리(quad-tree) 형태의 코딩 블록들로 분할될 수 있다. 코딩 블록은 코딩을 수행하는 기본 단위를 지칭할 수 있으며, 코딩 블록 단위로 인트라 코딩 또는 인터 코딩이 수행될 수 있다. 인트라 코딩은 인트라 예측을 이용하여 코딩을 수행하는 것을 지칭할 수 있으며, 인트라 예측은 동일한 픽처 또는 슬라이스 내에 포함된 샘플들을 이용하여 예측을 수행하는 것을 지칭할 수 있다. 인터 코딩은 인터 예측을 이용하여 코딩을 수행하는 것을 지칭할 수 있으며, 인터 예측은 현재 픽처와 서로 다른 픽처에 포함된 샘플들을 이용하여 예측을 수행하는 것을 지칭할 수 있다. 인트라 코딩을 이용하여 코딩되는 블록을 인트라 블록이라고 지칭할 수 있고, 인터 코딩을 이용하여 코딩되는 블록을 인터 블록이라고 지칭할 수 있다. 또한, 인트라 코딩을 이용한 코딩 모드를 인트라 모드라고 지칭할 수 있고, 인터 코딩을 이용한 코딩 모드를 인터 모드라고 지칭할 수 있다.
예측 블록은 예측을 수행하기 위한 기본 단위를 지칭할 수 있다. 하나의 예측 블록에 대해서는 동일한 예측이 적용될 수 있다. 예를 들어, 인터 예측의 경우 하나의 예측 블록에 대해서 동일한 움직임 벡터가 적용될 수 있다. 변환 블록은 변환을 수행하기 위한 기본 단위를 지칭할 수 있다. 변환은 픽셀 도메인(또는 공간 도메인 또는 시간 도메인)의 샘플들을 주파수 도메인(또는 변환 계수 도메인)의 변환 계수로 변환하는 동작을 지칭하거나, 그 반대의 동작을 통칭할 수 있다. 특히, 주파수 도메인(또는 변환 계수 도메인)의 변환 계수를 픽셀 도메인(또는 공간 도메인 또는 시간 도메인)의 샘플들로 변환하는 동작을 역변환이라고 지칭할 수 있다. 예를 들어, 변환은 이산 코사인 변환(DCT), 이산 사인 변환(DST), 푸리어 변환 등을 포함할 수 있다.
도 1은 종래 기술에 따른 인코딩 과정을 예시한다.
인코딩 장치(100)는 원영상(original image)(102)을 입력받아 인코딩을 수행한 다음 비트스트림(114)을 출력한다. 원영상(102)은 하나의 픽처에 해당할 수 있지만, 본 예에서 원영상(102)은 픽처를 구성하는 하나의 블록이라고 가정한다. 예를 들어, 원영상(102)은 코딩 블록에 해당할 수 있다. 인코딩 장치(100)는 원영상(102)에 대하여 인트라 모드로 코딩할지 인터 모드로 코딩할지 결정할 수 있다. 원영상(102)이 인트라 픽처 또는 슬라이스에 포함되는 경우, 원영상(102)은 인트라 모드로만 코딩될 수 있다. 하지만, 원영상(102)이 인터 픽처 또는 슬라이스에 포함되는 경우, 예를 들어 원영상(102)에 대하여 인트라 코딩 및 인터 코딩을 수행한 다음 RD(Rate-Distortion) 비용(cost)을 대비하여 효율적인 코딩 방법을 결정할 수 있다.
원영상(102)에 대해 인트라 코딩을 수행하는 경우, 인코딩 장치(100)는 원영상(102)을 포함하는 현재 픽처의 복원 샘플들을 이용하여 RD 최적화를 보여주는 인트라 예측 모드를 결정할 수 있다(104). 예를 들어, 인트라 예측 모드는 DC(Direct Current) 예측 모드, 평면(planar) 예측 모드, 각도(angular) 예측 모드 중에서 하나로 결정될 수 있다. DC 예측 모드는 현재 픽처의 복원 샘플들 중에서 참조 샘플들의 평균값을 이용하여 예측을 수행하는 모드를 지칭하고, 평면 예측 모드는 참조 샘플들의 이중 선형 보간(bilinear interpolation)을 이용하여 예측을 수행하는 모드를 지칭하고, 각도 예측 모드는 원영상(102)에 대해 특정 방향에 위치한 참조 샘플을 이용하여 예측을 수행하는 모드를 지칭한다. 인코딩 장치(100)는 결정된 인트라 예측 모드를 이용하여 예측 샘플(predicted sample) 또는 예측값(prediction value)(또는 predictor)(107)을 출력할 수 있다.
원영상(102)에 대해 인터 코딩을 수행하는 경우, 인코딩 장치(100)는 (디코딩된) 픽처 버퍼(122)에 포함된 복원 픽처(reconstructed picture)를 이용하여 움직임 추정(motion estimation, ME)을 수행하여 움직임 정보를 획득할 수 있다(106). 예를 들어, 움직임 정보는 움직임 벡터, 참조 픽처 인덱스 등을 포함할 수 있다. 움직임 벡터는 현재 픽처 내에서 원영상(102)의 좌표로부터 참조 픽처 내의 좌표까지의 오프셋을 제공하는 이차원 벡터를 지칭할 수 있다. 참조 픽처 인덱스는 (디코딩된) 픽처 버퍼(122)에 저장된 복원 픽처(reconstructed picture) 중에서 인터 예측을 위해 사용되는 참조 픽처들의 리스트(또는 참조 픽처 리스트)에 대한 인덱스를 지칭할 수 있으며, 참조 픽처 리스트에서 해당 참조 픽처를 가리킨다. 인코딩 장치(100)는 획득한 움직임 정보를 이용하여 예측 샘플 또는 예측값(107)을 출력할 수 있다.
그런 다음, 인코딩 장치(100)는 원영상(102)과 예측 샘플(107) 간의 차이로부터 레지듀얼 데이터(108)를 생성할 수 있다. 인코딩 장치(100)는 생성된 레지듀얼 데이터(108)에 대해 변환을 수행할 수 있다(110). 예를 들어, 변환을 위해 이산 코사인 변환 (Discrete Cosine Transform, DCT), 이산 사인 변환 (Discrete Sine Transform, DST) 및/또는 웨이블릿 변환(Wavelet Transform) 등이 적용될 수 있다. 보다 구체적으로, 4×4 내지 32×32 크기의 정수 기반 DCT가 사용될 수 있으며, 4×4, 8×8, 16×16, 32×32 변환이 이용될 수 있다. 인코딩 장치(100)는 변환(110)을 수행하여 변환 계수 정보를 획득할 수 있다.
인코딩 장치(100)는 변환 계수 정보를 양자화하여 양자화된 변환 계수 정보를 생성할 수 있다(112). 양자화는 양자화 파라미터(QP)를 이용하여 변환 계수 정보의 레벨을 스케일링하는 동작을 지칭할 수 있다. 따라서, 양자화된 변환 계수 정보는 스케일링된 변환 계수 정보라고 지칭될 수 있다. 양자화된 변환 계수 정보는 엔트로피 코딩(114)을 통해 비트스트림(116)으로 출력될 수 있다. 예를 들어, 엔트로피 코딩(114)은 고정 길이 코딩(fixed length coding, FLC), 가변 길이 코딩(variable length coding, VLC), 산술 코딩(arithmetic coding)을 기반으로 수행될 수 있다. 보다 구체적으로, 산술 부호화를 기반으로 한 문맥 기반 적응적 이진 산술 코딩(context adaptive binary arithmetic coding, CABAC), 가변 길이 코딩을 기반으로 한 Exp-Golomb 코딩, 및 고정 길이 코딩이 적용될 수 있다.
또한, 인코딩 장치(100)는 양자화된 변환 계수 정보에 대해 역양자화(118) 및 역변환(120)을 수행하여 복원 샘플(121)를 생성할 수 있다. 도 1에 예시되지 않았지만, 하나의 픽처에 대하여 복원 샘플(121)을 획득하여 복원 픽처를 생성한 다음 복원 픽처에 대해 인루프 필터링이 수행될 수 있다. 인루프 필터링을 위해 예를 들어 디블록킹(deblocking) 필터, 샘플 적응적 오프셋(sample adaptive offset, SAO) 필터가 적용될 수 있다. 그런 다음, 복원 픽처(121)는 픽처 버퍼(122)에 저장되어 다음 픽처의 인코딩에 사용될 수 있다.
도 2는 종래 기술에 따른 디코딩 과정을 예시한다.
디코딩 장치(200)는 비트스트림(202)을 수신하여 엔트로피 디코딩(204)을 수행할 수 있다. 엔트로피 디코딩(204)은 도 1의 엔트로피 코딩(114)의 역방향 동작을 지칭할 수 있다. 디코딩 장치(200)는 엔트로피 디코딩(204)을 통해 예측 모드 정보, 인트라 예측 모드 정보, 움직임 정보 등을 포함하여 디코딩에 필요한 데이터 및 (양자화된) 변환 계수 정보를 획득할 수 있다. 디코딩 장치(200)는 획득된 변환 계수 정보에 대해 역양자화(206) 및 역변환(208)을 수행하여 레지듀얼 데이터(209)를 생성할 수 있다.
엔트로피 디코딩(204)을 통해 획득되는 예측 모드 정보는 현재 블록이 인트라 모드로 코딩되는지 인터 모드로 코딩되는지 여부를 지시할 수 있다. 예측 모드 정보가 인트라 모드를 지시하는 경우, 디코딩 장치(200)는 엔트로피 디코딩(204)을 통해 획득된 인트라 예측 모드에 기초하여 현재 픽처의 복원 샘플들로부터 예측 샘플(또는 예측값)(213)을 획득할 수 있다(210). 예측 모드 정보가 인터 모드를 지시하는 경우, 디코딩 장치(200)는 엔트로피 디코딩(204)을 통해 획득된 움직임 정보에 기초하여 픽처 버퍼(214)에 저장된 참조 픽처로부터 예측 샘플(또는 예측값)(213)을 획득할 수 있다(212).
디코딩 장치(200)는 레지듀얼 데이터(209)와 예측 샘플(또는 예측값)(213)을 이용하여 현재 블록에 대한 복원 샘플(216)을 획득할 수 있다. 도 2에 예시되지 않았지만, 하나의 픽처에 대하여 복원 샘플(216)을 획득하여 픽처를 복원한 다음 복원 픽처에 대해 인루프 필터링이 수행될 수 있다. 그런 다음, 복원 픽처(216)는 다음 픽처의 디코딩을 위해 픽처 버퍼에 저장되거나 디스플레이를 위해 출력될 수 있다.
도 3은 인터프레임 스트라이프 예측(Interframe Stripe Prediction, ISP)을 이용한 인코딩 방법을 예시한다. ISP를 이용한 인코딩 방법은 FOR(First Order Residual) 코딩과 SOR(Second Order Residual) 코딩으로 나뉘며 FOR 코딩과 SOR 코딩을 순차적으로 수행한다. 원영상(302)은 하나의 픽처에 해당할 수 있지만, 본 예에서 원영상(302)은 픽처를 구성하는 하나의 블록이라고 가정한다. 원영상(302)은 적어도 하나의 픽셀을 포함할 수 있다. 원영상(302)은 제한적이지 않은 예로서 코딩 블록(coding block)에 해당할 수 있으며, 적어도 하나의 예측 블록(prediction block)을 포함할 수 있다. 이하의 설명에서, 원영상(302)은 입력 블록으로 지칭될 수 있다.
도 3을 참조하면, 입력 블록(302)은 FOR 코딩부(310) 및 SOR 코딩부(320)에 입력될 수 있다. FOR 코딩부(310)는 예를 들어 도 1을 참조하여 설명한 인코딩 방법에 따라 입력 블록(302)을 인코딩하여 비트스트림(314) 및 복원 샘플(312)을 생성할 수 있다. 예를 들어, 비트스트림(314)은 도 1의 비트스트림(116)에 대응되고 복원 샘플(312)은 도 1의 복원 샘플(121)에 대응될 수 있다. 본 명세서에서, FOR 코딩부(310)에 의해 생성된 비트스트림(314)을 FOR 비트스트림이라고 지칭한다. FOR 비트스트림(314)은 네트워크를 통해 전송되거나 저장장치에 저장될 수 있고, FOR 코딩부(310)로부터의 복원 샘플(312)은 SOR 코딩부(320)로 입력되어 SOR 코딩(320)을 위해 사용된다.
FOR 코딩부(310)에서는 높은 값을 가지는 양자화 파라미터(QP)가 적용된다(예, 도 1의 112 관련 설명 참조). 양자화 파라미터는 변환을 통해 획득된 변환 계수 정보의 크기 레벨(또는 변환 계수 레벨)을 스케일링하기 위한 변수를 지칭할 수 있다. 예를 들어, FOR 코딩부(310)에서는 30 내지 40 정도의 값을 가지는 양자화 파라미터가 사용될 수 있다. 이와 같이, 높은 값을 가지는 양자화 파라미터가 적용될 경우, 변환 계수 정보 중에서 고주파 영역에 존재하는 변환 계수 정보는 대부분 0의 값으로 스케일링될 수 있다. 이 경우, 입력 블록(302)과 FOR 코딩부(310)로부터의 복원 샘플(312) 간의 차이는 원영상 내의 객체(object)들의 경계에서 스트라이프 패턴을 보여주게 된다.
SOR 코딩부(320)는 입력 블록(302)과 FOR 코딩부(310)로부터의 복원 샘플(312)을 입력받고 두 신호 간의 차이로부터 레지듀얼 데이터(314)를 획득한다. FOR 코딩부(310)에서는 높은 값의 양자화 파라미터가 이용되므로 레지듀얼 데이터(314)는 원영상에서 객체들 간의 경계에 해당하는 스트라이프 패턴을 가질 수 있다. 획득된 레지듀얼 데이터(314)는 ISP(322)로 입력되며, ISP(322)는 레지듀얼 데이터(314)에 대해 예측을 수행하여 레지듀얼 데이터(314)에 대한 예측값(또는 예측 샘플)을 획득할 수 있다. ISP(322)는 레지듀얼 데이터(314)와 획득된 예측값 간의 차이로부터 레지듀얼 데이터(323)를 출력한다. ISP(322)의 동작에 대해서는 도 4 내지 도 7를 참조하여 자세히 설명한다.
SOR 코딩부(320)는 ISP(322)로부터 출력된 레지듀얼 데이터(323)에 대해 변환을 수행하여 변환 계수 정보를 획득하고, 획득된 변환 계수 정보를 양자화하여 양자화된 변환 계수 정보를 획득한다. 또한, SOR 코딩부(320)는 SOR 코딩을 위한 다양한 정보들과 양자화된 변환 계수 정보를 미리 정의된 포맷에 따라 엔트로피 코딩하여 비트스트림(328)을 생성한다. 본 명세서에서, SOR 코딩부(320)에 의해 생성된 비트스트림(328)을 SOR 비트스트림이라고 지칭한다.
SOR 코딩부(320)에 의해 생성된 양자화된 변환 계수 정보는 SOR 디코딩부(330)에 입력되며, SOR 디코딩부(330)는 양자화된 변환 계수 정보에 대해 역양자화 및 역변환을 수행하고 역변환된 레지듀얼 데이터에 대해 ISP(322)에서 획득된 움직임 정보(예, 변이 벡터(disparity vector))를 이용하여 인터프레임 스트라이프 예측을 수행한다. SOR 디코딩부(330)는 인터프레임 스트라이프 예측을 통해 획득된 예측 샘플을 역변환된 레지듀얼 데이터에 합산하여 SOR 코딩부(320)에 의한 복원 샘플(332)을 획득할 수 있다.
FOR 코딩(310)에 따른 복원 샘플(312)과 SOR 코딩(320)에 따른 복원 샘플(332)은 합산되어 도 3의 인코딩 방법에 따른 복원 샘플(342)을 생성한다. 복원 샘플(342)은 픽처 버퍼에 저장되어 다음 픽처의 FOR 코딩(310)에 사용될 수 있다. 또한, 다음 픽처의 SOR 코딩(320)을 위해 SOR 코딩(310)에 따른 복원 샘플(332)이 필요하므로 복원 샘플(332) 역시 픽처 버퍼에 저장될 수 있다. 또는, FOR 코딩에 따른 복원 샘플(312)과 SOR 코딩에 따른 복원 샘플(332)이 픽처 버퍼에 저장될 수도 있다.
도 4는 인터프레임 스트라이프 예측(ISP)의 순서도를 예시한다. 도 4에 예시된 순서는 오로지 예일 뿐이며, 수행 순서는 바뀔 수 있다.
S402 단계에서, 현재 블록의 스캔 모드를 결정한다. 스캔 모드는 해당 블록을 위한 스캐닝 순서를 지시한다. 보다 구체적으로, 스캔 모드는 블록의 샘플들을 일차원 배열(또는 스트라이프)로 전환하거나 일차원 샘플 배열(또는 스트라이프)을 블록으로 전환하는 스캐닝 순서를 지시할 수 있다. 스캔 모드는 본 명세서에서 스트라이프 스캐닝 모드 또는 ISP 모드라고 지칭될 수 있다. 예를 들어, 현재 블록의 사이즈가 8×8일 때 스캔 모드는 12개의 스캐닝 순서 중에서 하나를 나타낼 수 있다.
S402 단계에서, 현재 블록은 예를 들어 입력 블록(예, 302)과 입력 블록에 대한 FOR 코딩(예, 310)에 의해 생성되는 복원 신호(예, 312) 간의 차로부터 획득되는 레지듀얼 데이터(314)에 해당할 수 있다. 스캔 모드를 결정하기 위해 특정 메트릭을 설정하여 설정된 메트릭에 대해 각 스캔 모드를 적용한 결과 가장 좋은 값을 가지는 스캐닝 순서를 스캔 모드로서 결정할 수 있다. 예를 들어, 현재 블록을 특정 스캐닝 순서에 따라 일차원 샘플 배열로 표현했을 때 일차원 샘플 배열의 평활도(smoothness)를 메트릭으로서 사용할 수 있다. 평활도는 인접 샘플들 간의 차이의 합으로서 표현될 수 있다. 예를 들어, 일차원 샘플 배열에 포함된 각 인접 샘플들 간의 차이가 작은 경우 샘플 값의 변화가 작으므로 평활도가 높고, 일차원 샘플 배열에 포함된 각 인접 샘플들 간의 차이가 큰 경우 샘플 값의 변화가 크므로 평활도가 낮다.
보다 구체적인 예로서, 평활도를 측정하기 위해 일차원 샘플 배열에 포함된 인접 샘플들 간의 차이의 절대값의 합을 메트릭으로 사용할 수 있다. 이 경우, 가용한 스캐닝 모드들 중에서 일차원 샘플 배열에 포함된 각 인접 샘플들 간의 차의 절대값을 구하고 이들 절대값의 총합이 최소가 되는 스캐닝 순서를 스캔 모드로 결정할 수 있다. 예를 들어, 현재 블록이 8×8인 경우 12개의 스캐닝 순서 전부에 대해 각 인접 샘플들 간의 차의 절대값을 구한 후 가장 최소값을 보여주는 스캐닝 순서를 현재 블록의 스캔 모드로 결정할 수 있다. 일차원 배열에 포함된 인접 샘플들 간의 차이의 절대값의 합은 수학식 1에 의해 표현될 수 있다.
Figure pct00003
수학식 1에서 maxPix는 해당 블록에 포함된 픽셀들의 개수를 나타내고, p는 해당 블록에 대한 픽셀들의 스캐닝 순서 또는 일차원 샘플 배열에서 샘플들의 위치 또는 인덱스를 나타내고, s는 스캔 모드에 대응되는 번호 또는 인덱스를 나타내고, mod는 가용한 스캔 모드들의 집합을 나타내고, | |는 절대값을 나타내고, argmin은 mod에 속하는 s들 중에서 {}안의 결과값이 가장 작은 것을 선택하는 함수를 나타내고, m은 결정된 스캔 모드를 나타낸다. 또한, 수학식 1에서 Vs(p)는 스캔 모드 s에 따라 배열된 일차원 샘플 배열에서 p의 위치에 해당하는 샘플을 나타내고, D(s,p)는 스캔 모드 s에 따라 배열된 일차원 샘플 배열에서 p+1의 위치에 해당하는 샘플과 p의 위치에 해당하는 샘플 간의 차이를 나타낸다. p는 0 내지 (블록의 최대 픽셀 개수 - 1)의 값을 가질 수 있다.
S404 단계에서는, S402 단계에서 결정된 스캔 모드에 따라 현재 블록의 픽셀들을 스캐닝하여 일차원 샘플 배열을 획득할 수 있다. 설명의 편의를 위해, 특정 스캔 모드(또는 스캐닝 순서)에 따라 블록의 샘플들을 스캐닝하여 생성되는 일차원 샘플 배열을 스트라이프라고 지칭할 수 있고, 현재 블록으로부터 획득되는 샘플 배열(또는 스트라이프)를 현재 스트라이프라고 지칭할 수 있다. 스트라이프는 해당 블록에 포함된 픽셀 개수와 동일한 개수의 샘플들을 포함하며, 스트라이프 내에서 각 샘플은 스캐닝 순서에 대응되는 인덱스를 가진다. 예를 들어, 특정 블록을 스캐닝할 때 시작점에 대응되는 픽셀에 대해서는 인덱스 0이 할당되고, 마지막으로 스캐닝되는 픽셀에 대해서는 (해당 블록의 픽셀 수 - 1)의 인덱스가 할당될 수 있다. 보다 구체적인 예로, 8×8 블록에 대한 스트라이프에 포함된 픽셀들은 0 내지 63의 인덱스를 가질 수 있고, 4×4 블록에 대한 스트라이프에 포함된 픽셀들은 0 내지 15의 인덱스를 가질 수 있다.
스트라이프는 적어도 하나의 세그먼트로 분할될 수 있다. 본 명세서에서 세그먼트는 스트라이프 내에 포함된 샘플들 중에서 일부 또는 전부를 포함하는 샘플들의 그룹을 지칭할 수 있다. 하나의 스트라이프를 구성하는 세그먼트들은 동일한 개수의 샘플들을 포함할 수 있지만, 이에 제한되는 것은 아니다. 각 세그먼트는 서로 다른 개수의 샘플들을 포함하도록 구성될 수 있다. 또한, 하나의 세그먼트는 해당 세그먼트를 포함하는 스트라이프 내에서 연속된 샘플들을 포함하도록 구성될 수 있으며, 이에 제한되는 것은 아니다. 하나의 세그먼트는 스트라이프 내에서 불연속적인 인덱스를 가지는 샘플들을 포함하도록 구성될 수 있으며, 이 경우 세그먼트 내에 포함되는 샘플들은 특정 오프셋을 가지도록 구성될 수 있다.
예를 들어, 8×8 블록에 대응되는 스트라이프가 4개의 세그먼트로 분할되는 경우, 스트라이프 내에서 인덱스 0 내지 인덱스 15를 가지는 샘플들이 제1 세그먼트에 포함될 수 있고, 인덱스 16 내지 인덱스 31을 가지는 샘플들이 제2 세그먼트에 포함될 수 있고, 인덱스 32 내지 인덱스 47을 가지는 샘플들이 제3 세그먼트에 포함될 수 있고, 인덱스 48 내지 인덱스 63을 가지는 샘플들이 제4 세그먼트에 포함될 수 있다(예, 도 6(c) 참조).
S406 단계에서는, 참조 블록의 스캔 모드를 결정한다. 참조 블록은 적어도 하나의 참조 샘플을 포함하며, 현재 픽처와 상이한 참조 픽처로부터 획득하거나 현재 픽처의 복원 샘플로부터 획득할 수 있다. 참조 블록은 움직임 정보(예, 참조 픽처 인덱스, 움직임 벡터)에 기초하여 획득하거나 미리 정의된 위치로부터 획득할 수 있다. 움직임 정보에 기초하여 획득하는 경우, 움직임 정보는 SOR 코딩을 위한 이전 픽처의 복원 샘플(예, 도 3의 332)에 대하여 움직임 추정을 수행하여 획득할 수도 있고, 혹은 FOR 코딩(예, 310)에 의해 결정된 움직임 정보에 기초하여 획득할 수도 있다. 참조 블록을 미리 정의된 위치로부터 획득하는 경우, 참조 블록은 예를 들어 이전 인코딩된 참조 픽처 내에서 현재 블록에 대응되는 위치의 블록(colocated block)으로부터 획득할 수 있다. S406 단계에서, 참조 블록은 SOR 코딩으로부터의 복원 샘플(예, 도 3의 332)로부터 획득할 수 있다.
참조 블록의 스캔 모드를 결정하기 위해 현재 블록의 스캔 모드를 결정하는 데 사용된 방식이 동일 또는 유사하게 적용될 수 있다. 예를 들어, 참조 블록을 특정 스캐닝 순서에 따라 일차원 샘플 배열로 표현했을 때 일차원 샘플 배열의 평활도(smoothness)를 메트릭으로서 사용할 수 있다. 보다 구체적인 예로, 일차원 샘플 배열에 포함된 각 인접 샘플들 간의 차의 절대값을 구하고 이들 절대값의 총합이 최소가 되는 스캐닝 순서를 스캔 모드로 결정할 수 있다.
S408 단계에서는, S406 단계에서 결정된 스캔 모드에 따라 참조 블록의 스트라이프를 획득한다. 설명의 편의를 위해, 참조 블록으로부터 획득되는 샘플 배열(또는 스트라이프) 또는 참조 샘플 배열을 참조 스트라이프라고 지칭할 수 있다.
S410 단계에서는, 현재 블록의 스트라이프에 대한 변이 벡터(disparity vector)를 획득한다. 변이 벡터를 구하기 위해, 현재 블록의 스트라이프를 적어도 하나의 세그먼트로 분할하고, 분할된 각 세그먼트에 대하여 변이 벡터를 획득할 수 있다. 예를 들어, 현재 블록의 스트라이프가 특정 개수의 세그먼트로 분할되는 경우, 현재 스트라이프에 대해 상기 특정 개수 만큼의 변이 벡터를 획득할 수 있다. 현재 블록의 스트라이프에 포함되는 세그먼트들의 개수는 인코더와 디코더 측에서 미리 정의되거나, 혹은 인코더 측에서 RD 최적화를 위한 세그먼트 개수를 결정한 다음 이를 비트스트림을 통해 디코더 측에 알려줄 수 있다.
현재 블록의 스트라이프의 특정 세그먼트에 대한 변이 벡터를 구하기 위해, 상기 특정 세그먼트에 포함된 샘플들과 참조 블록의 스트라이프로부터의 참조 샘플들 간에 SAD(Sum of Absolute Difference)를 구한 후 SAD가 최소가 되는 참조 샘플들을 결정할 수 있다. 결정된 참조 샘플들의 위치와 상기 특정 세그먼트의 위치 간의 차이를 기초로 변이 벡터로 결정할 수 있다. 예를 들어, 변이 벡터는 해당 세그먼트의 시작 샘플 위치와 SAD가 최소인 샘플들의 시작 샘플 위치 간의 차이 또는 변위를 나타낼 수 있다.
S412 단계에서, 각 세그먼트에 대한 예측 샘플을 획득할 수 있다. 인코딩 과정에서 예측 샘플은 S410 단계에서 SAD가 최소인 참조 샘플들로부터 획득할 수 있고, 디코딩 과정에서 예측 샘플은 변이 벡터를 이용하여 참조 블록의 스트라이프로부터 획득할 수 있다. 획득된 예측 샘플을 이용하여 각 세그먼트에 대한 레지듀얼 데이터를 구할 수 있으며, 레지듀얼 데이터는 변환 및 양자화(예, 도 3의 324)와 엔트로피 코딩(예, 도 3의 326)을 거쳐 비트스트림(예, 도 3의 328)에 포함될 수 있고, S410 단계에서 획득한 변이 벡터는 엔트로피 코딩(예, 도 3의 326)을 통해 비트스트림(예, 도 3의 328)에 포함될 수 있다. 혹은, 각 세그먼트에 대한 레지듀얼 데이터를 접합(concatenation)하여 현재 블록에 대한 레지듀얼 데이터를 구할 수 있으며, 현재 블록에 대한 레지듀얼 데이터에 대해 변환, 양자화, 엔트로피 코딩이 수행될 수 있다.
도 5는 인터프레임 스트라이프 예측(ISP)에 사용될 수 있는 스캔 모드를 예시한다. 도 5의 예에서 작은 정사각형은 하나의 픽셀을 나타내고 굵은 실선은 스캐닝 순서를 나타낸다. 도 5의 예는 8×8 블록에 대한 스캔 모드를 예시한 것이지만, 현재 블록이 8×8이 아닌 다른 크기를 갖더라도 도 5에 예시된 것과 유사한 스캔 모드들이 사용될 수 있다. 현재 블록이 8×8인 경우 12개의 스캔 모드가 있을 수 있고, 현재 블록이 4×4인 경우 6개의 스캔 모드가 있을 수 있고, 현재 블록이 16×16인 경우 18개의 스캔 모드가 있을 수 있고, 현재 블록이 32×32인 경우 24개의 스캔 모드가 있을 수 있다. 도 5(a)는 스캔 모드 0을 예시한 것이고, 도 5(b)는 스캔 모드 1을 예시한 것이고, 도 5(c)는 스캔 모드 2를 예시한 것이고, 도 5(d)는 스캔 모드 3을 예시한 것이고, 도 5(e)는 스캔 모드 10을 예시한 것이고, 도 5(e)는 스캔 모드 11을 예시한 것이다. 나머지 스캔 모드 4 내지 9도 도 5에 예시된 것과 유사한 방식으로 결정될 수 있다.
도 5(a)를 참조하면, 현재 블록의 V0(0)부터 시작하여 수직 방향으로 가장 상단 픽셀까지 순차적으로 스캐닝한 다음 V0(0)의 오른쪽 픽셀부터 수직 방향으로 가장 상단 픽셀까지 순차적으로 스캐닝하는 방식으로 가장 오른쪽 열까지 스캐닝하여 일차원 샘플 배열을 생성할 수 있다.
도 5(b)를 참조하면, 현재 블록의 V1(0)부터 시작하여 수직 방향으로 가장 상단 픽셀까지 순차적으로 스캐닝한다. 그런 다음, V1(0)을 포함하는 열의 가장 하단 픽셀부터 V1(0)의 바로 아래 픽셀까지 스캔한 다음, V1(0)의 오른쪽 픽셀을 스캐닝하고 수직 방향으로 상단 픽셀까지 순차적으로 스캐닝한다. 나머지 픽셀들도 동일한 방식으로 굵은 실선이 지나가는 픽셀들을 화살표 방향으로 순차적으로 스캐닝하여 일차원 샘플 배열을 생성할 수 있다.
도 5(c)를 참조하면, 현재 블록의 V2(0)부터 시작하여 수직 방향으로 가장 상단 픽셀까지 순차적으로 스캐닝한다. 그런 다음, V2(0)을 포함하는 열에서 V2(0)의 두 번째 아래 픽셀을 스캐닝하고 그 위의 픽셀을 스캐닝한 다음, V2(0)의 오른쪽 픽셀을 스캐닝하고 그 바로 위의 픽셀을 스캐닝한다. 나머지 픽셀들도 동일한 방식으로 굵은 실선이 지나가는 픽셀들을 화살표 방향으로 순차적으로 스캐닝하여 일차원 샘플 배열을 생성할 수 있다.
도 5(d)를 참조하면, 현재 블록의 V3(0)부터 시작하여 대각선 오른쪽 상단 방향으로 순차적으로 스캐닝한다. 왼쪽 상단에 있는 굵은 실선의 화살표부터 오른쪽 하단에 있는 굵은 실선의 화살표 순으로 굵은 실선이 지나가는 픽셀들을 화살표 방향으로 순차적으로 스캐닝하여 일차원 샘플 배열을 생성할 수 있다.
도 5(e)를 참조하면, 현재 블록의 V10(0)부터 시작하여 수직 방향으로 아래쪽으로 스캐닝한다. 그런 다음, V10(0)의 왼쪽 픽셀부터 시작하는 화살표를 따라 굵은 실선이 지나가는 순서대로 순차적으로 픽셀들을 스캐닝한다. 나머지 픽셀들도 동일한 방식으로 굵은 실선이 지나가는 픽셀들을 화살표 방향으로 순차적으로 스캐닝하여 일차원 샘플 배열을 생성할 수 있다.
도 5(f)를 참조하면, 현재 블록의 V11(0)부터 시작하여 수직 방향으로 아래쪽으로 스캐닝한다. 그런 다음, V11(0)의 왼쪽 픽셀부터 시작하는 화살표를 따라 굵은 실선이 지나가는 순서대로 순차적으로 픽셀들을 스캐닝한다. 나머지 픽셀들도 동일한 방식으로 굵은 실선이 지나가는 픽셀들을 화살표 방향으로 순차적으로 스캐닝하여 일차원 샘플 배열을 생성할 수 있다.
도 6은 특정 스캔 모드에 따라 생성된 스트라이프 및 세그먼트를 예시한다. 도 6의 예에서 8×8 블록에 대한 스트라이프를 생성하는 것을 가정하지만 다른 크기의 블록들에 대해서도 동일/유사한 원리가 적용될 수 있다. 또한, 도 6에서 참조 블록의 스캔 모드는 스캔 모드 0으로 결정되고 현재 블록의 스캔 모드는 스캔 모드 1로 결정된다고 가정하지만, 참조 블록과 현재 블록에 대해 스캔 모드가 스캔 모드 0 또는 1이 아닌 다른 스캔 모드로 결정되더라도 동일/유사하게 스트라이프가 생성될 수 있다. 예를 들어, 도 6(a)의 예는 도 4의 S406 및 S408와 관련되고, 도 6(b)의 예는 도 4의 S402 및 S404와 관련된다.
도 6(a)를 참조하면, 참조 블록의 스캔 모드에 따른 순서로 참조 블록의 픽셀들을 스캐닝하여 도 6(a)의 오른쪽과 같이 참조 스트라이프를 생성할 수 있다. 예를 들어, 도 4의 S402 단계를 참조하여 설명한 바와 같이, 일차원 배열의 평활도(smoothness)를 기준으로 참조 블록의 스캔 모드를 결정하고 이에 따라 참조 스트라이프를 생성할 수 있다. 도 6의 예에서, 8×8 블록을 가정한 것이므로 가용한 스캔 모드는 12개가 있다고 가정하면, 해당 블록을 12개 스캔 모드 각각에 대해 일차원 샘플 배열로 전환한 다음 수학식 1에 따른 결과값을 구한 후 12개의 결과값 중에서 가장 작은 값을 보여주는 스캔 모드를 참조 블록의 스캔 모드로 결정할 수 있다. 이러한 연산의 결과로서, 도 6(a)의 예에서 스캔 모드 0이 참조 블록의 스캔 모드로 결정되고, 도 6(b)의 예에서 스캔 모드 1이 현재 블록의 스캔 모드로 결정될 수 있다.
도 6(c)를 참조하면, 도 6(b)에 예시된 현재 스트라이프를 4개의 세그먼트로 분할할 수 있다. 예를 들어, 인덱스 0 내지 인덱스 15에 대응되는 픽셀들을 세그먼트 0에 할당하고, 인덱스 16 내지 31에 대응되는 픽셀들을 세그먼트 1에 할당하고, 인덱스 32 내지 47에 대응되는 픽셀들을 세그먼트 2에 할당하고, 인덱스 48 내지 63에 대응되는 픽셀들을 세그먼트 3에 할당할 수 있다. 그런 다음, 각각의 분할된 세그먼트에 대해 변이 벡터를 구할 수 있다.
도 7은 세그먼트에 대한 변이 벡터를 예시한다. 특정 세그먼트에 대한 변이 벡터를 구하기 위해, 참조 스트라이프 내에서 특정 세그먼트와 동일한 길이의 참조 샘플들을 비교하여 SAD(Sum of Absolute Difference) 값이 최소가 되는 참조 샘플들을 찾을 수 있다. 예를 들어, 참조 스트라이프에서 인덱스 0에 대응되는 샘플부터 해당 세그먼트와 동일한 길이를 가지는 참조 샘플들과 해당 세그먼트 간의 SAD 값을 구하고, 픽셀 구간을 하나씩 오른쪽 이동시키면서 순차적으로 SAD 값을 구한 후 최소의 SAD값을 보여주는 참조 샘플들을 찾을 수 있다. 도 7의 예에서는, 8×8 블록 크기를 가정하고 현재 스트라이프가 4개의 세그먼트로 분할되는 것을 가정하였으므로, 세그먼트 0에 대해서 참조 스트라이프의 0 내지 15의 샘플들과 SAD를 구하고, 참조 스트라이프의 1 내지 16의 샘플들과 SAD를 구하고, 이러한 과정을 순차적으로 반복하여 참조 스트라이프의 48 내지 63의 샘플들과 SAD를 구할 수 있다. 따라서, 도 7의 예에서는, 세그먼트 0에 대해서 49번 SAD 연산을 수행하여 49개의 SAD 값을 구할 수 있으며, 49개의 SAD 값 중에서 가장 작은 값을 보여주는 참조 샘플들을 결정할 수 있다.
변이 벡터(Disparity Vector)는 참조 스트라이프 내에서 SAD를 최소화하는 참조 샘플들의 시작 위치와 해당 세그먼트의 시작 위치 간의 차이 또는 변위로서 표현될 수 있다. 도 7의 예에서, 세그먼트 0에 대해 가장 작은 SAD 값을 보여주는 참조 스트라이프의 참조 샘플들은 샘플 3 내지 18으로 결정될 수 있다. 이 경우, 세그먼트 0에 대한 변이 벡터는 3으로 표현될 수 있다(예, DV0=+3). 마찬가지로, 도 7의 예에서, 세그먼트 3에 대해서도 앞서 설명한 바와 동일/유사한 과정을 반복하여 가장 작은 SAD 값을 보여주는 참조 스트라이프의 참조 샘플들은 샘플 46 내지 61로 결정될 수 있다. 이 경우, 세그먼트 3에 대한 변이 벡터는 -2로 표현될 수 있다(예, DV0=-2). 도 7을 참조하여 설명된 동작은 예를 들어 도 4의 S410에서 수행될 수 있다.
변이 벡터와 현재 블록의 스캔 모드는 엔트로피 코딩을 거쳐 비트스트림(예, SOR 비트스트림(328))에 저장될 수 있다. 참조 블록의 스캔 모드는 인코더 측에서 사용한 방식과 동일한 방식을 통해 디코더 측에서 구할 수 있으므로 비트스트림에 저장되지 않을 수 있다. 반면, 디코더 측에서 현재 블록에 대한 정보가 없으므로 인코더 측에서 사용한 스캔 모드를 알 수 없다. 따라서, 현재 블록의 스캔 모드는 엔트로피 코딩되어 비트스트림에 포함될 수 있다. 또한, 각 세그먼트에 대하여 0이 아닌 양자화된 변환 계수 정보가 있는지 여부를 나타내는 정보가 포함될 수 있다. 편의상, 0이 아닌 양자화된 변환 계수 정보가 있는지 여부를 나타내는 정보는 CBF(Coded Block Flag)라고 지칭될 수 있다. 해당 세그먼트에 대해 0이 아닌 변환 계수 정보가 있는 경우 1의 값을 가지는 CBF가 비트스트림에 저장될 수 있다. 해당 세그먼트에 대해 0이 아닌 변환 계수 정보가 없는 경우 0의 값을 가지는 CBF가 비트스트림에 저장될 수 있다.
또한, 세그먼트 분할 방식은 인코더 측과 디코더 측에서 동일하게 미리 정의되어 있을 수 있으며, 이 경우 세그먼트 분할 방식에 대한 정보는 비트스트림(예, SOR 비트스트림(328))에 포함되지 않을 수 있다. 하지만, 가변적인 세그먼트 분할 방식을 지원하는 경우 세그먼트 분할 방식에 대한 정보도 비트스트림에 포함될 수 있다. 예를 들어, 세그먼트 분할 방식에 대한 정보는 현재 스트라이프가 분할되는 세그먼트의 개수 정보, 각 세그먼트에 포함되는 샘플들의 개수 정보 등 중에서 적어도 하나를 포함할 수 있다.
도 3에 예시된 인코딩 방법의 경우, FOR 코딩(310)을 거쳐 생성된 복원 샘플(312)을 이용하여 SOR 코딩(320)을 수행하므로 2개의 인코딩 과정이 순차적으로 수행되어야 한다. 따라서, FOR 코딩에 대응되는 인코딩 과정만을 수행하는 기존의 인코딩 방법(예, 도 1 참조)에 비해 처리 지연(processing delay)이 생긴다. 또한, 순차적인 인코딩 과정으로 인해 병렬 처리(parallel processing)를 위한 구현이 불가능하다.
또한, 도 3의 인코딩 방법의 경우, FOR 코딩(310) 및 SOR 코딩(320)의 2개 레이어로 구성되므로 FOR 코딩 및 SOR 코딩으로부터 2개의 비트스트림(예, SOR 비트스트림(328) 및 FOR 비트스트림(314))이 생성될 수 있다. 따라서, 하나의 영상을 인코딩/디코딩하기 위해 2개의 비트스트림이 필요하다. 이 경우, 하나의 영상 시퀀스를 2개의 비트스트림으로 코딩하므로 각 비트스트림에 포함되는 신택스(syntax)들이 중복될 수 있으며, 중복되는 신택스들로 인해 코딩 효율이 저하될 수 있다.
또한, 도 3의 인코딩 방법의 경우, 다음 픽처의 코딩을 위해 2가지 종류의 복원 샘플(예, 332 및 342, 또는 312 및 332)을 픽처 버퍼(또는 decoded picture buffer)에 저장하여야 할 필요가 있다. 따라서, 기존 방법(예, 도 1 참조)에 비해 복원 샘플 저장을 위한 저장 공간이 늘어나므로 저장 공간이 많이 요구되는 문제점이 있다.
이에 본 발명에서는 앞서 설명한 도 3의 인코딩 방법의 문제점을 개선하기 위한 방법을 제안한다. 본 발명에 따른 인코딩 방법에서는 원영상 및 복원 영상을 필터링하여 저주파 영상과 고주파 영상으로 분리한 다음, 저주파 영상에 대해서는 기존의 방법에 따른 인코딩 방법(예, 도 1 참조)을 적용하고 고주파 영상에 대해서는 ISP를 적용하여 인코딩을 수행한다. 원영상 및 복원 영상에 적용되는 필터는 예를 들어 저주파 통과 필터(Low Pass Filter)이며 입력 영상의 저주파 성분을 출력으로 생성한다. 필터의 계수 및 사이즈(또는 커널 사이즈(kernel size))는 필터에 입력되는 영상의 종류 및 사이즈에 따라 다르게 적용될 수 있다. 본 발명에 따른 인코딩/디코딩 방법은 주파수 분할 코딩 방식이라고 지칭될 수 있다.
도 8은 본 발명에 따른 인코딩 방법을 예시한다. 도 8의 예에서는 인터 예측 모드를 이용한 코딩을 중심으로 설명하지만, 본 발명에 따른 인코딩 방법은 인트라 예측 모드를 이용한 코딩 방법에도 동일/유사하게 적용될 수 있다.
도 8에 예시된 인코딩 방법에서는 기존의 인코딩 방법(예, 도 1 참조)과 본 발명에 따른 인코딩 방법이 선택적으로 사용될 수 있다. 예를 들어, RD(Rate-Distortion) 비용을 계산하여 기존의 인코딩 방법과 본 발명에 따른 인코딩 방법 중에서 더 나은 결과를 보여주는 인코딩 방법을 선택할 수 있다.
도 8을 참조하면, 스위치 A와 스위치 B는 각각 기존의 인코딩 방법(예, 도 1 참조)을 위한 데이터 경로와 본 발명에 따른 인코딩 방법을 위한 데이터 경로를 선택하기 위해 스위칭할 수 있다. 만일 RD 비용을 계산하여 기존의 인코딩 방법이 선택되는 경우 스위치 A는 P1으로 스위칭될 수 있고 스위치 B는 P4로 스위칭될 수 있다. 기존의 인코딩 방법이 선택되는 경우 현재 픽처에서 현재 블록(org)은 P1을 거쳐 합산기에 입력된다. 또한, 픽처 버퍼(decoded picture buffer)에 저장된 참조 픽처들을 이용하여 움직임 추정(ME)을 수행하여(INTER 블록), 움직임 정보와 참조 샘플들을 획득한 후 INTER로 설정된 스위치의 경로를 따라 합산기에 입력될 수 있다. 합산기에서 현재 블록(org)과 참조 픽처의 참조 샘플 간의 레지듀얼 데이터를 획득한 다음, 기존 인코딩 방법에 따라 획득한 레지듀얼 데이터에 대해 변환 및 양자화(TQ)를 거쳐 변환 계수 정보(coeff1)를 생성한다. 생성된 변환 계수 정보(coeff1)는 P4를 통해 엔트로피 코딩(EC)을 거쳐 비트스트림에 저장된다. 또한, 생성된 변환 계수 정보(coeff1)는 다시 역변환 및 역양자화(IQIT)를 거쳐 복원되며, 현재 블록의 복원 샘플들(recon1)은 픽처 버퍼에 저장된다.
만일 RD 비용을 계산하여 본 발명에 따른 인코딩 방법이 선택되는 경우 스위치 A는 P2로 스위칭될 수 있고 스위치 B는 P3로 스위칭될 수 있다. 이 경우, 현재 픽처의 현재 블록(org)은 P2를 통해 필터(Filter A)로 입력된다. 필터(Filter A)는 저주파 통과 필터일 수 있으며, 입력된 현재 블록을 필터링하여 현재 블록의 저주파 성분에 대한 입력 샘플(lowfreq input)을 생성할 수 있다. 또한, 필터(Filter A)를 통해 출력되는 입력 샘플(lowfreq input)은 합산기로 입력되며, 합산기는 현재 블록(org)의 샘플과 현재 블록의 저주파 성분에 대한 입력 샘플(lowfreq input) 간의 차이로부터 현재 블록의 고주파 성분에 대응되는 입력 샘플(highfreq input)을 생성할 수 있다.
인터 예측 모드로 코딩하기 위해 움직임 추정(ME)을 수행할 수 있다. 움직임 추정을 수행하기 위해 픽처 버퍼(Decoded Picture Buffer)에 저장된 참조 픽처의 참조 샘플들을 필터링할 수 있다. 참조 샘플은 픽처 버퍼로부터 필터(Filter B)에 입력되며, 필터(Filter B)는 입력된 참조 샘플을 필터링하여 저주파 성분에 대응되는 참조 샘플(lowfreq ref)을 생성한다. 생성된 저주파 성분의 참조 샘플(lowfreq ref)은 저주파 성분을 위한 움직임 추정부(INTER LOW)에 입력되며, 저주파 성분을 위한 움직임 추정부(INTER LOW)에서는 현재 블록의 저주파 성분에 대응되는 입력 샘플(lowfreq input)과 저주파 성분의 참조 샘플(lowfreq ref)을 이용하여 움직임 추정을 수행한다. 움직임 추정을 수행한 결과 움직임 정보(예, 움직임 벡터, 참조 픽처 인덱스 등)와 저주파 성분의 예측 샘플(lowfreq pred)을 획득할 수 있다.
현재 블록의 저주파 성분에 대응되는 입력 샘플(lowfreq input)과 저주파 성분의 예측 샘플(lowfreq pred)은 합산기에 입력되어 저주파 성분에 대응되는 레지듀얼 데이터(lowfreq residual)를 생성할 수 있다. 저주파 성분에 대응되는 레지듀얼 데이터(lowfreq residual)에 대해 변환 및 양자화(TQ)를 수행하여 저주파 성분의 변환 계수 정보(lowfreq quantized coeff)를 생성할 수 있다. 생성된 저주파 성분의 변환 계수 정보(lowfreq quantized coeff)는 다시 역양자화 및 역변환(IQIT)을 거쳐 저주파 성분의 예측 샘플(lowfreq pred)과 합산되어 저주파 성분의 복원 샘플(lowfreq recon)을 생성한다.
또한, 저주파 성분에 대응되는 참조 샘플(lowfreq ref)은 참조 픽처의 참조 샘플과 함께 합산기에 입력되며, 합산기에서는 저주파 성분에 대응되는 참조 샘플(lowfreq ref)과 참조 픽처의 참조 샘플 간의 차이로부터 고주파 성분에 대응되는 참조 샘플(highfreq ref)을 생성한다. 생성된 고주파 성분의 참조 샘플(highfreq ref)은 고주파 성분을 위한 움직임 추정부(INTER HIGH)에 입력되며, 고주파 성분을 위한 움직임 추정부(INTER HIGH)에서는 현재 블록의 고주파 성분에 대응되는 입력 샘플(highfreq input)과 고주파 성분의 참조 샘플(highfreq ref)을 이용하여 움직임 추정을 수행한다. 움직임 추정을 수행한 결과 움직임 정보(예, 움직임 벡터, 참조 픽처 인덱스 등)와 고주파 성분의 예측 샘플(highfreq pred)을 획득할 수 있다.
혹은, 저주파 성분에 대한 움직임 추정과 고주파 성분에 대한 움직임 추정을 개별적으로 실시할 경우, 처리 시간이 많이 소요될 수 있고, 움직임 정보를 각각 전송해야 하므로 비트스트림을 통해 전송해야할 정보들이 증가할 수 있다. 이를 방지하기 위해, 고주파 성분에 대한 움직임 추정을 수행하지 않고 저주파 성분에 대한 움직임 정보를 이용하여 고주파 성분의 참조 샘플(highfreq ref)로부터 고주파 성분의 예측 샘플(highfreq pred)을 획득할 수 있다. 혹은, 고주파 성분에 대한 움직임 추정만을 수행한 후 고주파 성분에 대한 움직임 정보를 이용하여 저주파 성분의 예측 샘플(lowfreq pred)을 획득하는 것도 가능하다.
현재 블록의 고주파 성분에 대응되는 입력 샘플(highfreq input)과 고주파 성분의 예측 샘플(highfreq pred)은 인터프레임 스트라이프 예측부(ISP)에 입력된다. 인터프레임 스트라이프 예측부(ISP)에서는 도 4 내지 도 7을 참조하여 설명한 동작들을 수행할 수 있다. 이 경우, 현재 블록의 고주파 성분에 대응되는 입력 샘플(highfreq input)은 예를 들어 도 4의 현재 블록에 해당할 수 있고, 고주파 성분의 예측 샘플(highfreq pred)은 예를 들어 도 4의 참조 블록에 해당할 수 있다.
인터프레임 스트라이프 예측부(ISP)는 인터프레임 스트라이프 예측을 수행하여 고주파 성분의 레지듀얼 데이터(highfreq residual)와 현재 블록의 고주파 성분에 대응되는 입력 샘플(highfreq input)에 대한 세그먼트들의 변이 벡터를 생성한다. 고주파 성분의 레지듀얼 데이터(highfreq residual)에 대해 변환 및 양자화(TQ)를 수행하여 고주파 성분의 변환 계수 정보(highfreq quantized coeff)를 생성할 수 있다. 생성된 고주파 성분의 변환 계수 정보(highfreq quantized coeff)는 다시 역양자화 및 역변환(IQIT)을 거쳐 고주파 성분의 예측 샘플(highfreq pred)과 합산되어 고주파 성분의 복원 샘플(highfreq recon)을 생성한다.
저주파 성분의 복원 샘플(lowfreq recon)과 고주파 성분의 복원 샘플(highfreq recon)은 합산되어 복원 샘플(recon2)을 생성할 수 있다. 생성된 복원 샘플(recon2)은 다음 픽처의 인코딩을 위해 픽처 버퍼(Decoded Picture Buffer)에 저장될 수 있다.
또한, 저주파 성분의 변환 계수 정보(lowfreq quantized coeff)와 고주파 성분의 변환 계수 정보(highfreq quantized coeff)는 P3에서 병합되어 하나의 변환 계수 정보(coeff2)를 형성할 수 있다. 병합된 변환 계수 정보(coeff2)에 대해 엔트로피 코딩을 수행하여 비트스트림을 생성한다.
이상 설명한 바와 같이, 도 3의 인코딩 방법에 비해, 본 발명에서는 ISP를 적용할 영상 신호의 생성 방법을 변경하였다. 도 3의 인코딩 방법의 경우 FOR 코딩을 통해 복원 신호를 생성한 후 생성된 복원 신호를 이용하여 ISP를 적용할 영상 신호를 생성하였기 때문에 입력 신호를 주파수 도메인으로 변환하고 다시 픽셀 도메인(또는 공간 도메인)으로 변환하는 과정이 필요하며 인코딩 과정이 다수의 레이어(예, FOR 코딩 및 SOR 코딩)로 나뉘어 순차적으로 수행된다. 반면, 본 발명의 경우 픽셀 도메인(또는 공간 도메인)에서 필터링을 통해 ISP를 적용할 영상 신호를 생성하기 때문에, 하나의 레이어로 구현될 수 있으며, 하나의 인코더/디코더로 구성될 수 있다.
또한, 본 발명에 따른 인코딩 방법에 의하면, 현재 블록에 대해 필터링(예, Filter A)을 수행하여 현재 블록의 저주파 성분(예, lowfreq input)과 고주파 성분(예, highfreq input)을 처리 지연 없이 거의 동시에 생성할 수 있다. 또한, 현재 블록의 저주파 성분을 위한 코딩과 고주파 성분을 위한 (ISP를 이용한) 코딩을 병렬적으로 수행할 수 있다.
또한, 본 발명에 따른 인코딩 방법에 의하면, 입력 영상을 고주파 성분과 저주파 성분으로 나누어 각 주파수 영역의 특성에 맞는 예측, 변환, 양자화를 수행할 수 있다. 또한, 본 발명에 따른 인코딩 방법에 의하면, 하나의 비트스트림만이 생성되므로 신택스 중복에 따른 코딩 효율 저하를 방지할 수 있다.
도 9는 본 발명에 적용될 수 있는 필터를 예시한다. 본 발명에서는 픽셀 도메인(또는 공간 도메인)에서 영상 신호에 대해 필터링을 수행하여 영상 신호를 저주파 성분에 대응되는 샘플과 고주파 성분에 대응되는 샘플로 분할한다. 주파수 분할을 위한 필터로서 원영상 신호를 위한 필터(예, Filter A)와 복원 영상 신호를 위한 필터(예, Filter B)가 사용될 수 있다.
본 발명에 따른 주파수 분할을 위한 필터로서 저주파 통과 필터가 사용될 수 있으며, 예를 들어 가우시안(Gaussian) 필터가 사용될 수 있다. 도 9는 3×3 가우시안 필터를 예시한 것이지만 본 발명은 이에 제한되는 것은 아니며, 필터의 계수 및 사이즈는 영상의 종류 및 사이즈에 따라 다양하게 변경될 수 있다. 도 9에 예시된 필터를 적용할 경우 수학식 2에 따라 입력 샘플의 저주파 성분에 대응되는 샘플을 구할 수 있다.
Figure pct00004
수학식 2에서 O(x,y)는 원영상 신호 또는 복원 영상 신호의 (x,y) 위치에 있는 샘플을 나타내고, L(x,y)는 (x,y) 위치에 있는 저주파 성분의 샘플을 나타낸다. 본 발명에 따른 주파수 분할 필터는 대상 샘플 O(x,y)와 그에 인접한 이웃 샘플들에 대해 가우시안 필터를 적용함으로써 원영상 신호 또는 복원 영상 신호의 저주파 성분 샘플(예, 도 8의 lowfreq input 또는 lowfreq ref)을 생성할 수 있다.
또한, 원영상 신호 또는 복원 영상 신호의 고주파 성분 샘플(예, 도 8의 highfreq input 또는 highfreq ref)은 원영상 신호 또는 복원 영상 신호 O(x,y)와 저주파 성분 샘플 L(x,y) 간의 차분을 기초로 획득할 수 있다. 예를 들어, 원영상 신호 또는 복원 영상 신호의 고주파 성분 샘플(예, 도 8의 highfreq input 또는 highfreq ref)은 수학식 3에 의해 생성될 수 있다. 수학식 3에서 H(x,y)는 (x,y) 위치에 있는 고주파 성분 샘플을 나타낸다.
Figure pct00005
원영상 신호를 위한 필터(예, Filter A)는 복원 영상 신호를 위한 필터(예, Filter B)와 동일하게 설정되거나 상이하게 설정될 수 있다. 동일하게 설정되는 경우 각 필터의 필터 계수 및 사이즈(또는 커널 사이즈)는 동일할 수 있고, 상이하게 설정되는 경우 각 필터의 필터 계수 및/또는 사이즈(또는 커널 사이즈)가 상이할 수 있다. 또한, 원영상 신호를 위한 필터(예, Filter A)와 복원 영상 신호를 위한 필터(예, Filter B)는 각 영상 신호의 특성에 따라 서로 다른 종류의 저주파 통과 필터가 사용될 수 있다.
도 10은 본 발명에 따라 생성된 비트스트림에 포함된 정보를 예시한다. 본 명세서에서 비트스트림에 포함된 개개의 정보들은 신택스(또는 신택스 요소)라고 지칭될 수 있다. 도 10(a)는 기존 인코딩 방법(예, 도 1 참조)에 따라 현재 블록(예, 코딩 블록)을 인코딩했을 때 생성되는 비트스트림의 신택스를 예시하고, 도 10(b)는 본 발명에 따른 인코딩 방법에 따라 현재 블록(예, 코딩 블록)을 인코딩했을 때 생성되는 비트스트림의 신택스를 예시한다. 인코더 측에서 각 정보는 미리 정의된 순서에 따라 엔트로피 코딩을 거쳐 비트스트림에 저장될 수 있고, 디코더 측에서는 상기 순서에 따라 엔트로피 디코딩을 거쳐 비트스트림으로부터 각 신택스에 해당하는 정보를 획득할 수 있다. 본 발명은 도 10에 예시된 순서에 제한되지 않으며, 신택스 순서는 변경될 수 있다.
도 10(a)를 참조하면, 기존 인코딩 방법(예, 도 1 참조)에 따라 생성되는 비트스트림은 예측 모드 정보(1002), 파티션 모드 정보(1004), 예측 정보(1006), 변환 계수 정보(1008) 등을 포함할 수 있다. 예측 모드 정보(1002)는 현재 블록이 인트라 예측 모드로 코딩되는지 아니면 인터 예측 모드로 코딩되는지를 지시한다. 예를 들어, 예측 모드 정보(1002)가 제1 값(예, 0)을 가지는 경우 현재 블록이 인터 예측 모드로 코딩되는 것을 지시하고, 예측 모드 정보(1002)가 제2 값(예, 1)을 가지는 경우 현재 블록이 인트라 예측 모드로 코딩되는 것을 지시할 수 있다. 제1 값과 제2 값은 서로 바뀔 수 있다. 예측 모드 정보(1002)는 예를 들어 pred_mode_flag로 명명될 수 있다.
파티션 모드 정보(1004)는 현재 블록(예, 코딩 블록)의 파티셔닝 모드를 지시한다. 파티션 모드 정보(1004)는 예측 모드 정보(1002)에 의해 결정되는 예측 모드에 따라 다양한 파티셔닝 모드를 지시할 수 있다. 파티션 모드 정보(1004)는 예를 들어 part_mode로 명명될 수 있다. 표 1은 예측 모드 및 파티션 모드 정보(1004)에 따른 파티셔닝 모드를 예시한다.
Figure pct00006
표 1에서 PART_2Nx2N, PART_2NxN, PART_Nx2N, PART_NxN은 대칭적인 파티셔닝 모드에 해당하고 PART_2NxnU, PART_2NxnD, PART_nLx2N, PART_nRx2N은 비대칭적인 파티셔닝 모드에 해당한다.
표 1에서 현재 블록의 사이즈가 2N×2N이라고 가정하면, 표 1에서 PART_2Nx2N은 파티션의 사이즈가 2N×2N임을 나타내며 현재 블록이 파티셔닝되지 않음을 의미한다. PART_NxN은 파티션의 사이즈가 N×N임을 나타내며 현재 블록이 절반의 높이 및 폭(즉, N×N)을 가지는 4개의 파티션으로 파티셔닝됨을 의미한다. PART_2NxN은 파티션의 사이즈가 2N×N임을 나타내며 현재 블록이 절반의 높이 및 동일한 높이(즉, 2N×N)를 가지는 2개의 파티션으로 파티셔닝됨을 의미한다. PART_Nx2N은 파티션의 사이즈가 N×2N임을 나타내며 현재 블록이 동일한 높이 및 절반의 폭(즉, N×2N)을 가지는 2개의 파티션으로 파티셔닝됨을 의미한다.
PART_2NxnU는 2개의 파티션으로 파티셔닝됨을 의미하고, 2개의 파티션 중 상위 파티션이 현재 블록과 동일한 폭 및 1/4 높이(즉, 2N×(N/2))를 가지고, 2개의 파티션 중 하위 파티션이 현재 블록과 동일한 폭 및 3/4 높이(즉, 2N×(3N/2))를 가짐을 의미한다. PART_2NxnD는 2개의 파티션으로 파티셔닝됨을 의미하고, 상위 파티션이 현재 블록과 동일한 폭 및 3/4 높이(즉, 2N×(3N/2))를 가지고, 하위 파티션이 현재 블록과 동일한 폭 및 1/4 높이(즉, 2N×(N/2))를 가짐을 의미한다. PART_nRx2N은 2개의 파티션으로 파티셔닝됨을 의미하고, 2개의 파티션 중 왼쪽 파티션이 현재 블록의 3/4 폭 및 동일한 높이(즉, (3N/2)×2N)를 가지고, 2개의 파티션 중 오른쪽 파티션이 현재 블록의 1/4 높이 및 동일한 폭(즉, (N/2)×2N)을 가짐을 의미한다. PART_nLx2N은 2개의 파티션으로 파티셔닝됨을 의미하고, 2개의 파티션 중 왼쪽 파티션이 현재 블록의 1/4 폭 및 동일한 높이(즉, (N/2)×2N)를 가지고, 2개의 파티션 중 오른쪽 파티션이 현재 블록의 3/4 높이 및 동일한 폭(즉, (3N/2)×2N)을 가짐을 의미한다.
예측 정보(1006)는 예측 모드에 따라 서로 다른 신택스를 가질 수 있다. 예측 모드가 인트라 모드인 경우, 예측 정보(1006)는 현재 블록의 휘도(luma)(또는 luminance) 샘플들을 위한 인트라 예측 모드를 지시하는 정보(예, prev_intra_luma_pred_flag, mpm_idx, rem_intra_luma_pred_mode)와 현재 블록의 색차(chroma)(또는 chrominance 또는 color difference) 샘플들을 위한 인트라 예측 모드를 지시하는 정보(예, intra_chroma_pred_mode)를 포함할 수 있다.
예측 모드가 인터 모드인 경우, 예측 정보(1006)는 현재 블록의 각 파티션에 대해 순방향(예, 리스트0) 움직임 벡터 후보의 인덱스를 지시하는 정보(예, mvp_l0_flag), 역방향(예, 리스트1) 움직임 벡터 후보의 인덱스를 지시하는 정보(예, mvp_l1_flag), 현재 블록의 해당 파티션을 위한 인터 예측 파라미터들이 이웃 파티션으로부터 유추되는지 여부를 지시하는 정보(예, merge_flag), 병합 후보 리스트에서 병합 후보 인덱스를 지시하는 정보(예, merge_idx), 해당 파티션에 대해 순방향(예, 리스트0), 역방향(예, 리스트1), 양방향 예측이 사용되는지 여부를 지시하는 정보(예, inter_pred_idc), 해당 파티션에 대한 리스트0 참조 픽처 인덱스를 지시하는 정보(예, ref_idx_l0), 해당 파티션에 대한 리스트1 참조 픽처 인덱스를 지시하는 정보(예, ref_idx_l1) 중에서 적어도 하나를 포함할 수 있다.
변환 계수 정보(1008)는 양자화된 변환 계수 정보를 지시하는 신택스들을 포함할 수 있다.
도 10(b)를 참조하면, 기존 인코딩 방법에 따른 신택스 외에 본 발명에 따른 비트스트림은 추가적인 신택스를 포함할 수 있다. 구체적으로, 본 발명에 따른 비트스트림은 주파수 분할 플래그 정보(1010), 세그먼트 개수 정보(1012), ISP 모드 정보(1014), ISP 변이 벡터 정보(1016), 제1 변환 계수 정보(1018), 제2 변환 계수 정보(1020) 중에서 적어도 하나를 포함할 수 있다.
주파수 분할 플래그 정보(1010)는 본 발명에 따른 주파수 분할 코딩 방식이 적용되는지 여부를 지시한다. 주파수 분할 플래그 정보(1010)가 제1 값(예, 1)을 가지는 경우, 본 발명에 따른 주파수 분할 코딩 방식이 적용됨을 지시하며, 비트스트림은 본 발명에 따른 주파수 분할 코딩 방법을 지원하기 위한 신택스를 포함할 수 있다. 주파수 분할 플래그 정보(1010)가 제2 값(예, 0)을 가지는 경우, 본 발명에 따른 주파수 분할 코딩 방식이 적용되지 않음을 지시하며, 비트스트림은 기존 방법에 따른 변환 계수 정보(1008)를 포함할 수 있다. 제1 값과 제2 값은 서로 바뀔 수 있다. 주파수 분할 플래그 정보(1010)는 예를 들어 freq_div_flag으로 명명될 수 있다.
주파수 분할 플래그 정보(1010)가 제1 값(예, 1)을 가지는 경우, 비트스트림은 세그먼트 개수 정보(1012), ISP 모드 정보(1014), ISP 변이 벡터 정보(1016), 제1 변환 계수 정보(1018), 제2 변환 계수 정보(1020)를 포함할 수 있다.
세그먼트 개수 정보(1012)는 현재 블록의 스트라이프에 포함되는 세그먼트들의 개수를 지시한다. 예를 들어, 세그먼트 개수 정보(1012)는 (현재 블록의 스트라이프에 포함되는 세그먼트들의 개수 - 1)의 값을 가질 수 있다. 이 경우, 현재 블록의 스트라이프가 4개의 세그먼트들로 분할되는 경우, 세그먼트 개수 정보(1012)는 3의 값을 가질 수 있다. 세그먼트 개수 정보(1012)가 지시하는 개수에 해당하는 세그먼트들이 현재 블록의 스트라이프에 존재할 수 있으며, 각 세그먼트에 대하여 ISP 변이 벡터 정보(1016), 제1 변환 계수 정보(1018), 제2 변환 계수 정보(1020) 등의 신택스들이 존재할 수 있다. 예를 들어, 세그먼트 개수 정보(1012)는 (N-1)의 값을 가지는 경우 현재 블록의 스트라이프는 N개의 세그먼트들로 분할되므로, N개의 세그먼트들 각각에 대하여 ISP 변이 벡터 정보(1016), 제1 변환 계수 정보(1018), 제2 변환 계수 정보(1020) 등의 신택스들이 존재할 수 있다. 혹은, 각 세그먼트들에 대해 ISP 변이 벡터 정보(1016)가 존재하고, 제1 변환 계수 정보(1018)과 제2 변환 계수 정보(1020)는 N개 세그먼트 전체에 대해 존재할 수 있다. 또한, 세그먼트들이 가변적인 길이를 가지는 경우, 세그먼트 개수 정보(1012)는 각 세그먼트들의 길이를 지시하는 정보를 더 포함할 수 있다.
ISP 모드 정보(1014)는 현재 블록을 위한 ISP 모드를 지시한다. ISP 모드는 현재 블록을 위한 스캐닝 순서를 지시한다. 보다 구체적으로, ISP 모드는 블록의 샘플들을 일차원 샘플 배열(또는 스트라이프)로 전환하거나 일차원 샘플 배열(또는 스트라이프)을 블록으로 전환하는 스캐닝 순서를 지시한다(예, 도 5 참조). 본 명세서에서, ISP 모드는 스캔 모드 또는 스트라이프 스캔 모드로 지칭될 수 있다. 현재 블록의 사이즈에 따라 다양한 ISP 모드가 존재할 수 있으며, 각 ISP 모드는 고유한 값을 가지도록 설정될 수 있다. ISP 모드 정보(1014)는 예를 들어 ISP_mode 또는 interframe_stripe_prediction_mode로 명명될 수 있다.
현재 블록의 사이즈에 따라 ISP 모드는 높은 값을 가질 수 있으므로 코딩 효율을 높이기 위해 현재 블록의 ISP 모드를 예측할 수 있다. 예를 들어, 참조 블록의 ISP 모드(예, 도 4의 S406, 도 6(a) 참조)를 이용하여 현재 블록의 ISP 모드를 예측할 수 있다. 이 경우, 참조 블록의 ISP 모드가 현재 블록의 예측 ISP 모드로서 사용될 수 있으며, ISP 모드 정보(1014)는 참조 블록의 ISP 모드와 현재 블록의 ISP 모드 간의 차이를 지시할 수 있다. 따라서, ISP 모드 정보(1014)를 비트스트림으로부터 획득한 후 참조 블록의 ISP 모드를 예측 ISP 모드로서 이용하여 현재 블록을 위한 ISP 모드를 구할 수 있다.
저주파 성분과 고주파 성분에 대해 별개의 움직임 정보가 비트스트림을 통해 전송되는 경우, 참조 블록은 고주파 성분에 대한 움직임 정보를 이용하여 참조 픽처로부터 구할 수 있다. 혹은, 저주파 성분과 고주파 성분 중 하나의 움직임 정보만이 비트스트림을 통해 전송되는 경우, 참조 블록은 하나의 움직임 정보를 이용하여 참조 픽처로부터 구할 수 있다. 이렇게 구한 참조 블록에 대한 ISP 모드를 결정하여(예, 도 4의 S406, 도 6(a) 참조) 결정된 ISP 모드에 기초하여 현재 블록을 위한 ISP 모드를 예측할 수 있다. 다른 예로, 현재 블록의 예측 움직임 벡터(motion vector predictor 또는 predicted motion vector)를 가지는 블록의 ISP 모드를 이용하여 현재 블록의 ISP 모드를 예측할 수 있다. 또 다른 예로, 현재 블록의 움직임 정보가 현재 픽처 내에서 인접한 이웃 블록 또는 시간적으로 현재 픽처와 서로 다른 픽처 내에서 현재 블록에 대응되는 위치의 블록으로부터 유도되는 경우, 해당 블록의 ISP 모드를 이용하여 현재 블록의 ISP 모드를 예측하거나, 혹은 현재 블록의 ISP 모드 정보(1014)를 비트스트림으로부터 획득하지 않고 해당 블록의 ISP 모드를 현재 블록의 ISP 모드로 사용할 수 있다.
ISP 변이 벡터 정보(1016)는 특정 세그먼트에 대한 변이 벡터를 지시할 수 있다. 변이 벡터는 해당 세그먼트의 시작 위치와 참조 샘플 배열(또는 스트라이프)의 예측 샘플의 시작 위치 간의 차이 또는 변위를 지시할 수 있다(예, 도 7 참조). 디코딩 장치는 참조 블록의 스트라이프 내에서 ISP 변이 벡터가 지시한 위치로부터 해당 세그먼트의 예측 샘플을 획득할 수 있다. ISP 변이 벡터 정보(1016)는 예를 들어 ISP_disparity 또는 interframe_stripe_prediction_disparity로 명명될 수 있다.
ISP 변이 벡터에 대해 예측을 수행할 수 있다. 이 경우, ISP 변이 벡터 정보(1016)는 ISP 변이 벡터 후보에 대한 인덱스와 ISP 변이 벡터 차분을 포함할 수 있다. ISP 변이 벡터 차분은 예측 ISP 변이 벡터와 현재 블록의 ISP 변이 벡터 간의 차이를 지시할 수 있다. 예를 들어, 디코딩 장치는 현재 블록에 인접한 이웃 블록의 ISP 변이 벡터를 ISP 변이 벡터 후보 리스트를 구성하고 ISP 변이 벡터 후보 리스트 중에서 ISP 변이 벡터 후보에 대한 인덱스가 지시하는 ISP 변이 벡터 후보를 예측 ISP 변이 벡터로서 결정할 수 있다. 그런 다음, 디코딩 장치는 예측 ISP 변이 벡터와 ISP 변이 벡터 차분을 이용하여(예, 합산하여) ISP 변이 벡터를 구할 수 있다. 혹은, 다른 예로, 현재 블록의 움직임 정보가 현재 픽처 내에서 인접한 이웃 블록 또는 시간적으로 현재 픽처와 서로 다른 픽처 내에서 현재 블록에 대응되는 위치의 블록으로부터 유도되는 경우, 해당 블록의 ISP 변이 벡터를 현재 블록을 위한 ISP 변이 벡터로서 이용할 수 있다.
제1 변환 계수 정보(1018)는 현재 블록의 저주파 성분에 대한 양자화된 변환 계수 정보(예, 도 8의 lowfreq quantized coeff)를 포함하고, 제2 변환 계수 정보(1020)는 현재 블록의 고주파 성분에 대한 양자화된 변환 계수 정보(예, 도 8의 highfreq quantized coeff)를 포함한다. 제1 변환 계수 정보(1018)와 제2 변환 계수 정보(1020)의 순서는 서로 바뀔 수 있다.
도 11은 주파수 분할 코딩 방식에 따른 디코딩 방법의 순서도를 예시한다.
S1102 단계에서, 디코딩 장치는 현재 블록의 주파수 분할 플래그 정보(예, 1010)를 비트스트림으로부터 획득할 수 있다. 만일 주파수 분할 플래그 정보가 기존 방법에 따른 디코딩 과정을 지시하는 경우, 디코딩 장치는 S1118 단계로 진행할 수 있다. 만일 주파수 분할 플래그 정보가 본 발명에 따른 디코딩 과정을 지시하는 경우, 디코딩 장치는 S1104 단계 및 S1110 단계로 진행할 수 있다.
S1104 단계로 진행하는 경우, 디코딩 장치는 비트스트림으로부터 세그먼트 개수 정보(예, 1012)를 획득하고 세그먼트 개수 정보가 지시하는 개수의 세그먼트 각각에 대해 S1104 단계 내지 S1108 단계를 수행할 수 있다.
S1104 단계에서, 현재 블록의 고주파 성분에 대응되는 적어도 하나의 예측 샘플을 획득한다. 본 명세서에서, 현재 블록의 고주파 성분에 대응되는 예측 샘플은 제1 예측 샘플이라고 지칭될 수 있다. 디코딩 장치는 제1 예측 샘플을 획득하기 위해 비트스트림으로부터 움직임 정보(예, 움직임 벡터, 참조 픽처 인덱스 등)를 획득할 수 있다. 혹은, 현재 블록의 움직임 정보가 현재 픽처 내에서 인접한 이웃 블록 또는 시간적으로 현재 픽처와 서로 다른 픽처 내에서 현재 블록에 대응되는 위치의 블록으로부터 유도되는 경우, 해당 블록의 움직임 정보를 현재 블록의 움직임 정보로서 사용할 수 있다. 예를 들어, 디코딩 장치는 참조 픽처 리스트 중에서 참조 픽처 인덱스가 가리키는 참조 픽처로부터 움직임 벡터에 기초하여 적어도 하나의 참조 샘플을 획득할 수 있다. 획득한 적어도 하나의 참조 샘플은 제1 참조 샘플이라고 지칭될 수 있고, 참조 블록에 대응될 수 있다. 제1 참조 샘플은 현재 블록을 포함하는 현재 픽처와 상이한 참조 픽처로부터 획득될 수 있다.
획득한 제1 참조 샘플에서 고주파 성분을 구하기 위해 제1 참조 샘플을 필터링할 수 있다. 필터링은 가우시안 필터(예, 도 8의 Filter B, 도 9 참조)와 같은 저주파 통과 필터를 적용하는 것을 포함할 수 있다. 디코딩 장치는 제1 참조 샘플과 필터링된 제1 참조 샘플 간의 차분을 구하고, 차분을 참조 샘플 배열로 전환할 수 있다. 이 경우, 차분은 참조 블록에 해당하고 이차원 샘플 배열에 해당할 수 있으며(예, 도 4의 S406 관련 설명 참조), 참조 샘플 배열은 참조 스트라이프에 해당하고 일차원 샘플 배열에 해당할 수 있다(예, 도 4의 S408 참조). 디코딩 장치는 차분을 참조 샘플 배열로 전환하기 위해 차분에 대한 ISP 모드를 결정할 수 있다(예, 도 4의 S406 참조). 디코딩 장치는 결정된 ISP 모드에 따라 차분을 참조 샘플 배열로 전환할 수 있다.
그런 다음, 디코딩 장치는 비트스트림으로부터 ISP 변이 벡터 정보(예, 도 10의 1016)를 획득할 수 있다. 디코딩 장치는 획득한 ISP 변이 벡터 정보에 기초하여 해당 세그먼트에 대한 ISP 변이 벡터를 획득하고, 획득한 ISP 변이 벡터를 이용하여 참조 샘플 배열로부터 제1 예측 샘플을 구할 수 있다. 예를 들어, ISP 변이 벡터를 구하기 위해, 도 10의 ISP 변이 벡터 정보(1016)와 관련하여 설명한 다양한 방법이 적용될 수 있다. 또한, ISP 변이 벡터가 참조 샘플 배열 내에서 분수 위치(fractional position)를 가리키는 경우, 참조 샘플 배열에 포함된 샘플들을 보간하여 예측 샘플을 구할 수 있다. 예를 들어, 분수 위치에 가장 가까운 2개의 샘플들을 선형 보간하는 방식으로 예측 샘플들을 구할 수 있다. 다른 예로, 분수 위치에 가장 가까운 적어도 4개의 샘플들에 대해 4탭 이상의 필터를 적용하는 방식으로 예측 샘플들을 구할 수 있다.
현재 블록에 대해 적어도 2개의 세그먼트가 존재하는 경우, 각각의 세그먼트에 대해 ISP 변이 벡터 정보를 획득하여 이에 기초하여 예측 샘플들을 획득할 수 있다.
S1106 단계에서, 디코딩 장치는 비트스트림으로부터 고주파 성분에 대한 변환 계수 정보(예, 도 10의 1020, 도 8의 highfreq quantized coeff)를 획득하고, 획득된 변환 계수 정보에 기초하여 역변환(IT)을 수행하여 현재 블록의 고주파 성분에 대한 레지듀얼 데이터(예, 도 8의 highfreq residual)를 획득할 수 있다. 현재 블록의 고주파 성분에 대한 레지듀얼 데이터는 제1 레지듀얼 데이터라고 지칭될 수 있다. 보다 구체적으로, 획득된 변환 계수 정보에 대해 역양자화(IQ) 및 역변환(IT)을 수행하여 제1 레지듀얼 데이터를 획득할 수 있다.
S1108 단계에서, 각 세그먼트에 대해 S1104 단계에서 획득한 예측 샘플과 S1106 단계에서 획득한 레지듀얼 데이터에 기초하여 현재 블록의 고주파 성분에 대응되는 복원 샘플을 구할 수 있다. 예를 들어, 각 세그먼트에 대한 복원 샘플은 S1104 단계에서 획득한 예측 샘플과 S1106 단계에서 획득한 레지듀얼 데이터를 합산하여 획득할 수 있다. 각 세그먼트에 대한 복원 샘플은 소정의 순서로 접합(concatenation)하여 현재 블록의 고주파 성분을 위한 샘플 배열(또는 스트라이프)를 복원할 수 있다. 디코딩 장치는 현재 블록을 위한 ISP 모드 정보(예, 도 10의 1014)를 획득한 후 ISP 모드 정보가 지시하는 스캐닝 순서(또는 ISP 모드)에 따라 복원 샘플 배열(또는 스트라이프)을 순차적으로 배열하여 이차원 배열(또는 블록)로 전환할 수 있다.
디코딩 장치는 S1110 단계로 진행하여 현재 블록의 저주파 성분을 복원할 수 있다.
S1110 단계에서, 현재 블록의 저주파 성분에 대한 예측 샘플을 획득한다. 본 명세서에서, 현재 블록의 저주파 성분에 대한 예측 샘플은 제2 예측 샘플이라고 지칭될 수 있다. 제2 예측 샘플을 획득하기 위해 기존 방법에 따른 예측 방식이 수행될 수 있다. 예를 들어, 현재 블록의 예측 모드 정보(예, 도 10의 1002)가 인트라 모드를 가리키는 경우, 디코딩 장치는 비트스트림으로부터 인트라 예측 모드 정보를 획득하여, 획득한 인트라 예측 모드 정보를 기초로 현재 픽처 내의 복원 픽셀로부터 현재 블록의 저주파 성분 데이터에 대한 참조 샘플을 획득할 수 있다. 다른 예로, 현재 블록의 예측 모드 정보(예, 도 10의 1002)가 인터 모드를 가리키는 경우, 디코딩 장치는 움직임 정보를 획득하여, 획득한 움직임 정보를 기초로 현재 픽처와 시간적으로 상이한 참조 픽처 내의 복원 픽셀로부터 현재 블록의 저주파 성분 데이터에 대한 참조 샘플을 획득할 수 있다.
디코딩 장치는 획득한 참조 샘플에 대해 필터링을 적용하여 현재 블록의 저주파 성분에 대한 예측 샘플을 획득할 수 있다. 필터링은 가우시안 필터(예, 도 8의 Filter B, 도 9 참조)와 같은 저주파 통과 필터를 적용하는 것을 포함할 수 있다. 제1 예측 샘플을 구하는 데 이용되는 필터와 제2 예측 샘플을 구하는 데 이용되는 필터는 동일할 수 있지만, 본 발명은 이에 제한되지 않으며, 서로 다른 필터들이 사용될 수 있다.
S1112 단계에서, 디코딩 장치는 비트스트림으로부터 현재 블록의 저주파 성분에 대한 변환 계수 정보(예, 도 10의 1018, 도 8의 lowfreq quantized coeff)를 획득하고, 획득된 변환 계수 정보에 기초하여 역변환(IT)을 수행하여 현재 블록의 저주파 성분에 대한 레지듀얼 데이터(예, 도 8의 lowfreq residual)를 획득할 수 있다. 보다 구체적으로, 현재 블록의 저주파 성분에 대한 레지듀얼 데이터는 비트스트림으로부터 획득한 변환 계수 정보에 대해 역양자화(IQ) 및 역변환(IT)을 수행하여 구할 수 있다.
S1114 단계에서, S1110 단계에서 획득한 예측 샘플과 S1112 단계에서 획득된 레지듀얼 데이터에 기초하여 현재 블록의 저주파 성분에 대한 복원 샘플을 획득할 수 있다. 예를 들어, 현재 블록의 저주파 성분에 대한 복원 샘플은 S1110 단계에서 획득된 예측 샘플과 S1112 단계에서 획득된 레지듀얼 데이터를 합산하여 구할 수 있다.
디코딩 장치는 S1108 단계에서 획득한 현재 블록의 고주파 성분을 위한 복원 샘플들과 S1114 단계에서 획득한 현재 블록의 저주파 성분을 위한 복원 샘플들을 합산하여 현재 블록을 복원할 수 있다(S1116).
만일 S1102 단계에서 주파수 분할 플래그 정보가 기존 방법에 따른 디코딩 과정(예, 도 2 참조)을 지시하는 경우, 디코딩 장치는 S1118 단계로 진행하여 기존 방법에 따른 디코딩 과정을 수행할 수 있다. S1118 단계는 기존 디코딩 방법에서 인트라 예측(210) 또는 인터 예측(212)을 통해 예측 샘플을 획득하는 과정에 대응되고, S1120 단계는 비트스트림으로부터 변환 계수 정보를 획득하고(예, 204) 획득한 변환 계수 정보를 역양자화(206) 및 역변환(208)하여 레지듀얼 데이터를 획득하는 과정에 대응되고, S1122 단계는 예측값과 레지듀얼 데이터에 기초하여 현재 블록을 복원(216)하는 과정에 대응될 수 있다.
본 발명에 따른 디코딩 과정에서는 하나의 비트스트림을 수신하며, 참조 픽처의 고주파 성분과 저주파 성분이 픽셀 도메인(또는 공간 도메인)에서 필터링을 통해 생성되므로 참조 픽처의 저주파 성분과 고주파 성분을 위한 별도의 저장 공간이 요구되지 않는다. 또한, 참조 픽처의 고주파 성분과 저주파 성분이 픽셀 도메인(또는 공간 도메인)에서 필터링을 통해 생성되므로 처리 지연이 낮고 병렬 처리를 위한 구현이 가능하다.
도 12는 본 발명이 적용될 수 있는 영상 처리 장치의 블록도를 예시한다. 영상 처리 장치는 영상 신호의 인코딩 장치 및/또는 디코딩 장치를 포함할 수 있다. 예를 들어, 본 발명이 적용될 수 있는 영상 처리 장치는 스마트폰 등과 같은 이동 단말, 랩톱 컴퓨터 등과 같은 휴대용 기기, 디지털 TV, 디지털 비디오 플레이어 등과 같은 가전 제품 등을 포함할 수 있다.
메모리(12)는 프로세서(11)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 부호화된 비트스트림, 복호화된 영상, 제어 정보 등을 저장할 수 있다. 또한, 메모리(12)는 각종 영상 신호를 위한 버퍼로서 활용될 수 있다. 메모리(12)는 ROM(Read Only Memory), RAM(Random Access Memory), EPROM(Erasable Programmable Read Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래쉬(flash) 메모리, SRAM(Static RAM), HDD(Hard Disk Drive), SSD(Solid State Drive) 등과 같은 저장 장치로서 구현될 수 있다.
프로세서(11)는 영상 처리 장치 내 각 모듈의 동작을 제어한다. 특히, 프로세서(11)는 본 발명에 따른 인코딩/디코딩을 수행하기 위한 각종 제어 기능을 수행할 수 있다. 프로세서(11)는 컨트롤러(controller), 마이크로 컨트롤러(microcontroller), 마이크로 프로세서(microprocessor), 마이크로 컴퓨터(microcomputer) 등으로도 불릴 수 있다. 프로세서(11)는 하드웨어(hardware) 또는 펌웨어(firmware), 소프트웨어, 또는 이들의 결합에 의해 구현될 수 있다. 하드웨어를 이용하여 본 발명을 구현하는 경우에는, 본 발명을 수행하도록 구성된 ASIC(application specific integrated circuit) 또는 DSP(digital signal processor), DSPD(digital signal processing device), PLD(programmable logic device), FPGA(field programmable gate array) 등이 프로세서(11)에 구비될 수 있다. 한편, 펌웨어나 소프트웨어를 이용하여 본 발명을 구현하는 경우에는 본 발명의 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등을 포함하도록 펌웨어나 소프트웨어가 구성될 수 있으며, 본 발명을 수행할 수 있도록 구성된 펌웨어 또는 소프트웨어는 프로세서(11) 내에 구비되거나 메모리(12)에 저장되어 프로세서(11)에 의해 구동될 수 있다.
또한, 장치(10)는 네트워크 인터페이스 모듈(network interface module, NIM)(13)을 선택적으로(optionally) 포함할 수 있다. 네트워크 인터페이스 모듈(13)은 프로세서(11)와 동작시 연결(operatively connected)되며, 프로세서(11)는 네트워크 인터페이스 모듈(13)을 제어하여 무선/유선 네트워크를 통해 정보 및/또는 데이터, 신호, 메시지 등을 나르는 무선/유선 신호를 전송 또는 수신할 수 있다. 네트워크 인터페이스 모듈(13)은 예를 들어 IEEE 802 계열, 3GPP LTE(-A), Wi-Fi, ATSC(Advanced Television System Committee), DVB(Digital Video Broadcasting) 등과 같은 다양한 통신 규격을 지원하며, 해당 통신 규격에 따라 제어 정보 및/또는 부호화된 비트스트림과 같은 영상 신호를 송수신할 수 있다. 네트워크 인터페이스 모듈(13)은 필요에 따라 장치에 포함되지 않을 수 있다.
또한, 장치(10)는 입출력 인터페이스(14)를 선택적으로(optionally) 포함할 수 있다. 입출력 인터페이스(14)는 프로세서(11)와 동작시 연결(operatively connected)되며, 프로세서(11)는 입출력 인터페이스(14)를 제어하여 제어 신호 및/또는 데이터 신호를 입력받거나 출력할 수 있다. 입출력 모듈(14)은 예를 들어 키보드, 마우스, 터치패드, 카메라 등과 같은 입력 장치와 디스플레이 등과 같은 출력 장치와 연결될 수 있도록 USB(Universal Serial Bus), Bluetooth, NFC(Near Field Communication), 직렬/병렬 인터페이스, DVI(Digital Visual Interface), HDMI(High Definition Multimedia Interface) 등과 같은 규격을 지원할 수 있다.
이상에서 설명된 방법들 및 실시예들은 본 발명의 구성요소들과 특징들이 소정 형태로 결합된 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려되어야 한다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및/또는 특징들을 결합하여 본 발명의 실시예를 구성하는 것도 가능하다. 본 발명의 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다. 특허청구범위에서 명시적인 인용 관계가 있지 않은 청구항들을 결합하여 실시예를 구성하거나 출원 후의 보정에 의해 새로운 청구항으로 포함시킬 수 있음은 자명하다.
본 발명에 따른 방법 및 실시예는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 본 발명의 일 실시예는 하나 또는 그 이상의 ASIC(application specific integrated circuit), DSP(digital signal processor), DSPD(digital signal processing device), PLD(programmable logic device), FPGA(field programmable gate array), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명은 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차, 함수 등의 형태를 포함하는 소프트웨어 코드 또는 명령어(instruction)로 구현될 수 있다. 소프트웨어 코드 또는 명령어는 컴퓨터 판독가능한 매체에 저장되어 프로세서에 의해 구동될 수 있으며 프로세서에 의해 구동될 때 본 발명에 따른 동작들을 수행할 수 있다. 상기 컴퓨터 판독가능한 매체는 상기 프로세서 내부 또는 외부에 위치하거나 원격으로 네트워크를 통해 상기 프로세서와 연결될 수 있으며, 상기 프로세서와 데이터를 주고 받을 수 있다.
본 발명은 본 발명의 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
본 발명은 영상 처리 장치에 이용될 수 있다.

Claims (15)

  1. 디코딩 장치에서 비디오 신호(video signal)를 디코딩하기 위한 방법으로서,
    현재 블록을 포함하는 픽처와 상이한 제1 참조 픽처로부터 적어도 하나의 제1 참조 샘플(reference sample)을 획득하는 단계;
    상기 획득한 제1 참조 샘플에 필터를 적용하여 필터링된 제1 참조 샘플을 생성하는 단계;
    상기 획득한 제1 참조 샘플과 상기 필터링된 제1 참조 샘플 간의 차분(difference)으로부터 참조 샘플 배열(reference sample array)을 생성하는 단계;
    상기 비디오 신호로부터 제1 변이 벡터(disparity vector) 정보를 획득하는 단계;
    상기 제1 변이 벡터 정보에 기초하여 상기 생성된 참조 샘플 배열로부터 제1 예측 샘플을 획득하는 단계; 및
    상기 제1 예측 샘플에 기초하여 상기 현재 블록을 복원하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 비디오 신호로부터 상기 인터프레임 스트라이프 예측(ISP) 모드 정보를 획득하는 단계를 더 포함하며, 상기 ISP 모드 정보는 상기 현재 블록을 위한 스캐닝 순서를 지시하며,
    상기 현재 블록을 복원하는 단계는,
    상기 제1 예측 샘플에 기초하여 상기 현재 블록을 위한 일차원 샘플 배열을 복원하는 것과,
    상기 복원된 일차원 샘플 배열을 상기 ISP 모드 정보가 지시하는 스캐닝 순서에 따라 이차원 샘플 배열로 전환하는 것을 포함하는, 방법.
  3. 제1항에 있어서,
    상기 비디오 신호로부터 세그먼트 개수 정보를 획득하는 단계를 더 포함하며, 상기 세그먼트 개수 정보는 상기 현재 블록을 위한 일차원 샘플 배열에 포함되는 세그먼트의 개수를 지시하며,
    상기 세그먼트의 개수가 1보다 큰 경우, 상기 방법은
    상기 비디오 신호로부터 제2 변이 벡터 정보를 획득하는 단계; 및
    상기 제2 변이 벡터 정보에 기초하여 상기 참조 샘플 배열로부터 제2 예측 샘플을 획득하는 단계를 더 포함하며,
    상기 현재 블록은 상기 제1 예측 샘플과 상기 제2 예측 샘플에 기초하여 복원되는, 방법.
  4. 제1항에 있어서,
    상기 적어도 하나의 제1 참조 샘플을 획득하는 단계는
    상기 비디오 신호로부터 제1 움직임 정보를 획득하는 것과,
    상기 획득된 제1 움직임 정보로부터 제1 움직임 벡터 및 제1 참조 픽처 인덱스를 획득하는 것과, 상기 제1 참조 픽처 인덱스는 참조 픽처 리스트 내에서 상기 제1 참조 픽처를 가리키며,
    상기 제1 움직임 벡터에 기초하여 상기 제1 참조 픽처로부터 상기 적어도 하나의 제1 참조 샘플을 획득하는 것을 포함하는, 방법.
  5. 제1항에 있어서,
    상기 참조 샘플 배열을 생성하는 단계는,
    상기 차분을 제1 스캐닝 순서에 따라 제1 일차원 샘플 배열로 전환하는 것과,
    상기 제1 일차원 샘플 배열의 각 인접한 2개의 샘플 간의 차이의 절대값의 합을 구하는 것과,
    상기 차분을 제2 스캐닝 순서에 따라 제2 일차원 샘플 배열로 전환하는 것과,
    상기 제2 일차원 샘플 배열의 각 인접한 2개의 샘플 간의 차이의 절대값의 합을 구하는 것과,
    상기 제1 일차원 샘플 배열에 대한 절대값의 합과 상기 제2 일차원 샘플 배열에 대한 절대값의 합을 비교하는 것과,
    상기 비교 결과에 따라 절대값의 합이 작은 일차원 샘플 배열을 상기 참조 샘플 배열로 결정하는 것을 포함하는, 방법.
  6. 제1항에 있어서,
    상기 변이 벡터 정보는 상기 현재 블록 내에서 특정 세그먼트를 위한 변이 벡터를 지시하며,
    상기 변이 벡터는 상기 특정 세그먼트의 시작 샘플 위치와 상기 참조 샘플 배열 내에서 상기 제1 예측 샘플의 시작 샘플 위치 간의 차이를 나타내는, 방법.
  7. 제1항에 있어서,
    상기 비디오 신호로부터 제1 변환 계수 정보를 획득하는 단계;
    상기 획득한 제1 변환 계수 정보에 기초하여 역변환을 수행하여 제1 레지듀얼 데이터를 생성하는 단계를 더 포함하며,
    상기 현재 블록을 복원하는 단계는 상기 제1 예측 샘플과 상기 제1 레지듀얼 데이터를 이용하여 상기 현재 블록의 제1 복원 샘플을 획득하는 것을 포함하는, 방법.
  8. 제7항에 있어서,
    제2 참조 픽처로부터 적어도 하나의 제2 참조 샘플을 획득하는 단계;
    상기 획득한 제2 참조 샘플에 상기 필터를 적용하여 제2 예측 샘플을 생성하는 단계;
    상기 비디오 신호로부터 제2 변환 계수 정보를 획득하는 단계; 및
    상기 획득한 제2 변환 계수 정보에 기초하여 역변환을 수행하여 제2 레지듀얼 데이터를 생성하는 단계; 및
    상기 제2 예측 샘플, 상기 제2 레지듀얼 데이터에 기초하여 상기 현재 블록의 제2 복원 샘플을 획득하는 것을 포함하는, 방법.
  9. 제8항에 있어서,
    상기 현재 블록을 복원하는 단계는,
    상기 현재 블록의 제1 복원 샘플과 상기 제2 복원 샘플을 합산하여 상기 현재 블록을 복원하는 것을 포함하는, 방법.
  10. 제8항에 있어서,
    상기 적어도 하나의 제2 참조 샘플을 획득하는 단계는
    상기 비디오 신호로부터 제2 움직임 정보를 획득하는 것과,
    상기 획득된 제2 움직임 정보로부터 제2 움직임 벡터 및 제2 참조 픽처 인덱스를 획득하는 것과, 상기 제2 참조 픽처 인덱스는 참조 픽처 리스트 내에서 상기 제2 참조 픽처를 가리키며,
    상기 제2 움직임 벡터에 기초하여 상기 제2 참조 픽처로부터 상기 적어도 하나의 제2 참조 샘플을 획득하는 것을 포함하는, 방법.
  11. 제8항에 있어서,
    상기 제1 복원 샘플은 상기 현재 블록의 고주파 성분에 해당하고, 상기 제2 복원 샘플은 상기 현재 블록의 저주파 성분에 해당하는, 방법.
  12. 제1항에 있어서,
    상기 필터는 가우시안 필터를 포함하는, 방법.
  13. 제1항에 있어서,
    상기 필터링된 제1 참조 샘플은 다음 수학식에 따라 생성되며,
    Figure pct00007

    x는 샘플의 수평 좌표를 나타내고, y는 샘플의 수직 좌표를 나타내고, O(x,y)는 상기 적어도 하나의 제1 참조 샘플 중에서 (x,y) 위치에 대응되는 샘플을 나타내고, 상기 L(x,y)는 상기 필터링된 제1 참조 샘플 중에서 (x,y) 위치에 대응되는 샘플을 나타내는, 방법.
  14. 제13항에 있어서,
    상기 차분은 다음 수학식에 따라 생성되며,
    Figure pct00008

    H(x,y)는 상기 차분 중에서 (x,y) 위치에 대응되는 샘플을 나타내는, 방법.
  15. 비디오 신호(video signal)를 디코딩하도록 구성된 디코딩 장치로서,
    적어도 하나의 픽처를 저장하는 메모리; 및
    상기 메모리에 동작시 연결되는(operatively connected) 프로세서를 포함하며, 상기 프로세서는
    현재 블록을 포함하는 픽처와 상이한 제1 참조 픽처로부터 적어도 하나의 제1 참조 샘플(reference sample)을 획득하고,
    상기 획득한 제1 참조 샘플에 필터를 적용하여 필터링된 제1 참조 샘플을 생성하고,
    상기 획득한 제1 예측 샘플과 상기 필터링된 제1 참조 샘플 간의 차분(difference)으로부터 참조 샘플 배열(reference sample array)을 생성하고,
    상기 비디오 신호로부터 제1 변이 벡터(disparity vector) 정보를 획득하고,
    상기 제1 변이 벡터 정보에 기초하여 상기 생성된 참조 샘플 배열로부터 제1 예측 샘플을 획득하고,
    상기 제1 예측 샘플에 기초하여 상기 현재 블록을 복원하도록 구성되는, 디코딩 장치.
KR1020167032154A 2014-07-06 2015-07-06 비디오 신호의 처리 방법 및 이를 위한 장치 KR20170026334A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462021195P 2014-07-06 2014-07-06
US62/021,195 2014-07-06
PCT/KR2015/006951 WO2016006894A1 (ko) 2014-07-06 2015-07-06 비디오 신호의 처리 방법 및 이를 위한 장치

Publications (1)

Publication Number Publication Date
KR20170026334A true KR20170026334A (ko) 2017-03-08

Family

ID=55064456

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167032154A KR20170026334A (ko) 2014-07-06 2015-07-06 비디오 신호의 처리 방법 및 이를 위한 장치

Country Status (4)

Country Link
US (1) US10567755B2 (ko)
KR (1) KR20170026334A (ko)
CN (1) CN106664416B (ko)
WO (1) WO2016006894A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10771781B2 (en) * 2018-03-12 2020-09-08 Electronics And Telecommunications Research Institute Method and apparatus for deriving intra prediction mode
EP3554071A1 (en) * 2018-04-12 2019-10-16 InterDigital VC Holdings, Inc. Method and apparatus for intra prediction using a composite reference array
KR102344190B1 (ko) * 2018-05-12 2021-12-28 주식회사 윌러스표준기술연구소 참조 샘플을 이용하는 비디오 신호 처리 방법 및 장치
KR102657248B1 (ko) 2019-01-12 2024-04-25 (주)휴맥스 다중 변환 커널을 사용하는 비디오 신호 처리 방법 및 장치
US11272198B2 (en) * 2019-01-30 2022-03-08 Tencent America LLC Method and apparatus for improved sub-block partitioning intra sub-partitions coding mode
CN116170604A (zh) * 2019-02-15 2023-05-26 华为技术有限公司 从帧内子划分译码模式工具限制子分区的尺寸的编码器、解码器、及对应方法
KR20220112864A (ko) * 2019-03-15 2022-08-11 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 양방향 광 흐름을 위한 비트-폭 제어를 위한 방법 및 디바이스
WO2020207502A1 (en) 2019-04-12 2020-10-15 Beijing Bytedance Network Technology Co., Ltd. Most probable mode list construction for matrix-based intra prediction
CN115499669B (zh) * 2019-04-25 2023-08-29 北京达佳互联信息技术有限公司 对视频信号进行编码的双向光流方法、计算设备和存储介质
EP3949391A4 (en) * 2019-05-01 2022-05-25 Beijing Bytedance Network Technology Co., Ltd. MATRIX-BASED INTRAPREDICTION USING FILTRATION
SG11202112517QA (en) * 2019-05-22 2021-12-30 Beijing Bytedance Network Technology Co Ltd Matrix-based intra prediction using upsampling
CN113924775B (zh) 2019-05-31 2023-11-14 北京字节跳动网络技术有限公司 基于矩阵的帧内预测中的限制的上采样
WO2020244610A1 (en) 2019-06-05 2020-12-10 Beijing Bytedance Network Technology Co., Ltd. Context determination for matrix-based intra prediction
CN114342378A (zh) * 2019-07-10 2022-04-12 北京达佳互联信息技术有限公司 关于利用光流的预测细化的方法和装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101682516B1 (ko) 2008-01-07 2016-12-05 톰슨 라이센싱 파라미터 필터링을 사용하는 비디오 인코딩 및 디코딩을 위한 방법 및 장치
JP2012023652A (ja) 2010-07-16 2012-02-02 Sony Corp 画像処理装置と画像処理方法
JP2012169763A (ja) 2011-02-10 2012-09-06 Sony Corp 画像符号化装置と画像符号化方法およびプログラム
KR20130056441A (ko) 2011-11-22 2013-05-30 삼성전자주식회사 깊이 영상을 위한 움직임 예측 부호화/복호화 장치 및 방법
CN103139562B (zh) 2011-11-30 2016-05-04 富士通株式会社 运动估计方法和装置
GB2501535A (en) 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
CN103716629B (zh) 2012-09-29 2017-02-22 华为技术有限公司 用于图像处理的方法、装置、编码器和解码器
KR20140072938A (ko) 2012-12-04 2014-06-16 광운대학교 산학협력단 화면 내 예측을 위한 적응적 참조 픽셀 필터링 방법 및 장치

Also Published As

Publication number Publication date
CN106664416A (zh) 2017-05-10
US20170201747A1 (en) 2017-07-13
CN106664416B (zh) 2019-11-05
US10567755B2 (en) 2020-02-18
WO2016006894A1 (ko) 2016-01-14

Similar Documents

Publication Publication Date Title
CN108781293B (zh) 使用两级多型树框架对视频数据进行译码
JP7186745B2 (ja) ビデオコーディングのための重複動き補償
US20200228797A1 (en) Method for processing video signal and device for same
US10567755B2 (en) Method for processing video signal, and apparatus therefor
CN112954368B (zh) 处理视频信号的方法及其设备
US10390022B2 (en) Method for processing video signal and device therefor
KR102424418B1 (ko) 비디오 신호 처리 방법 및 장치
AU2012271835B2 (en) Border pixel padding for intra prediction in video coding
KR102641362B1 (ko) 비디오 신호의 처리 방법 및 장치
KR20180020965A (ko) 비디오 신호의 처리 방법 및 이를 위한 장치
CN114615493A (zh) 视频解码方法、视频编码方法和可读记录介质
CN112385231A (zh) 图像编码/解码方法和装置
KR20170007069A (ko) 파노라믹 비디오의 왜곡보정 방법 및 장치
KR102422485B1 (ko) 비디오 신호 처리 방법 및 장치
US20210344951A1 (en) Method and device for encoding or decoding image on basis of inter mode
KR20150018239A (ko) 병합 모드 결정 방법 및 장치
KR102212631B1 (ko) 멀티 레이어 구조에 있어서 움직임 정보의 유도 방법 및 이를 이용하는 장치
KR20200078391A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR20210008105A (ko) 영상 부호화/복호화 방법 및 장치
KR101468078B1 (ko) 화면 내 예측 방법 및 장치
KR20210035062A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR102378803B1 (ko) 비디오 신호의 복호화 방법 및 이의 장치
KR20160037110A (ko) 비디오 신호 처리 방법 및 장치
WO2023158765A1 (en) Methods and devices for geometric partitioning mode split modes reordering with pre-defined modes order
KR20210082876A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치