KR20210096282A - 인터 예측 방법 및 장치 - Google Patents

인터 예측 방법 및 장치 Download PDF

Info

Publication number
KR20210096282A
KR20210096282A KR1020217021694A KR20217021694A KR20210096282A KR 20210096282 A KR20210096282 A KR 20210096282A KR 1020217021694 A KR1020217021694 A KR 1020217021694A KR 20217021694 A KR20217021694 A KR 20217021694A KR 20210096282 A KR20210096282 A KR 20210096282A
Authority
KR
South Korea
Prior art keywords
block
picture
prediction
width
height
Prior art date
Application number
KR1020217021694A
Other languages
English (en)
Inventor
환방 천
하이타오 양
장러 천
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Priority claimed from PCT/CN2019/122735 external-priority patent/WO2020119525A1/zh
Publication of KR20210096282A publication Critical patent/KR20210096282A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/186Methods 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 colour or a chrominance component
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/567Motion estimation based on rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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
    • 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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • 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/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 출원은 인터 예측 방법 및 장치를 개시한다. 상기 인터 예측 방법은: 미리 설정된 픽처 분할 폭, 미리 설정된 픽처 분할 높이, 및 처리될 픽처 블록의 폭과 높이에 기초하여 처리될 픽처 블록에서 복수의 제1 픽처 블록을 결정하는 단계; 상기 복수의 제1 픽처 블록에 대해 양방향 광 흐름 예측(bi-directional optical flow prediction)을 개별적으로 수행하여 각각의 제1 픽처 블록의 예측자를 획득하는 단계; 및 상기 복수의 제1 픽처 블록의 예측자의 조합으로 상기 처리될 픽처 블록의 예측자를 획득하는 단계를 포함한다. 상기 장치는 결정 모듈, 예측 모듈 및 조합 모듈을 포함한다. 본 출원에서, 인터 예측을 구현하는 복잡도가 감소될 수 있고 처리 효율이 향상될 수 있다.

Description

인터 예측 방법 및 장치
본 출원은 2018년 12월 13일에 출원되고 발명의 명칭이 "인터 예측 방법 및 장치"인 중국 특허출원번호 201811530481.1에 대한 우선권을 주장하며 상기 문헌은 그 전문이 여기에 참조로 포함된다. 또한, 본 출원은 2019년 4월 22일에 출원되고 발명의 명칭이 "인터 예측 방법 및 장치"인 중국 특허출원번호 201910325612.0에 우선권을 주장하며, 상기 문헌은 그 전문이 여기에 참조로 포함된다.
본 출원은 비디오 인코딩 및 디코딩 분야, 특히 인터 예측 방법 및 장치에 관한 것이다.
인터 예측은 비디오 영상 프레임 간의 상관관계, 즉 시간 상관 관계를 이용하여 영상 압축을 구현하는 것으로, 일반 텔레비전, 화상 회의 텔레비전, 비디오 전화, 고화질 텔레비전과 같은 시나리오에서 압축 인코딩 또는 디코딩에 널리 적용된다. 픽처는 인코더 측과 디코더 측 모두에서 인터 예측을 통해 처리된다.
픽처에 대해 인터 예측을 수행하는 경우, 픽처에 대응하는 픽처 블록의 높이와 폭을 기준으로 먼저 픽처를 복수의 픽처 블록으로 분할한 후 분할을 통해 얻은 각 픽처 블록에 대해 인터 예측을 수행한다. 픽처에 대응하는 픽처 블록의 폭과 높이가 상대적으로 클 경우 분할을 통해 얻은 각 픽처 블록의 면적이 상대적으로 크다. 따라서 분할을 통해 얻은 각 픽처 블록에 대해 인터 예측을 수행할 경우 인터 예측 구현의 복잡성이 상대적으로 높다.
본 출원의 실시예는 인터 예측 구현의 복잡성을 줄이고 처리 효율을 개선하기 위해 인터 예측 방법 및 장치를 제공한다.
제1 관점에 따르면, 본 출원은 인터 예측 방법을 제공한다. 이 방법은 미리 설정된 픽처 분할 폭, 미리 설정된 픽처 분할 높이, 및 처리될 픽처 블록의 폭과 높이에 기초하여 처리될 픽처 블록에서 복수의 제1 픽처 블록을 결정한다. 양방향 광 흐름 예측은 복수의 제1 픽처 블록에 대해 개별적으로 수행되어 각각의 제1 픽처 블록의 예측자를 획득한다. 처리될 픽처 블록의 예측자는 복수의 제1 픽처 블록의 예측자의 조합으로 획득된다. 복수의 제1 픽처 블록은 미리 설정된 픽처 분할 폭, 미리 설정된 픽처 분할 높이, 및 처리될 픽처 블록의 폭과 높이에 기초하여 처리될 픽처 블록에서 결정된다. 따라서, 제1 픽처 블록의 크기는 미리 설정된 픽처 분할 폭과 미리 설정된 픽처 분할 높이에 의해 제한되고, 결정된 각 제1 픽처 블록의 면적이 매우 크지 않아서 메모리 리소스와 같은 하드웨어 리소스가 더 적게 소모될 수 있다. 따라서 인터 예측 구현의 복잡성을 줄이고 처리 효율성을 향상시킨다.
가능한 구현에서, 처리될 픽처 블록의 폭 및 높이는 각각 제1 픽처 블록의 폭 및 높이와 동일하며, 즉 처리될 픽처 블록은 제1 픽처 블록이 하나만을 포함한다. 이에 대응하여, 미리 설정된 픽처 분할 폭, 미리 설정된 픽처 분할 높이, 및 처리될 픽처 블록의 폭과 높이에 기초하여 처리될 픽처 블록이 제1 픽처 블록으로 결정되면, 처리 단위로 사용되는 처리될 픽처 블록에 대해 양방향 광 흐름 예측을 수행하여 처리될 픽처 블록의 예측자를 획득한다.
가능한 구현에서, 미리 설정된 픽처 분할 폭은 처리될 픽처 블록의 폭과 비교되어 제1 픽처 블록의 폭을 결정한다. 미리 설정된 픽처 분할 높이는 처리될 픽처 블록의 높이와 비교되어 제1 픽처 블록의 높이를 결정한다. 복수의 제1 픽처 블록은 제1 픽처 블록의 폭 및 높이에 기초하여 처리될 픽처 블록에서 결정된다. 이와 같이, 제1 픽처 블록의 폭은 미리 설정된 픽처 분할 폭에 의해 제약되고, 제1 픽처 블록의 높이는 미리 설정된 픽처 분할 높이에 의해 제약되며, 결정된 각 제1 픽처 블록의 면적은 그다지 크지 않다. 메모리 리소스와 같은 하드웨어 리소스가 더 적게 소비될 수 있으므로 인터 예측 구현의 복잡성이 줄어들고 처리 효율성이 향상된다.
가능한 구현에서, 제1 픽처 블록의 폭은 미리 설정된 픽처 분할 폭과 처리될 픽처 블록의 폭에서 더 작은 값이고, 제1 픽처 블록의 높이는 미리 설정된 그림 분할 높이와 처리될 픽처 블록의 높이에서 더 작은 값이다. 따라서, 결정된 제1 픽처의 면적을 줄일 수 있고, 인터 예측 구현의 복잡성을 최대한 줄일 수 있으며, 처리 효율을 향상시킬 수 있다.
가능한 구현에서, 제1 픽처 블록의 제1 예측 블록은 처리될 픽처 블록의 모션 정보에 기초하여 획득된다. 제1 픽처 블록의 제1 경사 행렬을 획득하기 위해 제1 예측 블록에 대해 경사 연산이 수행된다. 제1 예측 블록 및 제1 경사 행렬에 기초하여 제1 픽처 블록의 각 기본 처리 단위의 모션 정보 정제 값이 계산된다. 제1 픽처 블록의 예측자는 각 기본 처리 단위의 모션 정보 정제 값에 기초하여 획득된다. 제1 픽처 블록의 예측자는 각 기본 처리 단위의 모션 정보 정제 값에 기초하여 획득되기 때문에, 제1 픽처 블록의 예측자는 더 정확할 수 있다.
가능한 구현에서, 제1 예측 블록의 블록 에지 위치의 샘플 값에 기초하여 제1 예측 블록의 폭 및 높이에 대해 제1 확장이 수행되어, 제1 예측의 폭 및 높이가 제1 확장 이후에 얻은 블록은 각각 제1 픽처 블록의 폭 및 높이보다 큰 두 개의 샘플이고; 및/또는 제1 확장은 제1 경사 행렬의 행렬 에지 위치의 경사에 기초해서 제1 경사 행렬의 폭과 높이에 대해 수행되므로 제1 확장 이후에 획득된 제1 경사 행렬의 폭과 높이 각각 제1 픽처 블록의 폭과 높이보다 큰 두 개의 샘플이다. 이에 대응하여, 제1 픽처 블록의 각 기본 처리 단위의 모션 정보 정제 값은 제1 확장 후 획득된 제1 예측 블록 및/또는 제1 확장 후 획득된 제1 경사 행렬에 기초하여 계산된다. 제1 확장은 제1 예측 블록의 폭과 높이에 대해 수행되므로 제1 확장 이후에 획득된 제1 예측 블록의 폭과 높이는 각각 제1 픽처 블록의 폭과 높이보다 큰 두 샘플이. 이 방식에서, 참조 픽처의 픽처 블록에 대해 양방향 예측을 수행하여 제1 예측 블록을 획득하면 획득한 제1 예측 블록의 크기를 줄일 수 있으며, 이에 따라 픽처 블록의 크기도 감소시킬 수 있으므로, 양방향 예측을 위한 데이터 양을 줄여 하드웨어 리소스를 더 적게 소비한다.
가능한 구현에서, 제1 예측 블록의 블록 에지 영역의 샘플 값에 대해 보간 필터링을 수행하거나, 폭에 대한 제2 확장을 수행하기 위해 제1 예측 블록의 블록 에지 위치의 샘플 값을 복제하여, 제1 예측 블록의 폭 및 높이에 대해 제2 확장을 수행한다. 이에 대응하여, 제2 확장 이후에 획득된 제1 예측 블록에 대해 경사 연산이 수행된다. 제1 예측 블록의 블록 에지 위치의 샘플 값이 복제되어 제1 예측 블록의 폭과 높이에 대해 제2 확장이 수행된다. 따라서 구현이 간단하고 작업 복잡도가 낮다.
가능한 구현에서, 제1 예측 블록은 순방향 예측 블록 및 역방향 예측 블록을 포함하고, 제1 경사 행렬은 순방향 수평 경사 행렬, 순방향 수직 경사 행렬, 역방향 수평 경사 행렬 및 역방향 수직 경사 행렬을 포함한다.
가능한 구현에서, 미리 설정된 픽처 분할 폭은 64, 32 또는 16이고 미리 설정된 픽처 분할 높이는 64, 32 또는 16이다. 이러한 방식으로 미리 설정된 픽처 분할 폭 및 미리 설정된 픽처 분할 높이의 제약 하에서 결정된 제1 픽처 블록의 크기를 줄일 수 있다.
가능한 구현에서, 기본 처리 단위는 4x4 샘플 행렬이다.
제2 관점에 따르면, 본 출원은 결정 모듈, 예측 모듈 및 조합 모듈을 포함하는 인터 예측 장치를 제공한다. 결정 모듈은 미리 설정된 픽처 분할 폭, 미리 설정된 픽처 분할 높이, 및 처리될 픽처 블록의 폭과 높이에 기초하여 처리될 픽처 블록에서 복수의 제1 픽처 블록을 결정한다. 예측 모듈은 각각의 제1 픽처 블록의 예측자를 획득하기 위해 복수의 제1 픽처 블록에 대해 양방향 광 흐름 예측을 개별적으로 수행한다. 조합 모듈은 복수의 제1 픽처 블록의 예측자의 조합으로 처리될 픽처 블록의 예측자를 획득한다. 결정 모듈은 미리 설정된 픽처 분할 폭, 미리 설정된 픽처 분할 높이, 처리될 픽처 블록의 폭 및 높이에 기초하여 처리될 픽처 블록에서 복수의 제1 픽처 블록을 결정한다. 따라서, 제1 픽처 블록의 크기는 미리 설정된 픽처 분할 폭과 미리 설정된 픽처 분할 높이에 의해 제한되고, 결정된 각 제1 픽처 블록의 면적이 그다지 크지 않아서 메모리 리소스와 같은 하드웨어 리소스가 더 적게 소모될 수 있고, 인터 예측 구현의 복잡성을 줄이고 처리 효율성을 향상시킬 수 있다.
가능한 구현에서, 결정 모듈, 예측 모듈, 및 조합 모듈은 제1 관점의 임의의 가능한 구현에서 방법의 동작을 수행하도록 더 구성될 수 있다. 자세한 내용은 여기서 다시 설명하지 않는다.
제3 관점에 따르면, 본 출원의 실시예는 인터 예측 장치를 제공한다. 장치는 프로세서와 메모리를 포함하고 프로세서는 메모리에 연결된다. 메모리는 하나 이상의 프로그램을 저장하고, 하나 이상의 프로그램은 프로세서에 의해 실행되고, 하나 이상의 프로그램은 제1 관점 또는 제1 관점의 임의의 가능한 구현에서 방법을 수행하기 위한 명령을 포함한다.
제4 관점에 따르면, 본 출원은 컴퓨터 프로그램을 저장하도록 구성된 비 휘발성 컴퓨터 판독 가능 저장 매체를 제공한다. 컴퓨터 프로그램은 프로세서에 의해 로딩되어 제1 관점의 방법에 대한 명령 또는 제1 관점의 임의의 가능한 구현을 실행한다.
제5 관점에 따르면, 본 출원은 칩을 제공한다. 이 칩은 프로그래밍 가능한 논리 회로 및/또는 프로그램 명령을 포함한다. 칩이 실행될 때, 제1 관점의 방법 또는 제1 관점의 임의의 가능한 구현이 구현된다.
제6 관점에 따르면, 본 출원의 실시예는 다음을 포함하는 인터 예측 방법을 제공하며, 상기 방법은: 처리될 픽처 블록의 모션 정보를 획득하는 단계, 여기서 처리될 픽처 블록은 복수의 가상 파이프라인 데이터 단위를 포함하고, 가상 파이프라인 데이터 단위는 적어도 하나의 기본 처리 단위를 포함하고; 모션 정보에 기초하여 각 가상 파이프라인 데이터 단위의 예측 행렬을 획득하는 단계; 각각의 예측자 행렬에 기초하여 각 가상 파이프라인 데이터 단위의 수평 예측 경사 행렬 및 수직 예측 경사 행렬을 계산하는 단계; 및 상기 예측자 행렬, 수평 예측 경사 행렬 및 수직 예측 경사 행렬에 기초하여 각 가상 파이프라인 데이터 단위에서 각 기본 처리 단위의 모션 정보 정제 값을 계산하는 단계를 포함한다.
제6 관점의 실행 가능한 구현에서, 모션 정보에 기초하여 각 가상 파이프라인 데이터 단위의 예측 행렬을 획득하는 단계는: 모션 정보에 기초하여 각 가상 파이프라인 데이터 단위의 초기 예측 행렬을 획득하는 단계, 여기서 크기는 초기 예측 행렬의 크기는 가상 파이프라인 데이터 단위의 크기와 같고; 및 초기 예측 행렬을 예측자 행렬로 사용하는 단계를 포함한다.
제6 관점의 실행 가능한 구현에서, 각 가상 파이프라인 데이터 단위의 초기 예측 행렬을 획득한 후, 방법은: 확장된 예측 행렬을 획득하기 위해 초기 예측 행렬의 에지에 대해 샘플 확장을 수행하는 단계를 더 포함하고, 여기서 확장된 예측 행렬의 크기가 초기 예측 행렬의 크기보다 크고; 이에 대응하여, 초기 예측 행렬을 예측 행렬로 사용하는 단계는 확장된 예측 행렬을 예측 행렬로 사용하는 단계를 포함한다.
제6 관점의 실행 가능한 구현에서, 초기 예측 행렬의 에지에 대한 샘플 확장을 수행하는 단계는: 초기 예측 행렬의 샘플의 샘플 값의 보간에 기초하여 초기 예측 행렬 외부에 있는 샘플의 샘플 값을 획득하는 단계; 또는 초기 예측 행렬 외부에 있고 에지에 인접한 샘플의 샘플 값으로서 초기 예측 행렬의 에지 상의 샘플의 샘플 값을 사용하는 단계를 포함한다.
제6 관점의 실행 가능한 구현에서, 가상 파이프라인 데이터 단위는 복수의 모션 보상 단위를 포함하고, 모션 정보에 기초하여 각 가상 파이프라인 데이터 단위의 예측 행렬을 획득하는 단계는: 모션 정보에 기초하여 각 모션 보상 단위의 보상 값 행렬을 획득하는 단계; 및 예측자 행렬을 획득하기 위해 복수의 모션 보상 단위의 보상 값 행렬을 결합하는 단계를 포함한다.
제6 관점의 실현 가능한 구현에서, 각 예측자 행렬에 기초하여 각 가상 파이프라인 데이터 단위의 수평 예측 경사 행렬 및 수직 예측 경사 행렬을 계산하는 단계는: 예측자 행렬에 대해 수평 경사 계산 및 수직 경사 계산을 개별적으로 수행하여 수평 예측 경사 행렬과 수직 예측 경사 행렬을 획득하는 단계를 포함한다.
제6 관점의 실행 가능한 구현에서, 예측자 행렬, 수평 예측 경사 행렬 및 수직 예측 경사 행렬에 기초하여 각 가상 파이프라인 데이터 단위에서 각 기본 처리 단위의 모션 정보 정제 값을 계산하기 전에, 방법은: 패딩 예측 행렬을 획득하기 위해 예측자 행렬의 에지에 샘플 확장을 수행하는 단계, 여기서 패딩 예측 행렬은 미리 설정된 크기를 가지며; 및 수평 예측 경사 행렬의 에지와 수직 예측 경사 행렬의 에지에 대해 개별적으로 경사 확장을 수행하여 패딩 수평 경사 행렬 및 패딩 수직 경사 행렬을 획득하는 단계를 포함하며, 여기서 패딩 수평 경사 행렬과 패딩 수직 경사 행렬은 각각 미리 설정된 크기를 가지고, 그리고 이에 대응하여, 예측자 행렬, 수평 예측 경사 행렬 및 수직 예측 경사 행렬에 기초하여 각 가상 파이프라인 데이터 단위에서 각 기본 처리 단위의 모션 정보 정제 값을 계산하는 단계는: 패딩 예측 행렬, 패딩 수평 경사 행렬 및 패딩 수직 경사 행렬에 기초하여 각 가상 파이프라인 데이터 단위의 각 기본 처리 단위의 모션 정보 미세 조정 값을 계산하는 단계를 포함한다.
제6 관점의 실행 가능한 구현에서, 예측 행렬의 에지에 대해 샘플 확장을 수행하기 전에, 방법은 예측 행렬의 크기가 미리 설정된 크기보다 작은 지 결정하는 단계를 더 포함한다.
제6 관점의 실행 가능한 구현에서, 수평 예측 경사 행렬의 에지 및 수직 예측 경사 행렬의 에지에 대해 경사 확장을 수행하기 전에, 방법은: 수평 예측 경사 행렬의 크기 및/또는 수직 예측 경사 행렬의 크기가 미리 설정된 크기보다 작다는 것으로 결정하는 단계를 더 포함한다.
제6 관점의 실행 가능한 구현에서, 각 가상 파이프라인 데이터 단위에서 각 기본 처리 단위의 모션 정보 정제 값을 계산한 후, 방법은: 가상 파이프라인 데이터 단위의 예측 행렬 및 가상 파이프라인 데이터 단위의 각 기본 처리 단위의 모션 정보 정제 값에 기초하여 각 기본 처리 단위의 예측자를 획득하는 단계를 더 포함한다.
제6 관점의 실행 가능한 구현에서, 방법은 양방향 예측에 사용되고; 이에 대응하여, 모션 정보는 제1 참조 프레임 목록 모션 정보 및 제2 참조 프레임 목록 모션 정보를 포함하고; 예측자 행렬은 제1 예측자 행렬 및 제2 예측자 행렬을 포함하고, 제1 예측자 행렬은 제1 참조 프레임 목록 모션 정보에 기초하여 획득되고, 제2 예측자 행렬은 제2 참조 프레임 목록 모션 정보에 기초하여 획득되고; 수평 예측 경사 행렬은 제1 수평 예측 경사 행렬 및 제2 수평 예측 경사 행렬을 포함하고, 제1 수평 예측 경사 행렬은 제1 예측자 행렬에 기초하여 계산되고, 제2 수평 예측 경사 행렬은 제2 예측자 행렬에 기초하여 계산되고; 수직 예측 경사 행렬은 제1 수직 예측 경사 행렬 및 제2 수직 예측 경사 행렬을 포함하고, 제1 수직 예측 경사 행렬은 제1 예측자 행렬에 기초하여 계산되고, 제2 수직 예측 경사 행렬은 제2 예측자 행렬에 기초하여 계산되고; 모션 정보 정제 값은 제1 참조 프레임 목록 모션 정보 정제 값 및 제2 참조 프레임 목록 모션 정보 정제 값을 포함하고, 제1 참조 프레임 목록 모션 정보 정제 값은 제1 예측자 행렬, 제1 수평 예측 경사 행렬, 및 제1 수직 예측 경사 행렬에 기초하여 계산되고, 제1 참조 프레임 목록 모션 정보 정제 값은 제1 예측자 행렬, 제1 수평 예측 경사 행렬 및 제2 수직 예측 경사 행렬에 기초하여 계산된다.
제6 관점의 실행 가능한 구현에서, 초기 예측 행렬의 에지에 대해 샘플 확장을 수행하기 전에, 방법은: 처리될 픽처가 위치하는 픽처 프레임의 시간 도메인 위치가 제1 참조 프레임 목록 모션 정보가 가리키는 제1 참조 프레임과 제2 참조 프레임 목록 모션 정보가 가리키는 제2 참조 프레임 사이에 위치한다는 것으로 결정하는 단계를 더 포함한다.
제6 관점의 실행 가능한 구현에서, 각 가상 파이프라인 데이터 단위의 예측자 행렬을 예측자를 획득한 후, 방법은: 제1 예측자 행렬과 제2 예측자 행렬 사이의 차이가 제1 임계 값보다 작은지를 결정하는 단계를 더 포함한다.
제6 관점의 실행 가능한 구현에서, 기본 처리 단위의 모션 정보 정제 값은 예측 행렬 하나의 기본 예측 행렬에 대응하고; 그리고 예측자 행렬, 수평 예측 경사 행렬 및 수직 예측 경사 행렬에 기초하여 각 가상 파이프라인 데이터 단위에서 각 기본 처리 단위의 모션 정보 정제 값을 계산하기 전에, 방법은: 제1 기본 예측자 행렬과 제2 기본 예측자 행렬 간의 차이가 제2 임계 값보다 작다는 것으로 결정하는 단계를 더 포함한다.
제6 관점의 실현 가능한 구현에서, 기본 처리 단위의 크기는 4x4이다.
제6 관점의 실현 가능한 구현에서, 가상 파이프라인 데이터 단위의 폭은 W이고, 가상 파이프라인 데이터 단위의 높이는 H이고, 확장된 예측 행렬의 크기는 (W+n+2)x(H+n+2)이다. 이에 대응해서, 수평 예측 규모는 (W+n)x(H+n)이고 수직 예측 크기는 (W+n)x(H+n)이며, 여기서 W와 H는 양의 정수이고 n은 짝수이다.
제6 관점의 실행 가능한 구현에서, n은 0, 2 또는 -2이다.
제6 관점의 실행 가능한 구현에서, 처리될 픽처 블록의 모션 정보를 계산하기 전에, 처리될 픽처 블록이 복수의 가상 파이프라인 데이터 단위를 포함하는지 결정하는 단계를 더 포함한다.
제7 관점에 따르면, 본 출원의 실시예는 다음을 포함하는 인터 예측 장치를 제공하며, 상기 장치는: 처리될 픽처 블록의 모션 정보를 획득하도록 구성된 획득 모듈, 여기서 처리될 픽처 블록은 복수의 가상 파이프라인 데이터 단위를 포함하고, 가상 파이프라인 데이터 단위는 적어도 하나의 기본 처리 단위를 포함하고; 모션 정보에 기초하여 각 가상 파이프라인 데이터 단위의 예측자 행렬을 획득하도록 구성된 보상 모듈; 각각의 예측자 행렬에 기초하여 각 가상 파이프라인 데이터 단위의 수평 예측 경사 행렬 및 수직 예측 경사 행렬을 계산하도록 구성된 계산 모듈; 및 예측자 행렬, 수평 예측 경사 행렬, 및 수직 예측 경사 행렬에 기초하여 각 가상 파이프라인 데이터 단위의 각 기본 처리 단위의 모션 정보 정제 값을 계산하도록 구성된 정제 모듈을 포함한다.
제7 관점의 가능한 구현에서, 보상 모듈은 구체적으로: 모션 정보에 기초하여 각 가상 파이프라인 데이터 단위의 초기 예측 행렬을 획득하며, 여기서 초기 예측 행렬의 크기는 가상 파이프라인 데이터 단위의 크기와 동일하고; 그리고 초기 예측 행렬을 예측 행렬로 사용하도록 구성된다.
제7 관점의 실행 가능한 구현에서, 보상 모듈은 구체적으로: 초기 예측 행렬의 에지에 대해 샘플 확장을 수행하여 확장된 예측 규모를 획득하며, 여기서 확장된 예측의 크기는 초기 예측 행렬의 크기보다 크고; 그리고 확장된 예측 예측을 예측자 행렬로 사용하도록 구성된다.
제7 관점의 실행 가능한 구현에서, 보상 모듈을 구체적으로: 초기 예측 행렬에서 샘플의 샘플 값 보간에 기초하여 초기 예측 행렬 외부의 샘플의 샘플 값을 획득하거나; 또는 초기 예측 행렬의 에지 상의 샘플의 샘플 값을 초기 예측 행렬 외부에 있으면서 에지에 이웃하는 샘플의 샘플 값으로 사용하도록 구성된다.
제7 관점의 실행 가능한 구현에서, 가상 파이프라인 데이터 단위는 복수의 모션 보상 단위를 포함하고, 보상 모듈은 구체적으로: 모션 정보에 기초하여 각 모션 보상 단위의 보상 값 행렬을 획득하고; 및 예측자 행렬을 계산하기 위해 복수의 모션 보상 단위의 보상 값 행렬을 결합한다.
제7 관점의 실행 가능한 구현에서, 계산 모듈은 구체적으로 수평 예측 경사도 행렬 및 수직 예측 경사 행렬을 획득하기 위해 예측자 행렬에 대해 수평 경사 계산 및 수직 경사 계산을 별도로 수행하도록 구성된다.
제7 관점의 실행 가능한 구현에서, 장치는 패딩 모듈을 더 포함하며, 상기 패딩 모듈은: 패딩 예측 행렬을 획득하기 위해 예측자 행렬의 에지에 대해 샘플 확장을 수행하고, 여기서 패딩 예측 행렬은 미리 설정된 크기를 가지며; 패딩 수평 경사 행렬과 패딩 수직 경사 행렬을 얻기 위해 수평 예측 경사 행렬의 에지와 수직 예측 경사 행렬의 에지에 대해 개별적으로 경사 확장을 수행하고, 여기서 패딩 수평 경사 행렬과 패딩 수직 경사 행렬은 각각 미리 설정된 크기를 가지며; 그리고 패딩 예측 행렬, 패딩 수평 경사 행렬 및 패딩 수직 경사 행렬에 기초하여 각 가상 파이프라인 데이터 단위에서 각각의 기본 처리 단위의 모션 정보 정제 값을 계산하도록 구성된다.
제7 관점의 실행 가능한 구현에서, 장치는 예측자 행렬의 크기가 미리 설정된 크기보다 작은지를 결정하도록 구성된 결정 모듈을 더 포함한다.
제7 관점의 실행 가능한 구현에서, 결정 모듈은 수평 예측 경사 행렬의 크기 및/또는 수직 예측 경사 행렬의 크기가 미리 설정된 크기보다 작다는 것을 결정하도록 더 구성된다.
제7 관점의 실행 가능한 구현에서, 정제 모듈은 가상 파이프라인 데이터 단위의 예측 행렬 및 가상 파이프라인 데이터 단위의 각 기본 처리 단위의 모션 정보 정제 값에 기초하여 각 기본 처리 단위의 예측자를 획득하도록 추가로 구성된다.
제7 관점의 실행 가능한 구현에서, 장치는 양방향 예측을 위해 사용되고; 이에 대응하여, 모션 정보는 제1 참조 프레임 목록 모션 정보 및 제2 참조 프레임 목록 모션 정보를 포함하고; 예측자 행렬은 제1 예측자 행렬 및 제2 예측자 행렬을 포함하고, 제1 예측자 행렬은 제1 참조 프레임 목록 모션 정보에 기초하여 획득되고, 제2 예측자 행렬은 제2 참조 프레임 목록 모션 정보에 기초하여 획득되고; 수평 예측 경사 행렬은 제1 수평 예측 경사 행렬 및 제2 수평 예측 경사 행렬을 포함하고, 제1 수평 예측 경사 행렬은 제1 예측자 행렬에 기초하여 계산되고, 제2 수평 예측 경사 행렬은 제2 예측자 행렬에 기초하여 계산되고; 수직 예측 경사 행렬은 제1 수직 예측 경사 행렬 및 제2 수직 예측 경사 행렬을 포함하고, 제1 수직 예측 경사 행렬은 제1 예측자 행렬에 기초하여 계산되고, 제2 수직 예측 경사 행렬은 제2 예측자 행렬에 기초하여 계산되고; 모션 정보 정제 값은 제1 참조 프레임 목록 모션 정보 정제 값 및 제2 참조 프레임 목록 모션 정보 정제 값을 포함하고, 제1 참조 프레임 목록 모션 정보 정제 값은 제1 예측자 행렬, 제1 수평 예측 경사 행렬, 및 제1 수직 예측 경사 행렬에 기초하여 계산되고, 제1 참조 프레임 목록 모션 정보 정제 값은 제1 예측자 행렬, 제1 수평 예측 경사 행렬 및 제2 수직 예측 경사 행렬에 기초하여 계산된다.
제7 관점의 실행 가능한 구현에서, 결정 모듈은 처리될 픽처 블록이 위치하는 픽처 프레임의 시간 도메인 위치가 제1 참조 프레임 목록 모션 정보에 의해 표시된 제1 참조 프레임과 제2 참조 프레임 목록 모션 정보에 의해 지시된 제2 참조 프레임 사이에 위치하는지를 결정하도록 더 구성된다.
제7 관점의 실행 가능한 구현에서, 결정 모듈은 제1 예측자 행렬과 제2 예측자 행렬 사이의 차이가 제1 임계 값보다 작다는 것을 결정하도록 더 구성된다.
제7 관점의 실행 가능한 구현에서, 결정 모듈은 제1 기본 예측자 행렬과 제2 기본 예측자 행렬 사이의 차이가 제2 임계 값보다 작다는 것을 결정하도록 더 구성된다.
제7 관점의 실현 가능한 구현에서, 기본 처리 단위의 크기는 4x4이다.
제7 관점의 실행 가능한 구현에서, 가상 파이프라인 데이터 단위의 폭은 W이고, 가상 파이프라인 데이터 단위의 높이는 H이고, 확장된 예측 행렬의 크기는 (W+n+2)x(H+n+2)이다. 이에 따라 수평 예측 규모는 (W+n)x(H+n)이고 수직 예측 크기는 (W+n)x(H+n)이며, 여기서 W와 H는 양의 정수이고 n은 짝수이다.
제7 관점의 실행 가능한 구현에서, n은 0, 2 또는 -2이다.
제7 관점의 실행 가능한 구현에서, 결정 모듈은 처리될 픽처 블록이 복수의 가상 파이프라인 데이터 단위를 포함할 가상 파이프라인 더 구성된다.
제8 관점에 따르면, 본 출원의 실시예는 서로 결합된 인증서 메모리 및 프로세서를 포함하는 인코딩 장치를 제공한다. 프로세서는 메모리에 저장된 프로그램 코드를 호출하여 제1 관점에서의 방법의 일부 또는 모든 단계를 수행하거나 제6 관점에서의 방법의 일부 또는 모든 단계를 수행한다.
제9 관점에 따르면, 본 출원의 실시예는 서로 결합된 인증서 메모리 및 프로세서를 포함하는 제공 장치를 제공한다. 프로세서는 메모리에 저장된 프로그램 코드를 호출하여 제1 관점에서의 방법의 일부 또는 모든 단계를 수행하거나 제6 관점에서 방법의 일부 또는 모든 단계를 수행한다.
제10 관점에 따르면, 본 출원의 실시예는 컴퓨터 제공 가능 저장 매체를 제공한다. 컴퓨터 운영 가능 저장 매체는 프로그램 코드를 저장하고, 프로그램 코드는 제1 관점의 방법의 일부 또는 모든 단계를 수행하거나 제6 관점의 방법의 일부 또는 모든 단계를 수행하는 데 사용되는 명령을 포함한다.
제11 관점에 따르면, 본 출원의 실시예는 컴퓨터 프로그램 제품을 제공한다. 컴퓨터 프로그램 제품이 컴퓨터에서 실행될 때, 컴퓨터는 제1 관점에서의 방법의 일부 또는 모든 단계를 수행하거나 제6 관점에서의 방법의 일부 또는 모든 단계를 수행할 수 있다.
본 출원의 실시예 또는 배경의 기술적 솔루션을보다 명확하게 설명하기 위해, 이하에서는 본 출원의 실시예 또는 배경을 설명하기 위한 첨부 도면을 설명한다.
도 1a는 본 출원의 실시예에 따른 비디오 코딩 시스템(10)의 예의 블록도이다.
도 1b는 본 출원의 실시예에 따른 비디오 코딩 시스템(40)의 예의 블록도이다.
도 2는 본 출원의 실시예에 따른 인코더(20)의 예시적인 구조의 블록도이다.
도 3은 본 출원의 실시예에 따른 디코더(30)의 예시적인 구조의 블록도이다.
도 4는 본 출원의 실시예에 따른 비디오 코딩 장치(400)의 예의 블록도이다.
도 5는 본 출원의 실시예에 따른 인코딩 장치 또는 디코딩 장치의 다른 예의 블록도이다.
도 6은 본 출원의 실시예에 따른 모션 정보 후보 위치의 개략도이다.
도 7은 본 출원의 일 실시예에 따라 모션 정보가 인터 예측에 사용되는 개략도이다.
도 8은 본 출원의 실시예에 따른 양방향 가중 예측의 개략도이다.
도 9는 본 출원의 실시예에 따른 CU 경계 패딩의 개략도이다.
도 10은 본 출원의 실시예에 따른 VPDU 분할의 개략도이다.
도 11은 본 출원의 실시예에 따른 무효 VPDU 분할의 개략도이다.
도 12는 본 출원의 일 실시예에 따른 인터 예측 방법의 흐름도이다.
도 13은 본 출원의 실시예에 따라 모션 정보가 인터 예측에 사용되는 다른 개략도이다.
도 14는 본 출원의 일 실시예에 따른 다른 인터 예측 방법의 흐름도이다.
도 15는 본 출원의 실시예에 따라 모션 정보가 인터 예측에 사용되는 다른 개략도이다.
도 16a 및 도 16b는 본 출원의 일 실시예에 따른 다른 인터 예측 방법의 흐름도이다.
도 17은 본 출원의 실시예에 따른 방법의 흐름도이다.
도 18은 본 출원의 일 실시예에 따른 인터 예측 장치의 구조적 블록도이다.
도 19는 본 출원의 일 실시예에 따른 다른 인터 예측 장치의 구조적 블록도이다.
다음은 본 출원의 실시예에서 첨부된 도면을 참조하여 본 출원의 실시예를 설명한다. 다음의 설명에서, 본 개시의 일부를 형성하고 예시로서, 본 발명의 실시예들의 특정 관점들 또는 본 발명의 실시예들이 사용될 수 있는 특정 관점들을 보여주는 첨부 도면들을 참조한다. 본 출원의 실시예는 다른 측면에서 사용될 수 있고, 첨부된 도면에 도시되지 않은 구조적 또는 논리적 변경을 포함할 수 있다는 것을 이해해야 한다. 따라서, 다음의 상세한 설명은 제한적인 의미로 받아들여지지 않을 것이며, 본 출원의 범위는 첨부된 청구 범위에 의해 정의된다. 예를 들어, 설명된 방법과 관련된 개시는 방법을 수행하도록 구성된 대응하는 장치 또는 시스템에 대해서도 참일 수 있고 그 반대의 경우도 마찬가지라는 것을 이해해야 한다. 예를 들어, 하나 이상의 특정 방법 단계가 설명된 경우, 해당 장치는 설명된 하나 이상의 방법 단계를 수행하기 위해 기능 유닛과 같은 하나 이상의 유닛을 포함할 수 있으며(예를 들어, 하나 이상의 단계를 수행하는 하나의 유닛; 또는 복수의 단계 중 하나 이상을 각각 수행하는 복수의 유닛), 비록 그러한 하나 이상의 유닛이 첨부된 도면에 명시적으로 설명되거나 도시되지 않더라도 그러하다. 반면에, 예를 들어, 기능 유닛과 같은 하나 이상의 유닛을 기반으로 특정 장치를 기술하는 경우, 해당 방법은 하나 이상의 유닛의 기능을 수행하는 데 사용되는 하나의 단계를 포함하며(예를 들어, 하나 이상의 유닛의 기능을 수행하는 데 사용되는 하나의 단계, 또는 복수의 유닛 중 하나 이상의 유닛의 기능을 수행하는 데 각각 사용되는 복수의 단계), 비록 그러한 하나 이상의 단계가 첨부 도면에 명시적으로 설명되거나 도시되지 않은 경우에도 그러하다. 또한, 특별히 달리 언급하지 않는 한, 본 명세서에 설명된 다양한 예시적인 실시예들 및/또는 측면들의 특징들은 서로 결합될 수 있음을 이해해야 한다.
본 출원의 실시예들에서의 기술적 솔루션은 기존의 비디오 코딩 표준(예를 들어, H.264 또는 고효율 비디오 코딩(high efficiency video coding, HEVC)과 같은 표준)에 적용될 수 있을 뿐만 아니라 또한 향후 비디오 코딩 표준(예를 들어, H.266 표준)에도 적용될 수 있다. 본 출원의 실시예에서 사용된 용어는 본 출원의 특정 실시예를 설명하기 위해서만 사용되며 본 출원을 제한하려는 의도는 아니다. 다음은 먼저 본 출원의 실시예에서 일부 관련 개념을 간략하게 설명한다.
비디오 코딩은 일반적으로 비디오 또는 비디오 시퀀스를 형성하는 픽처 시퀀스를 처리한다. 비디오 코딩 분야에서는 "픽처(picture)", "프레임(frame)" 또는 "이미지(image)"라는 용어가 동의어로 사용될 수 있다. 이 명세서에서 사용되는 비디오 코딩은 비디오 인코딩 또는 비디오 디코딩을 나타낸다. 비디오 코딩은 소스 측에서 수행되며, 일반적으로 (보다 효율적인 저장 및/또는 전송을 위해) 비디오 픽처를 표현하는 데 필요한 데이터의 양을 줄이기 위해 원본 비디오 영상을 (예를 들어, 압축을 통해) 처리하는 것을 포함한다. 비디오 디코딩은 목적지 측에서 수행되며 일반적으로 비디오 픽처를 재구성하기 위해 인코더와 비교하여 역 처리를 포함한다. 실시예에서 비디오 픽처의 "인코딩"은 비디오 시퀀스와 관련된 "인코딩" 또는 "디코딩"으로 이해되어야 한다. 인코딩 유닛과 디코딩 유닛의 조합을 코덱(인코딩 및 디코딩)이라고도 한다.
비디오 시퀀스는 일련의 픽처(picture)를 포함하고, 픽처는 슬라이스(slice)로 더 분할되고, 슬라이스는 블록(block)으로 더 분할된다. 비디오 코딩은 블록 단위로 수행된다. 일부 새로운 비디오 코딩 표준에서는 블록 개념이 더욱 확장된다. 예를 들어 매크로 블록(macro block, MB)이 H.264 표준에 도입되었다. 매크로 블록은 예측 코딩에 사용될 수 있는 복수의 예측 블록(파티션)으로 더 분할될 수 있다. HEVC 표준에서는 인코딩 단위(encoding unit, CU), 예측 단위(prediction unit, PU), 변환 단위(transform unit, TU)와 같은 기본 개념이 사용되고, 분할을 통해 복수의 블록 단위를 기능적으로 획득하고 새로운 트리 기반 구조를 사용하여 설명한다. 예를 들어, CU는 쿼드트리를 기반으로 더 작은 CU로 분할될 수 있고, 더 작은 CU는 더 분할되어 쿼드트리 구조를 생성할 수 있다. CU는 코딩된 픽처를 분할하고 인코딩하는 데 사용되는 기본 단위이다. PU와 TU도 비슷한 트리 구조를 가지고 있다. PU는 예측 블록에 대응할 수 있으며, 예측 코딩에 사용되는 기본 단위이다. CU는 분할 패턴에 기초하여 복수의 PU로 더 분할된다. TU는 변환 블록에 대응할 수 있으며, 예측 잔여를 변환하는 데 사용되는 기본 단위이다. 그러나 CU, PU 및 TU는 각각 개념적으로 본질적으로 블록(또는 픽처 블록)이다.
예를 들어, HEVC에서, 코딩 트리 유닛(coding tree unit, CTU)은 코딩 트리로 표현되는 쿼드트리 구조를 사용하여 복수의 CU로 분할된다. 인터 픽처(시간적) 또는 인트라 픽처(공간적) 예측을 사용하여 픽처 영역을 인코딩할지는 CU 레벨에서 결정된다. 각각의 CU는 PU 분할 패턴에 기초하여 1 개, 2 개 또는 4 개의 PU로 추가로 분할될 수 있다. 하나의 PU 내부에서는 동일한 예측 프로세스가 적용되고 관련 정보가 PU 단위로 디코더로 전송된다. PU 분할 패턴을 기반으로 예측 프로세스를 적용하여 잔여 블록을 획득한 후 CU는 CU에 사용되는 코딩 트리와 유사한 다른 쿼드트리 구조를 기반으로 변환 단위(transform unit, TU)로 분할될 수 있다. 최근 비디오 압축 기술의 발전에서 쿼드트리 플러스 이진 트리(quad tree and binary tree, QTBT)를 통해 프레임이 분할되어 코딩 블록을 분할한다. QTBT 블록 구조에서 CU는 정사각형 또는 직사각형일 수 있다.
본 명세서에서는 설명과 이해의 편의를 위해 현재 코딩된 픽처에서 코딩될 픽처 블록을 현재 블록이라고 할 수 있다. 예를 들어, 인코딩 동안 현재 블록은 현재 인코딩 중인 블록이고, 디코딩 동안 현재 블록은 현재 디코딩 중인 블록이다.
참조 픽처에서 현재 블록을 예측하기 위해 사용되는 디코딩된 픽처 블록을 참조 블록이라고 한다. 다시 말해, 참조 블록은 현재 블록에 대해 참조 신호를 제공하는 블록이고, 참조 신호는 픽처 블록에서의 샘플 값을 나타낸다. 참조 픽처에서 현재 블록에 대한 예측 신호를 제공하는 블록을 예측 블록이라고 할 수 있고, 예측 신호는 예측 블록에서 샘플 값을 나타낸다. 참조 픽처에서 현재 블록에 대한 예측 신호를 제공하는 블록을 예측 블록이라고 할 수 있고, 예측 신호는 예측 블록에서 픽셀 값, 샘플링 값 또는 샘플링 신호를 나타낸다. 예를 들어, 복수의 참조 블록을 순회한 후 최적의 참조 블록을 찾고, 최적의 참조 블록은 현재 블록에 대한 예측을 제공하고, 이 블록을 예측 블록이라고 한다.
무손실 비디오 코딩의 경우, 원본 비디오 픽처가 재구성될 수 있다. 즉, 재구성된 비디오 픽처는 원본 비디오 픽처와 동일한 품질을 갖는다(저장 또는 전송 중에 전송 손실 또는 기타 데이터 손실이 발생하지 않는다고 가정). 손실 비디오 코딩의 경우, 비디오 영상을 표현하는 데 필요한 데이터의 양을 줄이기 위해 예를 들어 양자화를 통해 추가 압축이 수행되며, 비디오 영상은 디코더 측에서 완전히 재구성될 수 없다. 즉, 재구성된 비디오 픽처의 품질이 원본 비디오 픽처의 품질보다 낮거나 나쁘다.
여러 H.261 비디오 코딩 표준은 "손실 하이브리드 비디오 코덱"을 위한 것이다(즉, 샘플 도메인의 공간 및 시간적 예측은 변환 도메인에서 양자화를 적용하기 위해 2D 변환 코딩과 결합된다). 비디오 시퀀스의 각 픽처는 일반적으로 겹치지 않는 블록 세트로 분할되고 코딩은 일반적으로 블록-레벨에서 수행된다. 즉, 인코더 측에서 비디오는 일반적으로 블록(비디오 블록) 수준에서 처리, 즉 인코딩된다. 예를 들어 공간(인트라 픽처) 예측과 시간적(인터 픽처) 예측을 통해 예측 블록을 생성하고, 현재 블록(현재 처리 중이거나 처리중인 블록)에서 예측 블록을 빼서 잔여 블록을 구하며, 전송(압축)될 데이터의 양을 줄이기 위해 변환 도메인에서 잔여 블록이 변환되고 양자화된다. 디코더 측에서, 인코더와 비교되는 역 처리가 인코딩되거나 압축된 블록에 적용되어 표현을 위해 현재 블록을 재구성한다. 더욱이, 인코더는 디코더 프로세싱 루프를 복제하여 인코더와 디코더가 동일한 예측(예를 들어, 인트라 예측 및 인터 예측) 및/또는 프로세싱을 위한, 즉 후속 블록을 코딩하기 위한 재구성을 생성하도록 한다.
다음은 본 출원의 실시예들에 적용 가능한 시스템 아키텍처를 설명한다. 도 1a는 본 출원의 실시예들에 적용 가능한 비디오 인코딩 및 디코딩 시스템(10)의 예의 개략적인 블록도이다. 도 1a에 도시된 바와 같이, 비디오 인코딩 및 디코딩 시스템(10)은 소스 장치(12) 및 목적지 장치(14)를 포함할 수 있다. 소스 장치(12)는 인코딩된 비디오 데이터를 생성하기 때문에, 소스 장치(12)는 비디오 인코딩 장치로 지칭될 수 있다. 목적지 장치(14)는 소스 장치(12)에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수 있으며, 따라서 목적지 장치(14)는 비디오 디코딩 장치로 지칭될 수 있다. 다양한 구현 솔루션에서, 소스 장치(12), 목적지 장치(14) 또는 소스 장치(12) 및 목적지 장치(14) 모두는 하나 이상의 프로세서 및 하나 이상의 프로세서에 결합된 메모리를 포함할 수 있다. 이 명세서에 설명된 바와 같이 메모리는 RAM, ROM, EEPROM, 플래시 메모리, 또는 컴퓨터에 액세스할 수 있는 데이터 구조 또는 명령어의 형태로 원하는 프로그램 코드를 저장하는 데 사용될 수 있는 임의의 다른 매체를 포함할 수 있지만 이에 제한되지 않는다. 소스 장치(12) 및 목적지 장치(14)는 데스크톱 컴퓨터, 모바일 컴퓨팅 장치, 노트북(예를 들어, 랩톱) 컴퓨터, 태블릿 컴퓨터, 셋톱 박스, 다음과 같은 전화 핸드셋을 포함한 다양한 장치를 포함할 수 있으며, "스마트" 전화, 텔레비전, 카메라, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 차량 내 컴퓨터, 무선 통신 장치 등을 예로 들 수 있다.
도 1a는 소스 장치(12) 및 목적지 장치(14)를 별개의 장치로 도시하고 있지만, 장치 실시예는 대안적으로 소스 장치(12)와 목적지 장치(14) 모두 또는 소스 장치(12) 및 목적지 장치(14)의 기능, 즉 소스 장치(12) 또는 대응하는 기능 및 목적지 장치(14) 또는 대응하는 기능을 포함할 수 있다. 이러한 실시예에서, 소스 장치(12) 또는 대응하는 기능 및 목적지 장치(14) 또는 대응하는 기능은 동일한 하드웨어 및/또는 소프트웨어, 별도의 하드웨어 및/또는 소프트웨어, 또는 이들의 임의의 조합을 사용하여 구현될 수 있다.
소스 장치(12)와 목적지 장치(14) 간의 통신 연결은 링크(13)를 통해 구현될 수 있으며, 목적지 장치(14)는 링크(13)를 통해 소스 장치(12)로부터 인코딩된 비디오 데이터를 수신할 수 있다.
링크(13)는 소스 장치(12)로부터 목적지 장치(14)로 그 인코딩된 비디오 데이터를 전송할 수 있는 하나 이상의 미디어 또는 장치를 포함할 수 있다. 예에서, 링크(13)는 소스 장치(12)가 인코딩된 비디오 데이터를 실시간으로 목적지 장치(14)에 직접 전송할 수 있게 하는 하나 이상의 통신 매체를 포함할 수 있다. 이 예에서, 소스 장치(12)는 통신 표준(예를 들어, 무선 통신 프로토콜)에 따라 그 인코딩된 비디오 데이터를 변조할 수 있고 변조된 비디오 데이터를 목적지 장치(14)로 전송할 수 있다. 하나 이상의 통신 매체는 무선 통신 매체 및/또는 유선 통신 매체, 예를 들어 무선 주파수(RF) 스펙트럼 또는 하나 이상의 물리적 전송 케이블을 포함할 수 있다. 하나 이상의 통신 매체는 패킷 기반 네트워크의 일부일 수 있고, 패킷 기반 네트워크는 예를 들어 근거리 통신망, 광역 통신망 또는 글로벌 네트워크(예를 들어, 인터넷)일 수 있다. 하나 이상의 통신 매체는 라우터, 스위치, 기지국, 또는 소스 장치(12)로부터 목적지 장치(14)로의 통신을 용이하게 하는 다른 장치를 포함할 수 있다.
소스 장치(12)는 인코더(20)를 포함한다. 선택적으로, 소스 장치(12)는 픽처 소스(16), 픽처 프리프로세서(18) 및 통신 인터페이스(22)를 더 포함할 수 있다. 특정 구현에서, 인코더(20), 픽처 소스(16) 픽처 프리프로세서(18) 및 통신 인터페이스(22)는 소스 장치(12)의 하드웨어 구성 요소이거나 소스 장치(12)의 소프트웨어 프로그램일 수 있다. 설명은 다음과 같이 별도로 제공된다.
픽처 소스(16)는 예를 들어 현실 세계의 화상을 캡처하도록 구성된 임의의 유형의 화상 캡처 장치를 포함할 수 있거나; 및/또는 픽처 또는 주석을 생성하기 위한 임의의 유형의 장치(화면 콘텐츠 인코딩의 경우, 화면의 일부 텍스트도 인코딩될 픽처 또는 이미지의 일부로 간주된다), 예를 들어 컴퓨터 애니메이션 픽처를 생성하도록 구성된 컴퓨터 그래픽 프로세서; 또는 실제 픽처 또는 컴퓨터 애니메이션 픽처(예를 들어, 스크린 콘텐츠 또는 가상 현실(vitual reality, VR) 픽처)를 획득 및/또는 제공하도록 구성된 임의의 유형의 장치; 및/또는 이들의 임의의 조합(예를 들어, 증강 현실(augmented reality, AR) 픽처)일 수 있다. 픽처 소스(16)는 픽처를 캡처하도록 구성된 카메라 또는 픽처를 저장하도록 구성된 메모리일 수 있다. 픽처 소스(16)는 이전에 캡처되거나 생성된 픽처가 저장되고 및/또는 픽처가 획득되거나 수신되는 임의의 유형의 (내부 또는 외부) 인터페이스를 더 포함할 수 있다. 픽처 소스(16)가 카메라일 때, 픽처 소스(16)는 예를 들어 로컬 카메라 또는 소스 장치에 통합된 통합 카메라일 수 있다. 픽처 소스(16)가 메모리일 때, 픽처 소스(16)는 로컬 메모리 또는 예를 들어 소스 장치에 통합된 통합 메모리일 수 있다. 픽처 소스(16)가 인터페이스를 포함하는 경우, 인터페이스는 예를 들어 외부 비디오 소스로부터 화상을 수신하기 위한 외부 인터페이스일 수 있다. 외부 비디오 소스는 예를 들어 카메라, 외부 메모리 또는 외부 픽처 생성 장치와 같은 외부 픽처 캡처 장치이다. 외부 화상 생성 장치는 예를 들어 외부 컴퓨터 그래픽 프로세서, 컴퓨터 또는 서버이다. 인터페이스는 임의의 독점적 또는 표준화된 인터페이스 프로토콜에 따라, 예를 들어, 유선 또는 무선 인터페이스 또는 광학 인터페이스와 같은 모든 유형의 인터페이스일 수 있다.
픽처는 픽셀 요소(픽처 요소)의 2 차원 어레이 또는 행렬로 간주될 수 있다. 어레이의 픽셀 요소는 샘플이라고도 한다. 배열 또는 픽처의 수평 및 수직 방향(또는 축)에 있는 샘플의 양은 그림의 크기 및/또는 해상도를 정의한다. 색상 표현을 위해 일반적으로 세 가지 색상 구성 요소가 사용되며, 구체적으로 픽처는 세 개의 샘플 어레이로 표현되거나 이를 포함할 수 있다. 예를 들어, RBG 형식 또는 색 공간에서 그림에는 해당하는 빨강, 녹색 및 파랑 샘플 배열이 포함된다. 그러나 비디오 코딩에서 각 픽셀은 일반적으로 휘도/색차 형식 또는 색 공간으로 표시된다. 예를 들어 YUV 형식의 픽처에는 Y(때로는 L로 표시됨)로 표시되는 휘도 성분과 U 및 V로 표시되는 두 개의 색차 성분이 포함된다. 휘도(루마) 성분 Y는 밝기 또는 그레이 레벨 강도(예를 들어, 둘 다 회색조 픽처에서 동일함) 두 색차(채도) 성분 U 및 V는 색차 또는 색상 정보 성분을 나타낸다. 이에 따라 YUV 형식의 그림에는 휘도 샘플 값(Y)의 휘도 샘플 어레이와 색차 값(U 및 V)의 두 색차 샘플 어레이가 포함된다. RGB 형식의 픽처는 YUV 형식으로 변환하거나 변환할 수 있으며 그 반대의 경우도 마찬가지이다. 이 프로세스를 색상 변환 또는 변형이라고도 한다. 그림이 단색인 경우 그림에는 휘도 샘플 어레이만 포함될 수 있다. 본 출원의 이 실시예에서, 픽처 소스(16)에 의해 화상 프로세서로 전송된 픽처는 또한 원시 픽처 데이터(17)로 지칭될 수 있다.
픽처 프리프로세서(18)는 원시 픽처 데이터(17)를 수신하고 원시 픽처 데이터(17)에 대해 프리프로세싱을 수행하여 프리프로세싱된 픽처(19) 또는 프리프로세싱된 픽처 데이터(19)를 획득하도록 구성된다. 예를 들어, 픽처 프리프로세서(18)에 의해 수행되는 프리프로세싱은 트리밍, 색상 형식 변환(예를 들어, RGB 형식에서 YUV 형식으로), 색상 보정 또는 디-노이즈를 포함할 수 있다.
인코더(20)(또는 비디오 인코더(20)라고 함)는 프리프로세싱된 픽처 데이터(19)를 수신하고, 관련 예측 모드(예를 들어, 본 명세서의 각 실시예의 예측 모드)를 사용하여, 인코딩된 픽처 데이터(21)를 제공하기 위해 프리프로세싱된 픽처 데이터(19)를 처리하도록 구성된다(인코더(20)의 구조적 자세한 내용은 도 2, 도 4 또는 도 5에 기초하여 아래에서 더 설명된다). 일부 실시예에서, 인코더(20)는 본 출원에서 설명된 크로마 블록 예측 방법의 인코더 측 애플리케이션을 구현하기 위해 아래 설명된 각 실시예를 수행하도록 구성될 수 있다.
통신 인터페이스(22)는 인코딩된 픽처 데이터(21)를 수신하고, 인코딩된 픽처 데이터(21)를 저장 또는 재구성을 위해 직접 링크(13)를 통해 목적지 장치(14) 또는 임의의 다른 장치(예를 들어, 메모리)로 전송하도록 구성될 수 있다. 다른 장치는 디코딩 또는 저장에 사용되는 임의의 장치일 수 있다. 통신 인터페이스(22)는 예를 들어, 링크(13)를 통한 전송을 위해 인코딩된 픽처 데이터(21)를 적절한 포맷, 예를 들어 데이터 패킷으로 패키징하도록 구성될 수 있다.
목적지 장치(14)는 디코더(30)를 포함한다. 선택적으로, 목적지 장치(14)는 통신 인터페이스(28), 픽처 포스트프로세서(32) 및 디스플레이 장치(34)를 더 포함할 수 있다. 설명은 다음과 같이 별도로 제공된다.
통신 인터페이스(28)는 소스 장치(12) 또는 임의의 다른 소스로부터 인코딩된 픽처 데이터(21)를 수신하도록 구성될 수 있다. 다른 소스는 예를 들어 저장 장치이다. 저장 장치는 예를 들어 인코딩된 픽처 데이터 저장 장치이다. 통신 인터페이스(28)는 소스 장치(12)와 목적지 장치(14) 사이의 링크(13)를 통해 또는 임의의 유형의 네트워크를 통해 인코딩된 픽처 데이터(21)를 송신 또는 수신하도록 구성될 수 있다. 링크(13)는 예를 들어 직접 유선 또는 무선 연결이다. 임의의 유형의 네트워크는 예를 들어 유선 또는 무선 네트워크 또는 이들의 임의의 조합, 또는 임의의 유형의 사설 또는 공용 네트워크, 또는 이들의 임의의 조합이다. 통신 인터페이스(28)는 예를 들어, 인코딩된 픽처 데이터(21)를 얻기 위해 통신 인터페이스(22)를 통해 전송된 데이터 패킷을 디 패키징하도록 구성될 수 있다.
통신 인터페이스(28) 및 통신 인터페이스(22) 모두는 단방향 통신 인터페이스 또는 양방향 통신 인터페이스로 구성될 수 있으며, 예를 들어 연결을 설정하기 위해 메시지를 송수신하고 통신 링크 및/또는 인코딩된 픽처 데이터 전송과 같은 데이터 전송과 관련된 다른 정보를 확인 및 교환하도록 구성될 수 있다.
디코더(30)(또는 디코더(30)로 지칭됨)는 인코딩된 픽처 데이터(21)를 수신하고 디코딩된 픽처 데이터(31) 또는 디코딩된 픽처(31)를 제공하도록 구성된다(디코더(30)의 구조적 자세한 내용은 도 2, 도 3 및 도 5에 기초하여 아래에서 더 설명된다). 일부 실시예에서, 디코더(30)는 본 출원에서 설명된 크로마 블록 예측 방법의 디코더 측 애플리케이션을 구현하기 위해 아래 설명된 각 실시예를 수행하도록 구성될 수 있다.
픽처 포스트프로세서(32)는 디코딩 픽처 데이터(31)(재구성 픽처 데이터라고도 함)를 포스트프로세싱하여 포스트프로세싱 픽처 데이터(33)를 획득하도록 구성된다. 픽처 포스트프로세서(32)에 의해 수행되는 포스트프로세싱 색상 형식 변환(예를 들어, YUV 형식에서 RGB 형식으로), 색상 보정, 트리밍, 리샘플링 또는 기타 처리가 포함될 수 있다. 픽처 포스트프로세서(32)는 포스트프로세싱된 픽처 데이터(33)를 디스플레이 장치(34)로 전송하도록 더 구성될 수 있다.
디스플레이 장치(34)는 예를 들어 사용자 또는 시청자에게 픽처를 디스플레이하기 위해 포스트프로세싱된 픽처 데이터(33)를 수신하도록 구성된다. 디스플레이 장치(34)는 재구성된 픽처를 제공하기 위한 임의의 유형의 디스플레이, 예를 들어 통합 또는 외부 디스플레이 또는 모니터일 수 있거나 이를 포함할 수 있다. 예를 들어, 디스플레이는 액정 디스플레이(liquid crystal display, LCD), 유기 발광 다이오드(organic light emitting diode, OLED) 디스플레이, 플라즈마 디스플레이, 프로젝터, 마이크로 LED 디스플레이, 액정 온 실리콘(liquid crystal on silicon, LCoS), 디지털 조명 프로세서(digital light processor, DLP) 또는 기타 모든 유형의 디스플레이를 포함할 수 있다.
도 1a는 소스 장치(12) 및 목적지 장치(14)를 별개의 장치로 도시하고 있지만, 장치 실시예는 대안적으로 소스 장치(12)와 목적지 장치(14) 또는 소스 장치(12) 및 목적지 장치(14)의 기능, 즉 소스 장치(12) 또는 대응하는 기능 및 목적지 장치(14) 또는 대응하는 기능을 포함할 수 있다. 이러한 실시예에서, 소스 장치(12) 또는 대응하는 기능 및 목적지 장치(14) 또는 대응하는 기능은 동일한 하드웨어 및/또는 소프트웨어, 별도의 하드웨어 및/또는 소프트웨어, 또는 이들의 임의의 조합을 사용하여 구현될 수 있다.
설명에 기초하여, 당업자는 도 1a에 도시된 소스 장치(12) 및/또는 목적지 장치(14)의 상이한 유닛 또는 기능들/또는 기능의 존재 및 (정확한) 분할은 실제 장치 및 애플리케이션에 따라 다를 수 있다는 것을 쉽게 이해한다. 소스 장치(12) 및 목적지 장치(14)는 임의의 유형의 핸드헬드 또는 고정 장치를 포함하는 임의의 다양한 장치를 포함할 수 있으며, 예를 들어 노트북 또는 랩톱 컴퓨터, 휴대폰, 스마트 폰, 태블릿 또는 태블릿 컴퓨터, 비디오 카메라, 데스크톱 컴퓨터, 셋톱 박스, 텔레비전, 카메라, 차량 탑재 장치, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 비디오 스트리밍 장치(예를 들어, 콘텐츠 서비스 서버 또는 콘텐츠 전송 서버), 방송 수신 장치 또는 방송 송신기 장치를 포함하며, 모든 유형의 운영 체제를 사용하거나 사용하지 않을 수 있다.
인코더(20) 및 디코더(30)는 각각 다양한 적절한 회로, 예를 들어 하나 이상의 마이크로프로세서, 디지털 신호 프로세서(digital signal processor, DSP), 주문형 집적 회로(application-specific integrated circuit, ASIC), 필드 프로그래머블 게이트 어레이(field programmable gate array, FPGA), 이산 로직, 하드웨어 또는 이들의 조합 중 어느 하나로 구현될 수 있다. 기술이 소프트웨어를 사용하여 부분적으로 구현되는 경우, 장치는 적절한 비 일시적 컴퓨터 판독 가능 저장 매체에 소프트웨어 명령을 저장하고 하나 이상의 프로세서와 같은 하드웨어를 사용하여 명령을 실행하여 본 개시의 기술을 수행할 수 있다. 전술한 내용(하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등 포함)은 하나 이상의 프로세서로 간주될 수 있다.
일부 경우에, 도 1a에 도시된 비디오 인코딩 및 디코딩 시스템(10)은 단지 예일 뿐이며, 본 출원의 기술은 인코딩 장치와 디코딩 장치 간의 데이터 통신을 반드시 포함하지 않는 비디오 코딩 설정(예를 들어, 비디오 인코딩 또는 비디오 디코딩)에 적용할 수 있다. 다른 예에서, 데이터는 로컬 메모리로부터 검색되거나, 네트워크 등을 통해 스트리밍될 수 있다. 비디오 인코딩 장치는 데이터를 인코딩하고 데이터를 메모리에 저장할 수 있고 및/또는 비디오 디코딩 장치는 메모리로부터 데이터를 검색하고 데이터를 디코딩할 수 있다. 일부 예에서, 인코딩 및 디코딩은 서로 통신하지 않고 단순히 메모리로 데이터를 인코딩하고 및/또는 메모리에서 데이터를 검색하고 데이터를 디코딩하는 장치에 의해 수행된다.
도 1b는 예시적인 실시예에 따라 도 2의 인코더(20) 및/또는 도 3의 디코더(30)를 포함하는 비디오 코딩 시스템(40)의 예를 예시하는 도면이다. 비디오 코딩 시스템(40)은 본 출원의 실시예에서 다양한 기술의 조합을 구현할 수 있다. 예시된 구현에서, 비디오 코딩 시스템(40)은 이미징 장치(41), 인코더(20), 디코더(30)(및/또는 프로세싱 유닛(46)의 논리 회로(47)에 의해 구현된 비디오 인코더/디코더), 안테나(42), 하나 이상의 프로세서(43), 하나 이상의 메모리(44) 및/또는 디스플레이 장치(45)를 포함할 수 있다.
도 1b에 도시된 바와 같이, 이미징 장치(41), 안테나(42), 프로세싱 유닛(46), 논리 회로(47), 인코더(20), 디코더(30), 프로세서(43), 메모리(44) 및/또는 디스플레이 장치(45)는 서로 통신할 수 있다. 설명된 바와 같이, 비디오 코딩 시스템(40)이 인코더(20) 및 디코더(30) 모두로 예시되었지만, 다른 예에서, 비디오 코딩 시스템(40)은 인코더(20)만을 포함하거나 디코더(30)만을 포함할 수 있다.
일부 예들에서, 안테나(42)는 비디오 데이터의 인코딩된 비트스트림을 송신 또는 수신하도록 구성될 수 있다. 또한, 일부 예들에서, 디스플레이 장치(45)는 비디오 데이터를 제공하도록 구성될 수 있다. 일부 예들에서, 논리 회로(47)는 프로세싱 유닛(46)에 의해 구현될 수 있다. 프로세싱 유닛(46)은 주문형 집적 회로(application-specific integrated circuit, ASIC) 로직, 그래픽 프로세서, 범용 프로세서 등을 포함할 수 있다. 비디오 코딩 시스템(40)은 또한 선택적 프로세서(43)를 포함할 수 있다. 마찬가지로, 선택적 프로세서(43)는 주문형 집적 회로(application-specific integrated circuit, ASIC) 로직, 그래픽 프로세서, 범용 프로세서 등을 포함할 수 있다. 일부 예들에서, 논리 회로(47)는 하드웨어, 예를 들어 비디오 코딩 전용 하드웨어에 의해 구현될 수 있고, 프로세서(43)는 범용 소프트웨어, 운영 체제 등을 사용하여 구현될 수 있다. 또한, 메모리(44)는 임의의 유형의 메모리, 예를 들어, 휘발성 메모리(예를 들어, 정적 랜덤 액세스 메모리(Static Random Access Memory, SRAM) 또는 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM))와 같은 임의의 유형의 메모리일 수 있다) 또는 비 휘발성 메모리(예를 들어, 플래시 메모리)일 수 있다. 비 제한적인 예에서, 메모리(44)는 캐시 메모리에 의해 구현될 수 있다. 일부 예들에서, 논리 회로(47)는 (예를 들어, 픽처 버퍼의 구현을 위해) 메모리(44)에 액세스할 수 있다. 다른 예에서, 논리 회로(47) 및/또는 프로세싱 유닛(46)은 픽처 버퍼 등의 구현을 위한 메모리(예를 들어, 캐시)를 포함할 수 있다.
일부 예들에서, 논리 회로에 의해 구현되는 인코더(20)는 픽처 버퍼(예를 들어, 프로세싱 유닛(46) 또는 메모리(44)에 의해 구현됨) 및 그래픽 프로세싱 유닛(예를 들어, 프로세싱 유닛(46)에 의해 구현됨)을 포함할 수 있다)을 포함할 수 있다. 그래픽 프로세싱 유닛은 픽처 버퍼에 통신 가능하게 결합될 수 있다. 그래픽 프로세싱 유닛은 도 2를 참조하여 설명된 다양한 모듈 및/또는 본 명세서에 설명된 임의의 다른 인코더 시스템 또는 서브 시스템을 구현하기 위해 논리 회로(47)에 의해 구현된 인코더(20)를 포함할 수 있다. 논리 회로는 본 명세서에서 설명하는 다양한 동작을 수행하도록 구성될 수 있다.
일부 예들에서, 디코더(30)는 도 3의 디코더(30)를 참조하여 설명된 다양한 모듈 및/또는 본 명세서에 설명된 다른 디코더 시스템 또는 서브 시스템을 구현하기 위해 유사한 방식으로 논리 회로(47)에 의해 구현될 수 있다. 일부 예들에서, 논리 회로에 의해 구현되는 디코더(30)는 픽처 버퍼(예를 들어, 프로세싱 유닛(2820 또는 메모리(44)에 의해 구현됨)) 및 그래픽 프로세싱 유닛(예를 들어, 프로세싱 유닛(46)에 의해 구현됨)을 포함할 수 있다. 그래픽 프로세싱 유닛은 픽처 버퍼에 통신 가능하게 결합될 수 있다. 그래픽 처리 장치는 도 3을 참조하여 설명된 다양한 모듈 및/또는 본 명세서에 설명된 다른 디코더 시스템 또는 서브 시스템을 구현하기 위해 논리 회로(47)에 의해 구현된 디코더(30)를 포함할 수 있다.
일부 예들에서, 안테나(42)는 비디오 데이터의 인코딩된 비트스트림을 수신하도록 구성될 수 있다. 전술한 바와 같이 인코딩된 비트스트림은 본 명세서에서 설명하는 비디오 프레임 인코딩과 관련된 데이터, 인디케이터, 인덱스 값, 모드 선택 데이터 등을 포함할 수 있으며, 예를 들어, 코딩 분할과 관련된 데이터(예를 들어, 변환 계수 또는 양자화된 변환 계수, (설명된 바와 같이) 선택적 인디케이터, 및/또는 코딩 분할을 정의하는 데이터)를 포함할 수 있다. 비디오 코딩 시스템(40)은 안테나(42)에 결합되고 인코딩된 비트스트림을 디코딩하도록 구성된 디코더(30)를 더 포함할 수 있다. 디스플레이 장치(45)는 비디오 프레임을 제공하도록 구성된다.
본 출원의 이 실시예에서, 인코더(20)를 참조하여 설명된 예에서, 디코더(30)는 역 프로세스를 수행하도록 구성될 수 있다는 것을 이해해야 한다. 시그널링 신택스 요소에 대하여, 디코더(30)는 그러한 신택스 요소를 수신 및 파싱하고 그에 상응하여 관련 비디오 데이터를 디코딩하도록 구성될 수 있다. 일부 예들에서, 인코더(20)는 신택스 요소를 인코딩된 비디오 비트스트림으로 엔트로피 인코딩할 수 있다. 그러한 예들에서, 디코더(30)는 신택스 요소를 파싱하고 그에 상응하여 관련 비디오 데이터를 디코딩할 수 있다.
본 출원의 실시예에서 설명된 비디오 픽처 인코딩 방법은 인코더(20)에 의해 수행되고, 본 출원의 실시예에서 설명된 비디오 픽처 디코딩 방법은 디코더(30)에 의해 수행된다는 점에 유의해야 한다. 본 출원의 실시예들에서 디코더(30)는 예를 들어 H.263, H.264, HEVV, MPEG-2, MPEG-4, VP8, 또는 VP9, 또는 차세대 비디오 표준 프로토콜(예를 들어, H.266)과 같은 비디오 표준 프로토콜에 대응하는 인코더 및 디코더일 수 있다.
도 2는 본 출원의 실시예를 구현하기 위한 인코더(20)의 예의 개략적/개념적 블록도이다. 도 2의 예에서, 인코더(20)는 잔여 계산 유닛(204), 변환 프로세싱 유닛(206), 양자화 유닛(208), 역 양자화 유닛(210), 역변환 프로세싱 유닛(212), 재구성 유닛(214), 버퍼(216), 루프 필터 유닛(220), 디코딩 픽처 버퍼(decoding picture buffer, DPB)(230), 예측 프로세싱 유닛(260) 및 엔트로피 인코딩 유닛(270)을 포함한다. 예측 프로세싱 유닛(260)은 인터 예측 유닛(244), 인트라 예측 유닛(254) 및 모드 선택 유닛(262)을 포함할 수 있다. 인터 예측 유닛(244)은 모션 추정 유닛 및 모션 보상 단위(도시되지 않음)를 포함할 수 있다. 도 2에 도시된 인코더(20)는 하이브리드 비디오 인코더 또는 하이브리드 비디오 코덱 기반 비디오 인코더로 지칭될 수도 있다.
예를 들어, 잔여 계산 유닛(204), 변환 프로세싱 유닛(206), 양자화 유닛(208), 예측 프로세싱 유닛(260) 및 엔트로피 인코딩 유닛(270)은 인코더(20)의 순방향 신호 경로를 형성하지만, 예를 들어, 역 양자화 유닛(210), 역변환 프로세싱 유닛(212), 재구성 부(214), 버퍼(216), 루프 필터(220), 디코딩된 픽처 버퍼(decoding picture buffer, DPB)(230) 및 예측 프로세싱 유닛(260)은 역방향 신호 경로를 형성한다 인코더의. 인코더의 역방향 신호 경로는 디코더(도 3의 디코더(30) 참조)의 신호 경로에 대응한다.
인코더(20)는 예를 들어 입력(202)을 통해, 픽처(201) 또는 픽처(201)의 픽처 블록(203), 예를 들어 비디오 또는 비디오 시퀀스를 형성하는 픽처 시퀀스 내의 픽처를 수신한다. 픽처 블록(203)은 또한 현재 픽처 블록 또는 인코딩될 픽처 블록으로 지칭될 수 있다. 픽처(201)는 현재 픽처 또는 인코딩될 픽처로 지칭될 수 있다(특히, 현재 픽처를 다른 픽처, 예를 들어 동일한 비디오 시퀀스, 즉, 현재 픽처도 포함하는 비디오 시퀀스의 이전에 인코딩 및/또는 디코딩된 픽처와 구별하기 위한 비디오 코딩에서).
인코더(20)의 실시예는 픽처(201)를 픽처 블록(203)과 같은 복수의 블록으로 분할하도록 구성된 분할 유닛(도 2에 도시되지 않음)을 포함할 수 있다. 픽처(201)는 일반적으로 복수의 비 중첩 블록으로 분할된다. 분할 유닛은 비디오 시퀀스의 모든 픽처에 대해 동일한 블록 크기와 블록 크기를 정의하는 대응하는 그리드를 사용하거나, 픽처 또는 서브 세트 또는 픽처 그룹 간의 블록 크기를 변경하고, 각 픽처를 대응하는 블록으로 분할하도록 구성될 수 있다.
일 예에서, 인코더(20)의 예측 프로세싱 유닛(260)은 전술한 분할 기술의 임의의 조합을 수행하도록 구성될 수 있다.
픽처 블록(203)의 크기는 픽처(201)의 크기보다 작지만, 픽처 블록(203)은 픽처 블록(203)과 마찬가지로 샘플 값을 갖는 2 차원 어레이 또는 샘플 행렬로 간주되거나 고려될 수 있다. 다시 말해, 픽처 블록(203)은 예를 들어, 하나의 샘플 어레이(예를 들어, 모노크롬 픽처(201)의 경우 루마 어레이), 3 개의 샘플 어레이(예를 들어, 컬러 픽처의 경우 하나의 루마 어레이 및 두 개의 크로마 어레이) 또는 적용된 색상 형식에 따라 다른 수량 및/또는 배열 유형을 포함할 수 있다. 픽처 블록(203)의 수평 및 수직 방향(또는 축)의 샘플 수량은 픽처 블록(203)의 크기를 정의한다.
도 2에 도시된 인코더(20)는 픽처(201)를 블록 단위로 인코딩하도록 구성된다. 예를 들어, 인코딩 및 예측은 픽처 블록(203)마다 수행된다.
잔여 계산 유닛(204)은 예를 들어, 예측 블록(265)의 샘플 값을 픽처 블록(203)의 샘플 값에서 샘플 단위(sample by sample)로 감산함으로써 샘플 도메인에서 잔여 블록(205)을 획득하기 위해, 픽처 블록(203) 및 예측 블록(265)에 기초하여 잔여 블록(205)을 계산하도록 구성된다(예측 블록(265)에 대한 추가 자세한 내용은 아래에 제공된다).
변환 프로세싱 유닛(206)은 변환, 예를 들어 이산 코사인 변환(discrete cosine transform, DCT) 또는 이산 사인 변환(discrete sine transform, DST)을 잔여 블록(205)의 샘플 값에 적용하여 변환 도메인에서 변환 계수(207)를 획득하도록 구성된다. 변환 계수(207)는 또한 변환 잔여 계수로 지칭될 수 있고 변환 도메인에서 잔여 블록(205)을 나타낸다.
변환 프로세싱 유닛(206)은 HEVC/H.265에 지정된 변환과 같은 DCT/DST의 정수 근사치를 적용하도록 구성될 수 있다. 직교 DCT 변환과 비교할 때 이러한 정수 근사는 일반적으로 요인을 기반으로 조정된다. 순방향 변환 및 역변환을 사용하여 처리되는 잔여 블록의 표준(norm)을 보존하기 위해 변환 프로세스의 일부로서 추가 스케일 팩터가 적용된다. 스케일 팩터는 일반적으로 몇 가지 제약 조건을 기반으로 선택되는데, 예를 들어 스케일 팩터는 시프트 연산에 대한 2의 거듭제곱, 변환 계수의 비트 깊이, 정확도와 구현 비용 간의 절충이다. 예를 들어, 특정 스케일 팩터는 예를 들어 디코더(30) 측의 역변환 프로세싱 유닛(212)에 의한 역변환(및 예를 들어 인코더 측의 역변환 프로세싱 유닛(212)에 의해 대응하는 역변환)에 대해 지정되고, 이에 대응하여 인코더(20) 측에서 변환 프로세싱 유닛(206)에 의해 순방향 변환에 대해 대응하는 스케일 팩터가 지정될 수 있다.
양자화 유닛(208)은, 예를 들어 스칼라 양자화 또는 벡터 양자화를 적용함으로써 양자화된 변환 계수(209)를 얻기 위해 변환 계수(207)를 양자화하도록 구성된다. 양자화된 변환 계수(209)는 양자화된 잔여 계수(209)라고도 지칭될 수 있다. 양자화 프로세스는 변환 계수(207)의 일부 또는 전부와 관련된 비트 심도를 감소시킬 수 있다. 예를 들어, n-비트 변환 계수는 양자화 중에 m 비트 변환 계수로 반올림될 수 있고, 여기서 n은 m보다 크다. 양자화 파라미터(quantization parameter, QP)를 조정하여 양자화 정도를 수정할 수 있다. 예를 들어, 스칼라 양자화의 경우, 더 미세하거나 거친 양자화를 달성하기 위해 다른 스케일이 적용될 수 있다. 더 작은 양자화 단계 크기는 더 미세한 양자화에 대응하고 더 큰 양자화 단계 크기는 더 거친 양자화에 대응한다. 적절한 양자화 단계 크기는 양자화 파라미터(quantization parameter, QP)에 의해 표시될 수 있다. 예를 들어, 양자화 파라미터는 적절한 양자화 단계 크기의 미리 정의된 세트에 대한 인덱스일 수 있다. 예를 들어, 더 작은 양자화 파라미터는 더 미세한 양자화(더 작은 양자화 단계 크기)에 대응할 수 있고 더 큰 양자화 파라미터는 더 거친 양자화(더 큰 양자화 단계 크기)에 대응하거나 그 반대일 수도 있다. 양자화는 양자화 단계 크기 및 대응하는 양자화에 의한 분할 또는 예를 들어 역 양자화 유닛(210)에 의한 역 양자화를 포함할 수 있거나, 또는 양자화 단계 크기에 의한 곱셈을 포함할 수 있다. HEVC와 같은 일부 표준에 따른 실시예에서, 양자화 단계 크기를 결정하기 위해 양자화 파라미터가 사용될 수 있다. 일반적으로 양자화 단계 크기는 나눗셈을 포함한 방정식의 고정 소수점 근사(fixed point approximation)를 사용하여 양자화 파라미터를 기반으로 계산할 수 있다. 잔여 블록의 표준을 재구성하기 위해 양자화 및 역 양자화에 추가 스케일 팩터가 도입될 수 있으며, 여기서 잔류 블록의 표준은 양자화 단계 크기 및 양자화 파라미터에 대한 방정식의 고정 소수점 근사에 사용된 스케일로 인해 수정될 수 있다. 예시적인 구현에서, 역변환의 스케일은 역 양자화의 스케일과 결합될 수 있다. 대안으로, 맞춤형 양자화 테이블이 사용되어 인코더로부터 디코더로, 예를 들어 비트스트림으로 시그널링될 수 있다. 양자화는 손실이 있는 연산이며, 양자화 단계가 증가함에 따라 손실이 증가한다.
역 양자화 유닛(210)은 양자화 유닛(208)의 역 양자화를 양자화 계수에 적용하여, 예를 들어 양자화 유닛(208)과 동일한 양자화 단계 크기에 기초하여 또는 이를 사용함으로써 양자화 유닛(208)에 의해 적용된 양자화 방식의 역 양자화 방식을 적용하여, 역 양자화 계수(211)를 획득하도록 구성된다. 일반적으로 양자화로 야기되는 손실이 변환 계수와 다르지만 역 양자화된 계수(211)는 역 양자화된 잔여 계수(211)라고도 할 수 있으며, 변환 계수(207)에 대응한다.
역 변환 프로세싱 유닛(212)은 변환 프로세싱 유닛(206)에 의해 적용된 변환의 역 변환, 예를 들어 역 이산 코사인 변환(discrete cosine transform, DCT) 또는 역 이산 사인 변환(discrete sine transform, DST))을 적용하여, 샘플 도메인에서 역변환 블록(213)을 획득하도록 구성된다. 역변환 블록(213)은 또한 역변환 역 양자화 블록(213) 또는 역변환 잔여 블록(213)으로 지칭될 수 있다.
재구성 유닛(214)(예를 들어, 합산기(214))은 예를 들어, 재구성된 잔여블록(213)의 샘플 값 및 예측 블록(265)의 샘플 값을 가산함으로써 예측 블록(265)에 역 변환 블록(213)(즉, 재구성된 잔여 블록(213))을 추가하여 샘플 도메인에서 재구성된 블록(215)을 획득하도록 구성된다.
선택적으로, 예를 들어, 라인 버퍼(216)의 버퍼 유닛(216)(줄여서 "버퍼"(216))은 재구성된 블록(215) 및 예를 들어 인트라 예측을 위해 대응하는 샘플 값을 버퍼링하거나 저장하도록 구성된다. 다른 실시예에서, 인코더는 임의의 유형의 추정 및/또는 예측, 예를 들어 인트라 예측을 수행하기 위해 버퍼 유닛(216)에 저장된 필터링되지 않은 재구성된 블록 및/또는 대응하는 샘플 값을 사용하도록 구성될 수 있다.
예를 들어, 일 실시예에서, 인코더(20)는 버퍼 유닛(216)이 인트라 예측 유닛(254)을 위해 사용될 뿐만 아니라 루프 필터 유닛(220)을 위해 사용되는 재구성된 블록(215)을 저장하도록 구성될 수 있다. 예를 들어, 버퍼 유닛(216) 및 디코딩된 픽처 버퍼 유닛(230)은 하나의 버퍼를 형성하도록 한다. 다른 실시예에서, 디코딩된 픽처 버퍼(230)로부터의 필터링된 블록(221) 및/또는 블록 또는 샘플(도 2에 도시되지 않음)은 인트라 예측 유닛(254)에 대한 입력 또는 기초로서 사용된다.
루프 필터 유닛(220)(줄여서 "루프 필터"(220))은 재구성된 블록(215)을 필터링하여 필터링된 블록(221)을 얻거나, 픽셀 전환을 부드럽게 하거나 비디오 품질을 향상시키도록 구성된다. 루프 필터 유닛(220)은 디 블로킹 필터, 샘플 적응 오프셋(sample adaptive offset, SAO) 필터와 같은 하나 이상의 루프 필터, 또는 다른 필터, 예를 들어, 양방향 필터, 적응 루프 필터(adaptive loop filter, ALF), 선명하게 하기 또는 평활화 필터 또는 협업 필터를 나타내기 위한 것이다. 루프 필터 유닛(220)은 도 2에서 인-루프 필터로 도시되어 있지만. 다른 구현에서, 루프 필터 유닛(220)은 포스트-루프 필터로 구현될 수 있다. 필터링된 블록(221)은 필터링된 재구성 블록(221)으로도 지칭될 수 있다. 디코딩 픽처 버퍼(230)는 루프 필터 유닛(220)이 재구성된 인코딩된 블록에 대해 필터링 동작을 수행한 후 재구성된 코딩 블록을 저장할 수 있다.
인코더(20)(대응하여, 루프 필터 유닛(220))의 실시예는 루프 필터 파라미터(예를 들어, 샘플 적응 오프셋 정보)를, 예를 들어 직접 또는 엔트로피 인코딩 유닛(270) 또는 임의의 다른 엔트로피 인코딩 유닛에 의해 수행되는 엔트로피 인코딩 후에 출력하도록 구성될 수 있으므로, 디코더(30)는 디코딩을 위해 동일한 루프 필터 파라미터 등을 수신하고 적용할 수 있다.
디코딩된 픽처 버퍼(디코딩된 픽처 버퍼, DPB)(230)는 인코더(20)에 의한 비디오 데이터 인코딩에 사용하기 위한 참조 픽처 데이터를 저장하는 참조 픽처 메모리일 수 있다. DPB(230)는 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM), 동기 DRAM(synchronous DRAM, SDRAM), 자기 저항 RAM(magnetoresistive RAM, MRAM), 저항 RAM(resistive RAM, RRAM)와 같은 저장 장치, 또는 다른 유형의 저장 장치와 같은 다양한 저장 장치 중 어느 하나에 의해 형성될 수 있다. DPB(230) 및 버퍼(216)는 동일한 저장 장치 또는 별도의 저장 장치에 의해 제공될 수 있다. 예에서, 디코딩된 픽처 버퍼(decoded picture buffer, DPB)(230)는 필터링된 블록(221)을 저장하도록 구성된다. 디코딩된 픽처 버퍼(230)는 다른 이전에 필터링된 블록, 예를 들어 동일한 현재 픽처 또는 상이한 픽처, 예를 들어 이전에 재구성된 픽처의 이전에 재구성되고 필터링된 블록(221)을 저장하고, 예를 들어 인터 예측을 위해, 이전에 재구성된, 즉 디코딩된 픽처(및 대응하는 참조 블록 및 샘플) 및/또는 부분적으로 재구성된 현재 픽처(및 대응하는 참조 블록 및 샘플)를 제공하도록 구성될 수 있다). 예에서, 재구성된 블록(215)이 인-루프 필터링없이 재구성되는 경우, 디코딩된 픽처 버퍼(디코딩된 픽처 버퍼, DPB)(230)는 재구성된 블록(215)을 저장하도록 구성된다.
블록 예측 프로세싱 유닛(260)이라고도 하는 예측 프로세싱 유닛(260)은 예를 들어, 버퍼(26)로부터 픽처 블록(203)(현재 픽처(201)의 현재 픽처 블록(203)) 및 재구성된 픽처 데이터, 예를 들어 를 동일한(현재) 픽처의 참조 샘플을 수신하거나 획득하며, 및/또는 디코딩된 픽처 버퍼(230)로부터의 하나 이상의 이전에 디코딩된 픽처의 참조 픽처 데이터(231)를 수신하거나 획득하며, 예측을 위해 이러한 데이터를 처리, 즉 인터 예측 블록(245) 또는 인트라 예측 블록(255)일 수 있는 예측 블록(265)을 제공하도록 구성될 수 있다.
모드 선택 유닛(262)은 잔여 블록(205)의 계산 및 재구성된 블록(215)의 재구성을 위해, 예측 모드(예를 들어, 인트라 또는 인터 예측 모드) 및/또는 예측 블록(265)으로 사용될 해당 예측 블록(245 또는 255)을 선택하도록 구성될 수 있다.
모드 선택 유닛(262)의 실시예는 (예를 들어, 예측 프로세싱 유닛(260)에 의해 지원되는 예측 모드들로부터) 예측 모드를 선택하도록 구성될 수 있으며, 여기서 예측 모드는 최상의 매칭을 제공하거나, 다시 말해 최소 잔여(최소 잔여는 전송 또는 저장을 위한 더 나은 압축을 의미한다)를 제공하거나, 또는 최소 신호 오버헤드를 제공하거나(최소 신호 처리 오버헤드는 전송 또는 저장을 위한 더 나은 압축을 의미한다), 둘 다를 고려하거나 균형을 잡는다. 모드 선택 유닛(262)은 왜곡률 최적화(rate distortion optimization, RDO)에 기초하여 예측 모드를 결정하도록, 즉, 최소 왜곡률 최적화를 제공하는 예측 모드를 선택하거나 관련 왜곡률이 예측 모드 선택 기준을 적어도 만족하는 예측 모드를 선택하도록 구성될 수 있다.
인코더(20)의 예에 의해 수행되는 예측 처리(예를 들어, 예측 프로세싱 유닛(260)에 의해 수행됨) 및 모드 선택(예를 들어, 모드 선택 부(262)에 의해 수행됨)에 대해 이하에 상세히 설명한다.
전술한 바와 같이, 인코더(20)는 (미리 결정된) 예측 모드들의 세트로부터 최상의 또는 최적 예측 모드를 결정하거나 선택하도록 구성된다. 예측 모드의 세트는 예를 들어 인트라 예측 모드 및/또는 인터 예측 모드를 포함할 수 있다.
인트라 예측 모드의 세트는 35 개의 서로 다른 인트라 예측 모드, 예를 들어 DC(또는 평균) 모드 및 평면 모드와 같은 비 방향 모드, 또는 H.265에 정의된 것과 같은 방향 모드를 포함할 수 있거나, 또는 67 개의 다른 인트라 예측 모드, 예를 들어 DC(또는 평균) 모드 및 평면 모드와 같은 비 방향 모드 또는 H.266에 정의된 개발 중인 방향 모드를 포함할 수 있다.
가능한 구현에서, 인터 예측 모드의 세트는 이용 가능한 참조 픽처(즉, 전술한 바와 같이 DBP(230))에 저장된 적어도 부분적으로 디코딩된 픽처)에 의존하고, 예를 들어 다른 인터 예측 파라미터는 의존한다. 전체 참조 픽처 또는 참조 픽처의 일부(예를 들어, 현재 블록 영역 주변의 검색 창 영역)가 가장 일치하는 참조 블록을 검색하는 데 사용되는지 여부 및/또는 예를 들어 하프-펠 및/또는 1/4- 픽셀 보간과 같은 픽셀 보간이 적용된다. 인터 예측 모드의 세트는 예를 들어 스킵(skip) 모드 및 병합(merge) 모드를 포함할 수 있다. 특정 구현에서, 인터 예측 모드의 세트는 본 출원의 실시예에서 스킵 기반 삼각형 예측 단위(triangle prediction unit, Triangle PU) 모드, 병합 기반 삼각형 PU 모드, 스킵 기반의 모션 벡터 차이가 있는 병합 모드(merge mode with motion vector difference, MMVD), 또는 병합 기반 MMVD를 포함할 수 있다. 일 예에서, 인트라 예측 유닛(254)은 후술되는 인터 예측 기술의 임의의 조합을 수행하도록 구성될 수 있다.
전술한 예측 모드에 추가하여, 스킵 모드 및/또는 직접 모드가 또한 본 출원의 실시예에서 적용될 수 있다.
예측 프로세싱 유닛(260)은 예를 들어, 쿼드 트리(quad-tree, QT) 파티셔닝, 이진 트리(binary-tree, BT) 파티셔닝, 터너리 트리(triple-tree, TT) 파티셔닝, 또는 이들의 임의의 조합을 반복적으로 사용함으로써, 픽처 블록(203)을 더 작은 블록 파티션 또는 서브블록으로 분할하고, 예를 들어 각각의 블록 파티션 또는 서브블록을 예측하도록 더 구성될 수 있다. 모드 선택은 분할된 픽처 블록(203)의 트리 구조의 선택 및 각 블록 파티션 또는 서브블록에 적용되는 예측 모드의 선택을 포함한다.
인터 예측 유닛(244)은 모션 추정(motion estimation, ME) 유닛(도 2에 도시되지 않음) 및 모션 보상(motion compensation, MC) 유닛(도 2에 도시되지 않음)을 포함할 수 있다. 모션 추정 유닛은 모션 추정을 위해, 픽처 블록(203)(현재 픽처(201)의 현재 픽처 블록(203)) 및 디코딩된 픽처(231) 또는 적어도 하나 이상의 이전에 재구성된 블록, 예를 들어 다른/상이한 이전에 디코딩된 화상(231)의 하나 이상의 재구성된 블록을 수신하거나 획득하도록 구성된다. 예를 들어, 비디오 시퀀스는 현재 픽처와 이전에 디코딩된 픽처(31)를 포함할 수 있다. 다시 말해, 현재 픽처와 이전에 디코딩된 픽처(31)는 비디오 시퀀스를 형성하는 픽처들의 일부이거나 시퀀스를 형성할 수 있다.
예를 들어, 인코더(20)는 동일한 픽처의 복수의 참조 블록 또는 복수의 다른 픽처의 상이한 픽처로부터 참조 블록을 선택하고, 참조 블록의 위치 (X, Y 좌표)와 현재 블록의 위치 사이의 참조 픽처 및/또는 오프셋(공간 오프셋) 인터 예측 파라미터로서 모션 추정 유닛(도 2에 도시되지 않음)에 제공하도록 구성될 수 있다. 이 오프셋을 모션 벡터(모션 벡터, MV)라고도 한다.
모션 보상 단위는 인터 예측 파라미터를 획득하고 인터 예측 파라미터에 기초하여 또는 인터 예측 파라미터를 사용하여 인터 예측을 수행하여 인터 예측 블록(245)을 획득하도록 구성된다. 모션 보상 단위에 의해 수행되는 모션 보상(도 2에 도시되지 않음)은 모션 추정을 통해 결정된 모션/블록 벡터를 기반으로 예측 블록을 가져 오거나 생성하는 것을 포함할 수 있다(서브 픽셀 정밀도로 보간을 수행할 가능성이 있다). 보간 필터링은 알려진 픽셀 샘플로부터 추가 픽셀 샘플을 생성할 수 있다. 이것은 픽처 블록을 코딩하는데 사용될 수 있는 후보 예측 블록의 양을 잠재적으로 증가시킨다. 모션 보상 단위(246)는 현재 픽처 블록의 PU에 대한 모션 벡터를 수신하면 참조 픽처 목록 중 하나에서 모션 벡터가 가리키는 예측 블록을 찾을 수 있다. 모션 보상 단위(246)는 또한 블록 및 비디오 슬라이스와 연관된 신택스 요소를 생성할 수 있어서, 디코더(30)는 신택스 요소를 사용하여 비디오 슬라이스의 픽처 블록을 디코딩한다.
구체적으로, 인터 예측 유닛(244)은 신택스 요소를 엔트로피 인코딩 유닛(270)으로 전송할 수 있다. 신택스 요소는 인터 예측 파라미터(예를 들어, 복수의 인터 예측 모드가 횡단된 후 현재 블록의 예측에 사용되는 인터 예측 모드 선택 지시 정보)를 포함한다. 가능한 적용 시나리오에서 인터 예측 모드가 하나만 있는 경우 인터 예측 파라미터는 신택스 요소에 포함되지 않을 수 있다. 이 경우, 디코더(30) 측은 디폴트 예측 모드를 사용하여 직접 디코딩을 수행할 수 있다. 인터 예측 유닛(244)은 인터 예측 기술의 임의의 조합을 수행하도록 구성될 수 있음을 이해할 수 있다.
인트라 예측 유닛(254)은, 예를 들어, 인트라 추정을 위해 동일한 픽처의 픽처 블록(203)(현재 픽처 블록) 및 하나 이상의 이전에 재구성된 블록, 예를 들어 재구성된 이웃 블록을 획득하도록 구성된다. 예를 들어, 인코더(20)는 복수의 (미리 결정된) 인트라 예측 모드 중에서 인트라 예측 모드를 선택하도록 구성될 수 있다.
일 실시예에서, 인코더(20)는 최적화 기준에 따라, 예를 들어, 최소 잔여(예를 들어, 현재 픽처 블록(203)에 가장 유사한 예측 블록(255)을 제공하는 인트라 예측 모드) 또는 최소 왜곡률에 기초하여 인트라 예측 모드를 선택하도록 구성될 수 있다.
인트라 예측 유닛(254)은 예를 들어 선택된 인트라 예측 모드에서의 인트라 예측 파라미터에 기초하여 인트라 예측 블록(255)을 결정하도록 추가로 구성된다. 어느 경우이든, 블록에 대한 인트라 예측 모드를 선택한 후, 인트라 예측 유닛(254)은 또한 인트라 예측 파라미터, 즉 블록에 대해 선택된 인트라 예측 모드를 나타내는 정보를 엔트로피 인코딩 유닛(270)에 제공하도록 구성된다. 일 예에서, 인트라 예측 유닛(254)은 인트라 예측 기술의 임의의 조합을 수행하도록 구성될 수 있다.
구체적으로, 인트라 예측 유닛(254)은 신택스 요소를 엔트로피 인코딩 유닛(270)으로 전송할 수 있다. 신택스 요소는 인트라 예측 파라미터(예를 들어, 복수의 인트라 예측 모드가 통과된 후 현재 블록의 예측에 사용되는 인트라 예측 모드의 선택 지시 정보)를 포함한다. 가능한 응용 시나리오에서 인트라 예측 모드가 하나만 있는 경우 인트라 예측 파라미터는 신택스 요소에 포함되지 않을 수 있다. 이 경우, 디코더(30) 측은 디폴트 예측 모드를 사용하여 직접 디코딩을 수행할 수 있다.
엔트로피 인코딩 유닛(270)은 엔트로피 인코딩 알고리즘 또는 방식 (예를 들어, 가변 길이 코딩(variable length coding, VLC) 방식, 컨텍스트 적응형 VLC(context adaptive VLC, CAVLC) 방식, 산술 코딩 방식, 상황 적응 이진 산술 코딩(context-adaptive binary arithmetic coding, CABAC) 방식, 구문 기반 상황 적응 이진 산술 코딩(syntax-based context-adaptive binary arithmetic coding, SBAC) 방식, 확률 간격 분할 엔트로피(probability interval partitioning entropy, PIPE) 코딩 방식, 또는 다른 엔트로피 코딩 방법론 또는 기술)을 양자화된 잔여 계수(209), 인터 예측 파라미터, 인트라 예측 파라미터 및/또는 루프 필터 파라미터에 적용하여, 예를 들어, 인코딩된 비트스트림(21)의 형태로 출력(272)을 통해 출력될 수 있는 인코딩된 픽처 데이터(21)를 획득하도록 구성된다. 인코딩된 비트스트림은 비디오 디코더(30)에 전송될 수 있거나, 또는 비디오 디코더(30)에 의해 후속 전송을 위해 저장되거나 검색될 수 있다. 엔트로피 인코딩 유닛(270)은 인코딩되고 있는 현재 비디오 슬라이스에 대한 다른 신택스 요소를 엔트로피 인코딩하도록 더 구성될 수 있다.
비디오 인코더(20)의 다른 구조적 변형이 비디오 스트림을 인코딩하기 위해 사용될 수 있다. 예를 들어, 비 변환 기반 인코더(20)는 일부 블록 또는 프레임에 대해 변환 프로세싱 유닛(206) 없이 직접 잔류 신호를 양자화할 수 있다. 다른 구현에서, 인코더(20)는 단일 유닛으로 결합된 양자화 유닛(208) 및 역 양자화 유닛(210)을 가질 수 있다.
구체적으로, 본 출원의 이 실시예에서, 인코더(20)는 다음 실시예에서 설명되는 비디오 픽처 인코딩 방법을 구현하도록 구성될 수 있다.
비디오 인코더(20)의 다른 구조적 변형이 비디오 스트림을 인코딩하기 위해 사용될 수 있다는 것을 이해해야 한다. 예를 들어, 일부 픽처 블록 또는 픽처 프레임에 대해, 비디오 인코더(20)는 잔여 신호를 직접 양자화할 수 있다. 이 경우, 변환 프로세싱 유닛(206)에 의한 처리는 필요하지 않으며, 이에 대응하여 역변환 프로세싱 유닛(212)에 의한 처리도 필요하지 않다. 대안적으로, 일부 픽처 블록 또는 화상 프레임에 대해, 비디오 인코더(20)는 잔여 데이터를 생성하지 않는다. 이에 대응하여 이 경우, 변환 프로세싱 유닛(206), 양자화 유닛(208), 역 양자화 유닛(210) 및 역변환 프로세싱 유닛(212)에 의한 처리는 필요하지 않다. 대안적으로, 비디오 인코더(20)는 재구성된 픽처 블록을 참조 블록으로 직접 저장할 수 있다. 이 경우 필터(220)에 의한 처리는 필요하지 않다. 대안적으로, 비디오 인코더(20) 내의 양자화 유닛(208) 및 역 양자화 유닛(210)이 결합될 수 있다. 루프 필터(220)는 선택 사항이다. 또한, 무손실 압축 코딩의 경우, 변환 프로세싱 유닛(206), 양자화 유닛(208), 역 양자화 유닛(210) 및 역 변환 프로세싱 유닛(212)도 선택 사항이다. 상이한 애플리케이션 시나리오에서, 인터 예측 유닛(244) 및 인트라 예측 유닛(254)은 선택적으로 사용될 수 있다는 것을 이해해야 한다.
도 3은 본 출원의 실시예를 구현하기 위한 디코더(30)의 예의 개략적/개념적 블록도이다. 비디오 디코더(30)는 예를 들어 인코더(20)에 의해 인코딩을 통해 획득된 인코딩된 픽처 데이터(예를 들어, 인코딩된 비트스트림)(21)를 수신하여 디코딩된 픽처(231)를 획득하도록 구성된다. 디코딩 프로세스에서, 비디오 디코더(30)는, 비디오 인코더(20)로부터, 비디오 데이터, 예를 들어 인코딩된 비디오 슬라이스 및 관련 신택스 요소에서 픽처 블록을 나타내는 인코딩된 비디오 비트스트림을 수신한다.
도 3의 예에서, 디코더(30)는 엔트로피 디코딩 유닛(304), 역 양자화 유닛(310), 역 변환 프로세싱 유닛(312), 재구성 유닛(314)(예를 들어, 합산기(314)), 버퍼(316), 루프 필터(320), 디코딩된 픽처를 포함한다. 예측 프로세싱 유닛(360)은 인터 예측 유닛(344), 인트라 예측 유닛(354) 및 모드 선택 부(362)를 포함할 수 있다. 일부 예들에서, 비디오 디코더(30)는 도 2의 비디오 인코더(20)를 참조하여 설명된 인코딩 패스에 일반적으로 역인 디코딩 패스(decoding pass)를 수행할 수 있다.
엔트로피 디코딩 유닛(304)은 예를 들어, 양자화된 계수(309) 및/또는 디코딩된 인코딩 파라미터(도 3에 도시되지 않음), 예를 들어, (디코딩되는) 인터 예측 파라미터, 인트라 예측 파라미터, 루프 필터 파라미터, 및/또는 다른 신택스 요소 중 하나 또는 모두를 획득하기 위해 인코딩된 픽처 데이터(21)를 엔트로피 디코딩하도록 구성된다. 엔트로피 디코딩 유닛(304)은 또한 인터 예측 파라미터, 인트라 예측 파라미터 및/또는 다른 신택스 요소를 예측 프로세싱 유닛(360)으로 포워딩하도록 구성된다. 비디오 디코더(30)는 비디오 슬라이스 레벨 및/또는 픽처 블록 레벨에서 신택스 요소를 수신할 수 있다.
역 양자화 유닛(310)은 역 양자화 유닛(110)과 기능면에서 동일할 수 있고, 역변환 프로세싱 유닛(312)은 역변환 프로세싱 유닛(212)과 기능면에서 동일할 수 있으며, 재구성 유닛(314)은 기능면에서 동일할 수 있다. 재구성 유닛(214)에서 버퍼(316)는 버퍼(216)와 기능면에서 동일할 수 있고, 루프 필터(320)는 루프 필터(220)와 기능면에서 동일할 수 있으며, 디코딩된 픽처 버퍼(330)는 디코딩된 픽처 버퍼(230)와 기능면에서 동일할 수 있다.
예측 프로세싱 유닛(360)은: 인터 예측 유닛(344) 및 인트라 예측 유닛(354)을 포함할 수 있다. 인터 예측 유닛(344)은 기능면에서 인터 예측 유닛(244)과 유사할 수 있고, 인트라 예측 유닛(354)은 기능면에서 유사할 수 있다. 예측 프로세싱 유닛(360)은 일반적으로 블록 예측을 수행하고 및/또는 인코딩된 데이터(21)로부터 예측 블록(365)을 획득하고, 예를 들어, 엔트로피 디코딩 유닛(304)으로부터 예측 관련 파라미터 및/또는 선택된 예측 모드에 관한 정보를(명시적으로 또는 묵시적으로) 수신하거나 획득하도록 구성된다.
비디오 슬라이스가 인트라 인코딩된(I) 슬라이스로 인코딩될 때, 예측 프로세싱 유닛(360)의 인트라 예측 유닛(354)은 시그널링된 인트라 예측 모드 및 현재 프레임 또는 픽처의 이전에 디코딩된 블록의 데이터에 기초하여 현재 비디오 슬라이스의 픽처 블록의 예측 블록(365)을 생성하도록 구성된다. 비디오 프레임이 인터 인코딩된(즉, B 또는 P) 슬라이스로 인코딩될 때, 예측 프로세싱 유닛(360)의 인터 예측 유닛(344)(예를 들어, 모션 보상 단위)은 엔트로피 디코딩 유닛(304)으로부터 수신되는 모션 벡터 및 다른 신택스 요소에 기초하여 현재 비디오 슬라이스의 블록 비디오의 예측 블록(365)을 생성하도록 구성된다. 인터 예측에서, 참조 픽처 목록의 참조 픽처로부터 예측 블록이 생성될 수 있다. 비디오 디코더(30)는 디폴트 구성 기술을 이용하고 DPB(330)에 저장된 참조 픽처에 기초하여 참조 프레임 목록, 목록 0 및 목록 1을 구축할 수 있다.
예측 프로세싱 유닛(360)은 모션 벡터 및 다른 신택스 요소를 파싱하여 현재 비디오 슬라이스에서 비디오 블록의 예측 정보를 결정하고, 예측 정보를 사용하여 디코딩되는 현재 비디오 블록의 예측 블록을 생성하도록 구성된다. 본 출원의 예에서, 예측 프로세싱 유닛(360)은 일부 수신된 신택스 요소를 사용함으로써, 비디오 슬라이스의 비디오 블록을 인코딩하기 위한 예측 모드(예를 들어, 인트라 예측 또는 인터 예측), 인터 예측 슬라이스 유형(예를 들어, B 슬라이스, P 슬라이스 또는 GPB 슬라이스), 슬라이스에 대한 참조 픽처 목록 중 하나 이상의 목록의 구성 정보, 슬라이스의 각 인터 인코딩된 비디오 블록의 모션 벡터, 슬라이스의 각 인터 인코딩된 비디오 블록의 인터 예측 상태, 및 기타 정보를 결정하여 현재 비디오 블록을 디코딩한다. 본 개시의 다른 예에서, 비트스트림으로부터 비디오 디코더(30)에 의해 수신된 신택스 요소는 적응적 파라미터 세트(adaptive parameter set, APS), 시퀀스 파라미터 세트(sequence parameter set, SPS), 픽처 파라미터 세트(picture parameter set, PPS) 또는 슬라이스 헤더 중 하나 이상의 신택스 요소를 포함한다.
역 양자화 유닛(310)은 비트스트림에 제공되고 엔트로피 디코딩 유닛(304)에 의해 디코딩된 양자화된 변환 계수에 대해 역 양자화(즉, 역 양자화)를 수행하도록 구성될 수 있다. 역 양자화 프로세스는 계산된 양자화 파라미터의 사용을 포함할 수 있다. 비디오 슬라이스의 각 비디오 블록에 대해 비디오 인코더(20)에 의해 적용되어야 하는 양자화 정도 및 마찬가지로 적용되어야 하는 역 양자화 정도를 결정한다.
역 변환 프로세싱 유닛(312)은 역 변환(예를 들어, 역 DCT, 역 정수 변환 또는 개념적으로 유사한 역 변환 프로세스)을 변환 계수에 적용하여 픽셀 도메인에서 잔여 블록을 생성하도록 구성된다.
재구성 유닛(314)(예를 들어, 합산기(314))은 예측 블록(365)에 역 변환 블록(313)(즉, 재구성된 잔여 블록(313))을 추가하여, 예를 들어, 재구성된 잔여 블록(313)의 샘플 값 및 예측 블록(365)의 샘플 값을 추가함으로써 샘플 도메인에서 재구성된 블록(315)을 획득하도록 구성된다.
루프 필터 유닛(320)(코딩 루프 내 또는 코딩 루프 이후)은 재구성된 블록(315)을 필터링하여 필터링된 블록(321)을 획득하고, 픽셀 전환을 평활화하거나 비디오 품질을 개선하도록 구성된다. 예에서, 루프 필터 유닛(320)은 아래에 설명된 필터링 기술의 임의의 조합을 수행하도록 구성될 수 있다. 루프 필터 유닛(320)은 디 블로킹 필터, 샘플 적응 오프셋(sample adaptive offset, SAO) 필터 또는 다른 필터, 예를 들어, 양방향 필터, 적응 루프 필터(adaptive loop filter, ALF), 선명하게 하기 또는 평활화 필터 또는 협업 필터와 같은 하나 이상의 루프 필터를 나타내기 위한 것이다. 루프 필터 유닛(320)은 도 3에서 인-루프 필터로 도시되어 있지만, 다른 구현에서 루프 필터 유닛(320)은 포스트-루프 필터로 구현될 수 있다.
그런 다음, 주어진 프레임 또는 픽처의 디코딩된 비디오 블록(321)은 후속 모션 보상을 위해 사용되는 참조 픽처를 저장하는 디코딩된 픽처 버퍼(330)에 저장된다.
디코더(30)는 예를 들어, 출력(332)을 통해 디코딩된 픽처(31)를 출력하도록 구성되어, 사용자에게 제공하거나 볼 수 있다.
비디오 디코더(30)의 다른 변형이 압축된 비트스트림을 디코딩하는 데 사용될 수 있다. 예를 들어, 디코더(30)는 루프 필터 유닛(320) 없이 출력 비디오 스트림을 생성할 수 있다. 예를 들어, 비 변환 기반 디코더(30)는 일부 블록 또는 프레임에 대해 역변환 프로세싱 유닛(312) 없이 직접 잔여 신호를 역 양자화할 수 있다. 다른 구현에서, 비디오 디코더(30)는 역 양자화 유닛(310) 및 역변환 프로세싱 유닛(312)이 단일 유닛으로 결합될 수 있다.
구체적으로, 본 출원의 이 실시예에서, 디코더(30)는 다음의 실시예에서 설명되는 비디오 픽처 디코딩 방법을 구현하도록 구성될 수 있다.
비디오 디코더(30)의 다른 구조적 변형이 인코딩된 비디오 비트스트림을 디코딩하기 위해 사용될 수 있다는 것을 이해해야 한다. 예를 들어, 비디오 디코더(30)는 필터(320)의 처리 없이 출력 비디오 스트림을 생성할 수 있다. 또는 일부 픽처 블록 또는 픽처 프레임에 대해 비디오 디코더(30)의 엔트로피 디코딩 유닛(304)은 디코딩을 통해 양자화된 계수를 획득하지 않고, 이에 대응하여, 역 양자화 유닛(310) 및 역변환 프로세싱 유닛(312)에 의한 처리가 필요하지 않다. 루프 필터(320)는 선택 사항이다. 또한, 무손실 압축의 경우, 역 양자화 유닛(310) 및 역변환 프로세싱 유닛(312)도 선택 사항이다. 상이한 애플리케이션 시나리오에서, 인터 예측 유닛 및 인트라 예측 유닛은 선택적으로 사용될 수 있다는 것을 이해해야 한다.
본 출원의 인코더(20) 및 디코더(30)에서, 단계의 처리 결과는 추가로 처리된 후 다음 단계로 출력될 수 있음을 이해해야 한다. 예를 들어, 보간 필터링, 모션 벡터 유도 또는 루프 필터링과 같은 단계 후에 대응 절차의 처리 결과에 대해 클립 또는 시프트와 같은 추가 작업이 수행된다.
예를 들어, 현재 픽처 블록의 제어 포인트이면서 이웃 아핀 코딩 블록의 모션 벡터에 기초하여 도출되는 모션 벡터 또는 현재 픽처 블록의 서브블록이면서 이웃 아핀 코딩 블록의 모션 벡터에 기초하여 도출 모션 벡터는 더 처리될 수 있다. 이것은 이 출원에 제한되지 않는다. 예를 들어, 모션 벡터의 값은 특정 비트 폭 범위 내에 있도록 제한된다. 모션 벡터의 허용된 비트 폭이 bitDepth라고 가정하면 모션 벡터의 값은 -2^(bitDepth-1) 내지 2^(bitDepth-1)-1이고, 여기서 기호 "^"는 지수를 나타낸다. bitDepth가 16이면 값의 범위는 -32768 내지 32767이다. bitDepth가 18이면 값의 범위는 -131072 내지 131071이다. 다른 예를 들어, 모션 벡터(예를 들어, 하나의 8x8 픽처 블록 내에서의 4 개의 4x4 서브블록의 모션 벡터 MV)의 값은 4 개의 4x4 서브블록의 MV의 정수 부분 간의 최대 차이가 N 개의 픽셀을 초과하지 않도록, 예를 들어, 1 픽셀을 초과하지 않도록 제한된다.
다음 두 가지 방식을 사용하여 모션 벡터의 값을 특정 비트 폭 범위 내에 있도록 제한할 수 있다:
방식 1: 모션 벡터의 오버플로 최상위 비트가 제거된다:
ux=(vx+2bitDepth) % 2bitDepth
vx=( ux
Figure pct00001
2bitDepth-1 ) ?(ux - 2bitDepth ): ux
uy=( vy+2bitDepth) % 2bitDepth
vy=( uy
Figure pct00002
2bitDepth-1 ) ?(uy - 2bitDepth ): uy
여기서, vx는 픽처 블록 또는 픽처 블록의 서브블록의 모션 벡터의 수평 성분이고, vy는 픽처 블록 또는 픽처 블록의 서브블록의 수직 성분이고, ux와 uy는 중간 값이며, bitDepth는 비트 폭을 나타낸다.
예를 들어, vx의 값은 -32769이고, 전술한 식에 따라 얻은 32767이다. 값은 이진 보조 코드 형태로 컴퓨터에 저장되고, 이진 보조 코드 -32769는 1,0111,1111,1111,1111(17 비트)이며 오버플로가 발생하면 컴퓨터는 최상위 비트를 버린다. 따라서 vx의 값은 0111,1111,1111,1111, 즉 32767이며 이것은 식에 따라 얻은 결과와 일치한다.
방식 2: 클리핑은 다음 식에 표시된 것처럼 모션 벡터에 대해 수행된다:
vx=Clip3(-2bitDepth-1, 2bitDepth-1 -1, vx)
vy=Clip3(-2bitDepth-1, 2bitDepth-1 -1, vy)
여기서, vx는 픽처 블록 또는 픽처 블록의 서브블록의 모션 벡터의 수평 성분이고, vy는 픽처 블록 또는 픽처 블록의 모션 벡터의 수직 성분이고, x, y, z MV 클램핑 프로세스 Clip3의 세 입력 값에 대응하고, Clip3은 z 값을 [x, y] 범위로 클리핑하는 것을 나타낸다.
Clip3(x, y, z)=
Figure pct00003
도 4는 본 출원의 실시예에 따른 비디오 코딩 장치(400)(예를 들어, 비디오 인코딩 장치(400) 또는 비디오 디코딩 장치(400))의 개략적인 구조도이다. 비디오 코딩 장치(400)는 본 명세서에서 설명된 실시예들을 구현하는데 적합하다. 일 실시예에서, 비디오 코딩 장치(400)는 비디오 디코더(예를 들어, 도 1a의 디코더(30)) 또는 비디오 인코더(예를 들어, 도 1a의 인코더(20))일 수 있다. 다른 실시예에서, 비디오 코딩 장치(400)는 도 1a의 디코더(30) 또는 도 1a의 인코더(20)의 하나 이상의 컴포넌트일 수 있다.
비디오 코딩 장치(400)는: 데이터를 수신하도록 구성된 입구 포트(410) 및 수신 유닛(Rx)(420); 데이터를 처리하도록 구성된 프로세서, 논리 장치 또는 중앙 처리 장치(CPU)(430); 데이터를 전송하도록 구성된 송신기 유닛(Tx)(440) 및 출구 포트(450); 및 데이터를 저장하도록 구성된 메모리(460)를 포함한다. 수신 유닛(420)은 또한 수신기(420) 또는 수신기 유닛(420)으로 지칭될 수 있다. 송신기 유닛(440)은 또한 간단히 송신기(440)로 지칭될 수 있다. 비디오 코딩 장치(400)는 광 또는 전기 신호의 송신 또는 수신을 위해, 입구 포트(410), 수신기 유닛(420), 송신기 유닛(440) 및 출구 포트(450)에 결합된 광-전기 구성 요소 및 전기-광(EO) 구성 요소를 더 포함할 수 있다.
프로세서(430)는 하드웨어 및 소프트웨어에 의해 구현된다. 프로세서(430)는 하나 이상의 CPU 칩, 코어(예를 들어, 멀티 코어 프로세서), FPGA, ASIC 및 DSP로 구현될 수 있다. 프로세서(430)는 입구 포트(410), 수신기 유닛(420), 송신기 유닛(440), 출구 포트(450) 및 메모리(460)와 통신한다. 프로세서(430)는 코딩 모듈(470)(예를 들어, 인코딩 모듈(470) 또는 디코딩 모듈(470))을 포함한다. 인코딩/디코딩 모듈(470)은 본 명세서에 개시된 실시예들을 구현하여 본 출원의 실시예들에서 제공되는 크로마 블록 예측 방법을 구현한다. 예를 들어, 인코딩/디코딩 모듈(470)은 다양한 코딩 동작을 구현, 처리 또는 제공한다. 따라서, 인코딩/디코딩 모듈(470)은 비디오 코딩 장치(400)의 기능에 실질적인 개선을 제공하고, 비디오 코딩 장치(400)의 다른 상태로의 변환에 영향을 미친다. 대안으로, 인코딩/디코딩 모듈(470)은 메모리(460)에 저장되고 프로세서(430)에 의해 실행되는 명령어로 구현된다.
메모리(460)는 하나 이상의 디스크, 테이프 드라이브 및 솔리드 스테이트 드라이브를 포함하고 오버플로우 데이터 저장 장치로 사용될 수 있어서, 이러한 프로그램이 실행을 위해 선택될 때 프로그램을 저장하고, 프로그램 실행 중에 읽어내는 명령 및 데이터를 저장한다. 메모리(460)는 휘발성 및/또는 비 휘발성일 수 있고, 리드-온리 메모리(read-only memory, ROM), 랜덤 액세스 메모리(random access memory, RAM), 터너리 콘텐츠 주소 지정 가능 메모리(ternary contents addressable memory, TCAM) 및/또는 정적 랜덤 액세스 메모리(SRAM)일 수 있다.
도 5는 예시적인 실시예에 따라 도 1a에서의 소스 장치(12) 및 목적지 장치(14) 중 하나 또는 둘 모두로서 사용될 수 있는 장치(500)의 단순화된 블록도이다. 장치(500)는 본 출원의 기술을 구현할 수 있다. 다시 말해, 도 5는 본 출원의 실시예에 따른 인코딩 장치 또는 디코딩 장치(줄여서 코딩 장치(500)로 지칭됨)의 구현의 개략적인 블록도이다. 코딩 장치(500)는 프로세서(510), 메모리(530) 및 버스 시스템(550)을 포함할 수 있다. 프로세서와 메모리는 버스 시스템을 통해 연결된다. 메모리는 명령어를 저장하도록 구성된다. 프로세서는 메모리에 저장된 명령을 실행하도록 구성된다. 코딩 장치의 메모리는 프로그램 코드를 저장한다. 프로세서는 메모리에 저장된 프로그램 코드를 호출하여본 출원에 설명된 다양한 비디오 픽처 인코딩 또는 디코딩 방법을 수행할 수 있다. 반복을 피하기 위해 여기에서는 세부 사항을 설명하지 않는다.
본 출원의 이 실시예에서, 프로세서(510)는 중앙 처리 장치(Central Processing Unit, 줄여서 "CPU")일 수 있다. 대안적으로, 프로세서(510)는 다른 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그래밍 가능 게이트 어레이(FPGA) 또는 다른 프로그래밍 가능 논리 장치, 개별 게이트 또는 트랜지스터 논리 장치, 개별 하드웨어 구성 요소 등이 될 수 있다. 범용 프로세서는 마이크로 프로세서, 임의의 통상적인 프로세서 등일 수 있다.
메모리(530)는 ROM(read-only memory) 장치 또는 RAM(random access memory) 장치를 포함할 수 있다. 임의의 다른 적절한 유형의 저장 장치가 대안적으로 메모리(530)로 사용될 수 있다. 메모리(530)는 버스(550)를 통해 프로세서(510)에 의해 액세스되는 코드 및 데이터(531)를 포함할 수 있다. 메모리(530)는 운영 체제(533) 및 애플리케이션 프로그램(535)을 더 포함할 수 있다. 응용 프로그램(535)은 프로세서(510)가 본 출원에서 설명하는 비디오 인코딩 또는 디코딩 방법(특히 본 출원에서 설명하는 비디오 픽처 인코딩 또는 디코딩 방법)을 수행할 수 있도록 하는 적어도 하나의 프로그램을 포함한다. 예를 들어, 애플리케이션 프로그램(535)은 애플리케이션 1 내지 N을 포함할 수 있다. 애플리케이션은 본 출원에서 설명된 비디오 인코딩 또는 디코딩 방법을 수행하는 비디오 인코딩 또는 디코딩 애플리케이션(줄여서 비디오 코딩 애플리케이션이라고 함)을 더 포함한다.
데이터 버스 외에, 버스 시스템(550)은 데이터 버스를 포함할 수 있을 뿐만 아니라 전력 버스, 제어 버스, 상태 신호 버스 등을 포함할 수도 있다. 그러나 명확한 설명을 위해 도면에서 다양한 유형의 버스가 버스 시스템(550)으로 표시되어 있다.
선택적으로, 코딩 장치(500)는 하나 이상의 출력 장치, 예를 들어 디스플레이(570)를 더 포함할 수 있다. 일 예에서, 디스플레이(570)는 디스플레이와 터치 입력을 감지하도록 작동 가능한 터치 감지 유닛을 결합하는 터치 감지 디스플레이일 수 있다. 디스플레이(570)는 버스(550)를 통해 프로세서(510)와 연결될 수 있다.
다음은 본 출원의 실시예에서의 기술적 솔루션을 설명한다.
비디오 인코딩은 주로 인트라 예측(Intra Prediction), 인터 예측(Inter Prediction), 변환(Transform), 양자화(Quantization), 엔트로피 인코딩(Entropy encode) 및 인-루프 필터링(in-loop filtering)(주로 디 블로킹 필터링, 디 블로킹 필터링)과 같은 프로세스를 포함한다. 픽처가 코딩 블록으로 분할된 후 인트라 예측 또는 인터 예측이 수행된다. 그런 다음 잔차를 얻은 후 변환 및 양자화를 수행한다. 마지막으로 엔트로피 인코딩을 수행하고 비트스트림을 출력한다. 여기서, 코딩 블록은 샘플을 포함하는 MxN 어레이이다(M은 N과 같거나 N과 같지 않을 수 있다). 또한 각 샘플 위치의 샘플 값이 알려져 있다.
인트라 예측은 현재 픽처에서 복원된 영역의 샘플 값을 이용하여 현재 코딩 블록 내 샘플의 샘플 값을 예측하는 것이다.
인터 예측은 현재 픽처에서 현재 코딩 블록에 대해 매칭된 참조 블록에 대해 복원된 픽처를 검색하고, 현재 코딩 블록의 모션 정보를 획득하고, 그런 다음 예측 정보 또는 예측자(정보 및 값)를 계산하는 것이다. 이하에서는 모션 정보를 기반으로 현재 코딩 블록에서 샘플의 샘플 값을 구별하지 않는다. 모션 정보를 계산하는 프로세스를 모션 추정(Motion estimation, ME)이라 하고, 현재 코딩 블록에서 샘플의 샘플 값에 대한 예측자를 계산하는 프로세스를 모션 보상(Motion Compensation, MC)이라 한다.
현재 디코딩 블록의 모션 정보는 예측 방향 지시 정보(일반적으로 순방향 예측, 역방향 예측 또는 양방향 예측), 참조 블록을 가리키는 하나 또는 두 개의 모션 벡터(Motion vector, MV) 및 참조 블록이 위치하는 픽처의 표시 정보(일반적으로 참조 인덱스(Reference index)로 표시됨)를 포함한다는 점에 유의해야 한다.
순방향 예측은 참조 블록을 얻기 위해 현재 코딩 블록에 대해 설정된 순방향 참조 픽처에서 참조 픽처를 선택하는 것이다. 역방향 예측은 현재 코딩 블록에 대해 설정된 역방향 참조 픽처에서 참조 픽처를 선택하여 참조 블록을 얻는 것이다. 양방향 예측은 참조 블록을 얻기 위해 순방향 참조 픽처 세트에서 참조 픽처를 선택하고 역방향 참조 픽처 세트에서 참조 픽처를 선택하는 것이다. 양방향 예측을 수행할 때 현재 코딩 블록에 대해 두 개의 참조 블록이 있다. 각 참조 블록은 모션 벡터와 참조 프레임 인덱스를 사용하여 표시해야 한다. 그러면 두 개의 참조 블록에 있는 샘플의 샘플 값에 기초해서 현재 블록에 있는 샘플의 샘플 값에 대한 예측자가 결정된다.
모션 추정 시 참조 픽처의 현재 디코딩 블록에 대해 복수의 참조 블록을 시도해야 하며, 최종적으로 예측에 사용되는 특정 참조 블록은 왜곡률 최적화(rate-distortion Optimization, RDO) 또는 다른 방법을 통해 결정된다.
인트라 예측 또는 인터 예측을 통해 예측 정보를 획득한 후, 현재 디코딩 블록의 샘플 값에서 해당 예측 정보를 감산하여 잔차 정보를 획득한다. 그런 다음, 이산 코사인 변환(discrete cosine transformation, DCT) 방식 등을 이용하여 잔차 정보를 변환하고 양자화 및 엔트로피 인코딩을 통해 비트스트림을 획득한다. 예측 신호가 복원된 잔여 신호와 결합된 후 복원된 신호를 얻기 위해 필터링이 수행되어야 한다. 재구성된 신호는 후속 인코딩을 위한 참조 신호로 사용된다.
디코딩은 인코딩의 역 프로세스이다. 예를 들어, 엔트로피 복호화, 역 양자화, 역변환을 통해 먼저 잔차 정보를 획득하고, 비트스트림을 복호화하여 현재 디코딩 블록에 대해 인트라 예측이 수행되는지 인터 예측이 수행되는지를 판단한다. 인트라 예측이 수행되면 인트라 예측 방법을 이용하여 현재 디코딩 블록 주변 복원 영역의 샘플의 샘플 값에 기초해서 예측 정보를 구축한다. 인터 예측을 수행하는 경우에는 파싱을 통해 모션 정보를 획득해야 하고, 파싱을 통해 획득한 모션 정보를 기반으로 복원 픽처에서 참조 블록을 결정하고, 블록 내 샘플의 샘플 값을 예측 정보로 사용한다. 이 프로세스를 모션 보상(Motion Compensation, MC)이라고 한다. 복원 정보는 예측 정보와 잔차 정보를 결합하고 필터링을 수행하여 얻을 수 있다.
HEVC에서, 2 개의 인터 예측 모드가 사용된다: 어드밴스드 모션 벡터 예측(Advanced Motion Vector Prediction, AMVP) 모드 및 병합(Merge) 모드.
AMVP 모드에서 후보 모션 벡터리스트는 공간적으로 이웃하는 코딩 블록 또는 현재 코딩 블록의 시간적으로 이웃하는 코딩 블록의 모션 정보를 기반으로 구성된다. 그러면 후보 모션 벡터리스트에서 최적의 모션 벡터가 결정되어 현재 코딩 블록의 모션 벡터 예측자(Motion vector predictor, MVP)로 사용된다. 왜곡률 비용은 J=SAD+λ 공식에 따라 계산된다. 여기서 J는 왜곡률 비용(RD cost)이고, SAD는 원래 샘플 값과 후보 모션 벡터 예측기를 사용하여 모션 추정을 통해 얻은 예측 샘플 값 사이의 절대 차이(Sum of absolute Differences, SAD)의 합계이고, R은 비트 레이트이고, λ는 라그랑주 승수이다. 인코더 측은 후보 모션 벡터리스트에서 선택된 모션 벡터 예측자의 인덱스 값과 참조 프레임의 인덱스 값을 디코더 측으로 전달한다. 또한, 현재 코딩 블록의 실제 모션 벡터를 얻기 위해 MVP 중심의 이웃에서 모션 검색을 수행한다. 인코더 측은 MVP와 실제 모션 벡터 간의 차이(모션 벡터 차이)를 디코더 측으로 전송한다.
병합 모드에서, 현재 디코딩 블록의 공간적으로 이웃하는 디코딩 블록 또는 시간적으로 이웃하는 디코딩 블록의 모션 정보를 기반으로 후보 모션 정보 목록이 구성된다. 그런 다음, 왜곡률 비용을 기반으로 후보 모션 정보 목록에서 최적의 모션 정보를 결정하여 현재 디코딩 블록의 모션 정보로 사용한다. 다음으로, 후보 모션 정보 목록에서 최적 모션 정보의 위치의 인덱스 값(이하 병합 인덱스로 표시됨)이 디코더 측으로 전송된다. 현재 코딩 블록의 공간적 후보 모션 정보 및 시간적 후보 모션 정보는 도 6에 도시되어 있다. 공간 후보 모션 정보는 공간적으로 인접한 5 개의 블록(A0, A1, B0, B1, B2)에서 가져온 것이다. 주변 블록을 사용할 수 없거나 인터 예측 모드를 사용하는 경우 주변 블록의 모션 정보는 후보 모션 정보 목록에 추가되지 않는다. 현재 코딩 블록의 시간적 후보 모션 정보는 참조 프레임과 현재 프레임의 픽처 순서 카운트(Picture Order Count, POC)를 기반으로 참조 프레임 내 해당 위치에서 블록의 MV를 스케일링하여 획득한다. 참조 프레임의 T 위치에 있는 블록이 사용 가능한지가 먼저 결정된다. 블록을 사용할 수 없는 경우 C 위치의 블록이 선택된다.
HEVC의 인터 예측에서, 코딩 블록의 모든 샘플은 동일한 모션 정보를 가지며, 그런 다음 모션 정보를 기반으로 모션 보상을 수행하여 코딩 블록의 샘플에 대한 예측자를 획득한다.
비디오 시퀀스에는 일반적으로 프레임(Frame)이라고 하는 특정 양의 픽처가 포함된다. 주변 픽처는 일반적으로 유사하며, 즉 중복이 많다. 모션 보상은 인접한 프레임 간의 중복을 제거하여 압축률을 높이기 위해 수행된다. 모션 보상은 이웃 프레임 간의 차이를 설명하는 방법이며(여기서 "인접"은 인코딩 관계 측면에서 두 개의 프레임이 인접하지만 재생 시퀀스 측면에서 반드시 인접할 필요는 없음을 나타냄) 인터 예측 프로세스의 일부이다. 모션 보상을 수행하기 전에 모션 추정 또는 비트스트림 디코딩을 통해 디코딩 블록의 모션 정보를 획득한다. 모션 정보는 주로 다음을 포함한다: (1) 순방향 예측, 역방향 예측 및 양방향 예측을 포함하는 코딩 블록의 예측 방향, 여기서 순방향 예측은 코딩 블록이 이전 인코딩된 프레임을 사용하여 예측됨을 나타내고, 역방향 예측은 코딩 블록이 후속 인코딩된 프레임을 사용하여 예측됨을 나타내고, 양방향 예측은 코딩 블록이 순방향 및 역방향 인코딩된 프레임을 모두 사용하여 예측됨을 나타낸다; (2) 현재 코딩 블록의 참조 블록이 위치하는 프레임을 나타내는 코딩 블록의 참조 프레임 인덱스; 및 (3) 참조 블록에 대한 코딩 블록의 모션 변위를 나타내는 코딩 블록의 모션 벡터 MV, 여기서 MV는 수평 성분(
Figure pct00004
로 표시) 및 수직 성분(
Figure pct00005
로 표시)을 포함하며, 이 두 성분은 각각 수평 방향에서 참조 블록에 대한 코딩 블록의 모션 변위 및 수직 방향에서 참조 블록에 대한 코딩 블록의 모션 변위를 나타낸다. 디코딩 블록에 대해 순방향 예측 또는 역방향 예측을 수행하는 경우 MV는 하나뿐이다. 코딩 블록에 대해 양방향 예측을 수행할 때 MV가 두 개 있다. 도 7은 전술한 모션 정보에 대한 설명이다. 도 7에서, 모션 정보 및 예측 정보에 대한 설명은 다음과 같다. 0은 "순방향(forward)"을 나타내고, 1은 "역방향(backward)"을 나타낸다. 예를 들어, Ref0은 순방향 참조 프레임을 나타내고, Ref1은 역방향 참조 프레임을 나타내고, MV0은 순방향 모션 벡터를 나타내고, MV1은 역방향 모션 벡터를 나타낸다. A, B, C는 각각 순방향 참조 블록, 현재 코딩 블록 및 역방향 참조 블록을 나타낸다. Cur는 현재 디코딩 프레임을 나타내고, 점선은 B의 모션 궤적을 나타낸다. 모션 보상은 모션 정보를 기반으로 참조 블록을 찾고, 참조 블록을 처리하여 디코딩 블록의 예측 블록을 획득하는 프로세스이다.
순방향 예측의 기본적인 모션 보상 프로세스는 다음과 같다: 도 7에 도시된 바와 같이, 현재 코딩 블록은 블록 B이고, B의 폭과 높이는 각각 W와 H이다. 이 경우 모션 정보를 기반으로 현재 코딩 블록 B의 순방향 참조 프레임이 Ref0 프레임이고 현재 코딩 블록 B의 순방향 모션 벡터는 MV0=(
Figure pct00006
,
Figure pct00007
)이다. Cur 프레임의 코딩 블록 B가 인코딩되면 Cur 프레임에서 B의 왼쪽 상단 모서리의 좌표(i, j)를 기반으로 Ref0 프레임에서 동일한 좌표 포인트가 먼저 발견되고 블록 B'가 블록 B의 폭과 높이를 기준으로 Ref0을 구할 수 있다. 그러면 B'의 MV0을 기준으로 블록 B'를 A 블록으로 이동시킨다. 마지막으로, 블록 A에 대해 보간 처리를 수행하여 현재 코딩 블록 B의 예측 블록을 획득한다. 현재 코딩 블록 B의 예측 블록에 포함된 각 샘플의 샘플 값을 블록 B에서 해당 샘플의 예측자라고 한다. 역방향 예측의 모션 보상 프로세스는 순방향 예측과 동일하며 기준 방향에만 차이가 있다. 역방향 예측 모션 보상 및 순방향 예측 모션 보상을 통해 획득된 예측 블록을 각각 순방향 예측 블록 및 역방향 예측 블록이라고 한다. 디코딩 블록에 대해 양방향 예측이 수행되지 않는 경우 획득한 순방향 예측 블록과 획득한 역방향 예측 블록은 현재 디코딩 블록의 예측 블록이다.
양방향 예측의 경우, 모션 정보를 기반으로 순방향 예측 모션 보상 및 역방향 예측 모션 보상 프로세스에서 각각 순방향 예측 블록과 역방향 예측 블록을 획득하고, 그런 다음 순방향 예측 블록과 역방향 예측 블록의 동일한 위치에서 샘플 값에 대한 양방향 광학 흐름(양방향 광학 흐름, BIO 또는 BDOF) 및 가중 예측을 통해 디코딩 블록 B의 예측 블록을 획득한다.
가중 예측 방법은 현재 디코딩 블록의 예측자를 계산할 때 순방향 예측 블록의 샘플 값과 역방향 예측 블록의 등방성 샘플 값(isotropic sample value)에 대해 가중 합산만 순차적으로 수행하면 되며,
Figure pct00008
(1)
식 (1)에서,
Figure pct00009
,
Figure pct00010
, 및
Figure pct00011
는 각각 좌표
Figure pct00012
에서 현재 코딩 블록의 예측 블록, 순방향 예측 블록 및 역방향 예측 블록의 예측자이고,
Figure pct00013
Figure pct00014
(0 ≤
Figure pct00015
≤1, 0 ≤
Figure pct00016
≤1 및
Figure pct00017
+
Figure pct00018
=1)는 가중치 계수이며
Figure pct00019
Figure pct00020
의 값은 인코더에 따라 다를 수 있다. 일반적으로
Figure pct00021
Figure pct00022
은 모두 1/2이다.
도 8은 가중 합산을 통해 현재 디코딩 블록의 예측 블록을 획득하는 예를 나타낸다. 도 8에서 PredB, PredA, PredC는 각각 현재 디코딩 블록의 예측 블록, 순방향 예측 블록, 역방향 예측 블록이며 크기는 4x4이다. 예측 블록에서 작은 블록의 값은 포인트의 예측자이며, 좌측 상단 모서리를 원점으로 하는 PredB, PredA, PredC에 대한 좌표계가 설정된다. 예를 들어, 좌표 (0,0)에서 PredB의 예측자는 다음과 같다:
Figure pct00023
Figure pct00024
좌표(0,1)에서 PredB의 예측자는 다음과 같다:
Figure pct00025
Figure pct00026
다른 포인트는 순차적으로 계산되며 자세한 내용은 설명하지 않는다.
양방향 예측 가중 예측 기술은 계산이 간단하지만 이러한 블록 기반 모션 보상 방법은 매우 거칠기 때문에 특히 복잡한 텍스처가 있는 픽처에 대해서는 예측 효과가 좋지 않고 압축 효율이 낮다는 것을 알 수 있다.
BIO에서, 현재 CU에 대해 양방향 예측 모션 보상을 수행하여 순방향 예측 블록과 역방향 예측 블록을 얻은 다음 현재 CU의 각 4x4 서브블록의 정제된 모션 벡터를 순방향 예측자와 역방향 예측자를 기반으로 도출하고, 마지막으로, 현재 CU의 예측 블록을 최종적으로 획득하기 위해 현재 코딩 블록의 각 샘플에 대해 보상이 다시 수행된다.
각 4x4 서브블록의 정제된 모션 벡터(
Figure pct00027
)는 L0 및 L1의 예측자를 최소화하기 위해 서브블록 주변의 6x6 윈도우 Ω에 BIO를 적용하여 획득한다. 구체적으로(
Figure pct00028
)는 공식에 따라 도출된다.
Figure pct00029
Figure pct00030
(2)
여기서,
Figure pct00031
는 플로어 함수이다(floor(A)는 A보다 크지 않은 최대 정수를 나타낸다);
Figure pct00032
이고, 지나치게 큰 정제된 이동 벡터로 인한 잘못된 전달을 방지하기 위한 임계 값이며;
Figure pct00033
, 및
Figure pct00034
; BD는 현재 샘플 비트 폭이며; 연산 ?는
Figure pct00035
이면,
Figure pct00036
임을 나타내고, 그렇지 않으면
Figure pct00037
임을 나타내며; 그리고
Figure pct00038
는 비트 AND 연산이다.
Figure pct00039
,
Figure pct00040
,
Figure pct00041
,
Figure pct00042
, 및
Figure pct00043
은 다음 식에 따라 계산된다:
Figure pct00044
Figure pct00045
Figure pct00046
(3)
Figure pct00047
Figure pct00048
식에서,
Figure pct00049
Figure pct00050
(4)
Figure pct00051
여기서,
Figure pct00052
는 현재 CU에서 샘플 위치
Figure pct00053
의 예측자이고(k는 0 또는 1과 같고, 0은 "순방향"을 나타내고, 1은 "역방향"을 나타내며, 이하 동일하다),
Figure pct00054
Figure pct00055
는 각각 샘플 위치
Figure pct00056
의 수평 경사 및 수직 경사이며, 다음 공식에 따라 구해진다:
Figure pct00057
Figure pct00058
(5)
식 (2)에 따라 정제된 모션 벡터를 얻은 후, 현재 블록의 각 샘플에 대한 최종 예측자는 다음 수식에 따라 결정된다:
Figure pct00059
(6)
Figure pct00060
Figure pct00061
Figure pct00062
이고
Figure pct00063
Figure pct00064
는 반올림 함수(rounding off)이다.
4x4 서브블록의 정제된 모션 벡터는 순방향 및 역방향 예측자
Figure pct00065
, 및 4x4 서브블록이 위치하는 6x6 영역의 순방향 및 역방향 수평 및 수직 경사
Figure pct00066
Figure pct00067
를 사용하여 계산되어야 하고, 6x6 영역의 경사는 8x8 영역의 예측자를 사용하여 계산된다. 따라서 보간 필터를 사용하여 순방향 및 역방향 예측자를 구할 때(W+4)*(H+4) 크기의 예측 샘플 블록을 얻기 위해 각각 두 행과 두 열을 중심으로 확장을 수행해야 하여(W+2)*(H+2)의 경사를 계산하며, 여기서 W는 현재 CU의 폭이고 H는 현재 CU의 높이이다.
BIO의 복잡성을 줄이기 위해 종래 기술에서는 CU의 경계에서 특별한 처리가 수행된다.
먼저, 8 탭 필터를 사용하여 W*H 영역의 예측자를 구하고, 1 행 1 열만 확장한다. 확장 영역의 예측자는 (W+2)*(H+2) 영역의 예측 샘플 값을 얻기 위해 쌍 선형 필터(bilinear filter)를 사용하여 구한다.
그런 다음, (W+2)*(H+2) 영역의 예측 샘플 값과 식 (5)에 기초하여 W*H 영역의 경사를 계산할 수 있다.
마지막으로 패딩 방법에 따라(W+2)*(H+2) 영역의 경사를 얻기 위해 주변의 W*H 영역의 경사에 대해 확장을 수행하고, (W+2)*(H+2) 영역의 예측자를 획득하기 위해 주변의 W*H 영역의 예측자에 대해 확장을 수행한다. 패딩은 도 9에 도시되어 있으며, 즉 확장된 영역에 에지의 샘플 값이 할당된다.
BIO의 구체적인 구현 프로세스는 다음과 같다:
단계 1: 현재 CU의 동작 정보를 확인한다.
현재 CU의 모션 정보는 병합 모드, AMVP 모드(배경 설명 참조) 또는 다른 모드를 이용하여 결정될 수 있으며, 이것은 여기에 제한되지 않는다.
모션 정보를 결정하는 다른 방법도 본 출원에 적용될 수 있음에 유의해야 한다. 자세한 내용은 여기에서 설명하지 않는다.
단계 2: 현재 CU가 BIO의 사용 조건을 충족하는지 확인한다.
현재 CU에 대해 양방향 예측이 수행되고 순방향 참조 프레임 번호 POC_L0, 역방향 참조 프레임 번호 POC_L1 및 현재 프레임 번호 POC_Cur 간의 관계가 다음 공식을 충족하면 현재 CU는 BIO의 사용 조건을 충족한다.
(POC_L0 - POC_Cur) *(POC_L1 - POC_Cur) < 0
또한, BIO 사용 여부는 현재 CU의 크기가 미리 설정된 임계 값보다 큰지를 판단하여 판단할 수도 있다. 예를 들어, BIO는 현재 CU의 높이 W가 8 이상이고 현재 CU의 폭 H가 8 이상인 경우에만 사용할 수 있다.
BIO의 다른 사용 조건도 본 출원에 적용될 수 있다. 자세한 내용은 여기에서 설명하지 않는다.
현재 CU가 BIO의 사용 조건을 만족하면 단계 3을 수행하고, 그렇지 않으면 다른 방식으로 모션 보상을 수행한다.
단계 3: 현재 CU의 순방향 및 역방향 예측자를 계산한다.
모션 보상은 모션 정보를 사용하여 수행되어, 순방향 및 역방향 예측자
Figure pct00068
를 획득하며, 여기서 i=-1..cuW 및 j=-1..cuH이다((cuW+2)*(cuH+2)의 예측 행렬이 얻어진다).
Figure pct00069
, i=0..cuW-1, 및 j=0..cuH-1이고, 이것은 8 탭 보간 필터를 사용하여 보간을 수행하여 획득되고, 쌍 선형 보간 필터를 사용하여 보간을 수행하여 다른 위치의 예측자(1 행 1 열 확장이 수행된다)를 구한다.
확장 영역의 예측자는 다른 방법, 예를 들어 8 탭 보간 필터를 사용하거나 정수 샘플 위치에서 참조 샘플을 직접 사용하여 얻을 수도 있다. 이것은 여기에 제한되지 않는다.
순방향 예측자와 역방향 예측자 사이의 SAD를 계산하여 SAD가 임계 값 TH_CU보다 작은지 판단하고, SAD가 임계 값 TH_CU보다 작으면 BIO를 수행하지 않거나 그렇지 않으면 BIO를 수행한다는 것에 유의해야 한다. 또 다른 결정 방법이 본 출원에 적용될 수 있으며, 자세한 내용은 여기에서 설명하지 않는다.
SAD를 계산하는 공식은 다음과 같다:
Figure pct00070
(7)
임계 값TH_CU는 (1<<(BD - 8+shift))*cuW*cuH로 설정되고 시프트(shift)는 Max(2, 14-BD)로 설정될 수 있다.
단계 4: 현재 CU의 순방향 및 역방향 예측자를 기반으로 수평 및 수직 경사를 계산한다.
수평 및 수직 경사
Figure pct00071
Figure pct00072
는 식 (4)에 따라 순방향 및 역방향 예측자에 기초하여 계산되고, 여기서 i=0..cuW-1 및 j=0..cuH-1이다(cuW*cuH의 예측 행렬이 얻어진다).
단계 5: 현재 CU의 순방향 및 역방향 예측자와 수평 및 수직 경사에 패딩을 수행한다.
패딩은 도 9의 방법을 사용하여 수행되어,
Figure pct00073
,
Figure pct00074
, 및
Figure pct00075
를 획득하고, 여기서 i=-1..cuW 및 j=-1..cuH이다((cuW+2)*(cuH+2)의 예측 행렬, 수평 경사 행렬 및 수직 경사 행렬이 획득된다).
단계 6: 각 4x4 서브블록의 정제된 모션 벡터를 도출하고 가중치를 부여한다.
각 4x4 서브블록에 대해, vx 및 vy는 식 (2)에 따라 구해진다. 마지막으로, 각 4x4 서브블록의 예측자를 얻기 위해 식 (6)에 따라 가중치를 부여한다.
각 4x4 서브블록의 순방향 예측자와 역방향 예측자 사이의 SAD는 SAD가 임계 값 TH_SCU보다 작은지를 결정하기 위해 계산될 수 있다는 점에 유의해야 한다. SAD가 임계 값 TH_SCU보다 작으면 가중 평균을 직접 수행하거나 그렇지 않으면 식 (2)에 따라 vx 및 vy를 구한 다음 식 (6)에 따라 가중치를 수행한다. 또 다른 결정 방법이 본 출원에 적용될 수 있으며, 자세한 내용은 여기에서 설명하지 않는다. TU_SCU는 1<<(BD?3+shift)로 설정될 수 있다.
가상 파이프라인 데이터 단위(VPDU, 가상 파이프라인 데이터 단위)는 비 중첩 MxM 루마/NxN 크로마 처리 단위이다. 하드웨어 디코더의 경우 연속적인 VPDU는 서로 다른 파이프라인 수준에서 동시에 처리된다. 서로 다른 VPDU는 서로 다른 파이프라인 수준에서 동시에 처리된다.
VPDU 분할 원리는 다음과 같다.
(1) VPDU가 하나 이상의 CU를 포함하면 CU는 VPDU에 완전히 포함된다.
(2) CU가 하나 이상의 VPDU를 포함하는 경우, VPDU는 CU에 완전히 포함된다.
종래 기술에서 VPDU의 크기는 64x64이다. 도 10에 도시된 바와 같이, 점선은 VPDU의 경계를 나타내고 실선은 CU의 경계를 나타낸다. 도 11은 잘못된 CU 분할을 도시한다.
CU가 복수의 VPDU를 포함하는 경우, 하드웨어 디코더는 처리를 위해 VPDU를 연속적인 VPDU로 분할한다. 예를 들어 CU의 크기가 128x128이고 VPDU의 크기가 64x64인 경우 4 개의 연속 VPDU가 처리된다.
본 출원에서 해결해야 할 기술적 문제는 BIO를 통해 CU에 대해 모션 보상을 수행할 때 CU의 경계 샘플을 처리하는 방식과 CU의 내부 샘플을 처리하는 방식이 다르다는 점이다. CU에 VPDU 분할 경계가 있는 경우 BIO 예측 중에 VPDU 처리 결과가 CU 처리 결과와 일치하는지 확인하기 위해 경계는 CU의 내부 샘플 방식으로 처리되어야 하며, 결과적으로 구현 복잡성이 증가한다.
도 12를 참조하면, 본 출원의 실시예는 인터 예측 방법을 제공한다. 이 방법은 도 2에 도시된 인코더에서 인터 예측 유닛(244) 및 도 3에 도시된 디코더의 인터 예측 유닛(344)에 적용될 수 있다. 방법은 양방향 인터 예측 방법일 수 있으며, 다음 단계를 포함한다.
단계 101: 미리 설정된 픽처 분할 폭에서 더 작은 폭을 선택하고 처리될 픽처 블록의 폭 cuW를 선택하며, 여기서 더 작은 폭은 blkW로 표시되고 제1 픽처 블록의 폭으로 사용되며, 미리 설정된 픽처 분할 높이 Hight 및 처리될 픽처 블록의 높이 cuH 중 더 작은 높이를 선택하고, 여기서 더 작은 높이는 blkH로 표시되고 제1 픽처 블록의 높이로 사용된다.
본 실시예의 방법이 인코더에 적용될 때, 화상을 인코딩할 때, 인코더는 화상을 처리될 픽처 블록으로 분할한다. 이 단계에서는 처리될 픽처 블록을 획득한 다음 더 작은 폭 blkW=min(Width, cuW)을 선택하고 더 작은 폭 blkW를 제1 픽처 블록의 폭으로 사용하고 더 작은 높이 blkH=min(Hight, cuH)이 선택되고 더 작은 높이 blkH가 제1 픽처 블록의 높이로 사용된다.
본 실시예의 방법이 디코더에 적용될 때, 디코더는 인코더로부터 비디오 비트스트림을 수신하고, 비디오 비트스트림은 처리될 픽처 블록을 포함한다. 이 단계에서는 비디오 비트스트림에서 처리될 픽처 블록을 추출한 다음 더 작은 폭 blkW=min(Width, cuW)을 선택하고 더 작은 폭 blkW를 제1 픽처 블록의 폭으로 사용하고, 더 작은 높이 blkH=min(Hight, cuH)이 선택되고 더 작은 높이 blkH가 제1 픽처 블록의 높이로 사용된다.
미리 설정된 화면 분할 폭 Width 및 미리 설정된 화면 분할 높이 Height는 각각 VPDU의 폭 및 높이와 동일할 수 있다. 또는 미리 설정된 영상 분할 폭 Width는 64, 32 또는 16과 같은 값이고, 미리 설정된 영상 분할 높이 Hight는 64, 32 또는 16과 같은 값이다. 예를 들어, Width=64 및 Hight=64, 또는 Width=32 및 Hight=32, 또는 Width=16 및 Hight=16, 또는 Width=64 및 Hight=32, 또는 Width=32 및 Hight=64, 또는 Width=64 및 Hight=16, 또는 Width=16 및 Hight=64, 또는 Width=32 및 Hight=16, 또는 Width=16 및 Hight=32이다.
단계 102: 제1 픽처 블록의 폭 blkW 및 높이 blkH에 기초하여 처리될 픽처 블록에서 복수의 제1 픽처 블록을 결정한다.
실현 가능한 구현에서, 처리될 픽처 블록의 폭 및 높이는 각각 제1 픽처 블록의 폭 및 높이, 즉, 대상 블록의 폭 및 높이와 동일하다는 것을 이해해야 한다. 처리될 픽처 블록은 하나의 제1 픽처 블록만을 포함한다. 제1 픽처 블록의 예측자를 얻는 것은 처리될 픽처 블록의 예측자를 얻는 것이다.
임의의 제1 픽처 블록의 예측자는 다음 단계 103 내지 단계 107의 동작에 따라 획득된다.
단계 103: 처리될 픽처 블록의 모션 정보에 기초하여 제1 픽처 블록의 제1 예측 블록을 획득하고, 여기서 제1 예측 블록의 폭은 제1 픽처 블록의 폭보다 더 크고, 제1 예측 블록의 높이는 제1 픽처 블록의 높이보다 크다.
처리될 픽처 블록의 모션 정보는 제1 픽처 블록의 모션 정보를 포함하고, 제1 픽처 블록의 모션 정보는 참조 픽처 및 모션 벡터와 같은 정보를 포함한다. 이 실시예에서, 광 흐름 기반 양방향 예측 방식 (즉, 전술한 BIO 또는 BDOF 관련 기술)이 인터 예측에 사용된다. 따라서, 제1 픽처 블록의 모션 정보는 순방향 참조 픽처, 역방향 참조 픽처, 순방향 모션 벡터 및 역방향 모션 벡터와 같은 정보를 포함한다.
본 실시예의 방법이 인코더에 적용될 때, 인코더는 병합 모드, AMVP 모드 또는 다른 모드에서 처리될 픽처 블록의 모션 정보를 결정할 수 있고, 처리될 픽처 블록의 모션 정보는 처리될 픽처 블록의 각 제1 픽처 블록의 모션 정보를 포함한다. 이 단계에서는 인코더에 의해 결정된 처리될 픽처 블록의 모션 정보를 획득하고, 처리될 픽처 블록의 모션 정보로부터 제1 픽처 블록의 모션 정보를 획득한다.
본 실시예의 방법이 디코더에 적용될 때, 디코더에 의해 인코더로부터 수신된 비디오 비트스트림은 처리될 픽처 블록의 모션 정보 및 처리될 픽처의 모션 정보를 포함한다. 블록은 처리될 픽처 블록의 각 제1 픽처 블록의 모션 정보를 포함한다. 이 단계에서는 비디오 비트스트림에서 처리될 픽처 블록의 모션 정보를 추출하고, 처리될 픽처 블록의 모션 정보로부터 제1 픽처 블록의 모션 정보를 얻는다.
제1 픽처 블록의 제1 예측 블록은 제1 순방향 예측 블록 및 제1 역방향 예측 블록을 포함한다. 이 단계에서, 제1 픽처 블록의 제1 순방향 예측 블록 및 제1 역방향 예측 블록은 다음의 단계 (1) 내지 (8)을 통해 획득될 수 있다. 단계 (1) 내지 (8)은 다음과 같을 수 있다.
(1): 처리될 픽처 블록의 제1 픽처 블록의 제1 위치 및 제1 픽처 블록의 모션 정보에 기초하여 순방향 참조 픽처의 제1 순방향 영역을 결정하며, 여기서 폭은 제1 순방향 영역은 blkW+2이고, 제1 순방향 영역의 높이는 blkH+2이다.
예를 들어, 도 13을 참조하면, 제1 픽처 블록 B의 모션 정보는 순방향 참조 픽처(Ref0), 역방향 참조 픽처(Ref1), 순방향 모션 벡터(MV0) 및 역방향 모션 벡터(MV1)를 포함한다. 제2 순방향 영역(B11)은 제1 픽처 블록(B)의 제1 위치를 기준으로 순방향 참조 픽처(Ref0)에서 결정되며, 여기서 제2 순방향 영역(B11)의 폭은 blkW이고, 제2 순방향 영역(B11)의 높이는 blkH이다. 순방향 모션 벡터(MV0)와 제2 순방향 영역(B11)의 위치를 기반으로 제3 순방향 영역(B12)이 결정되는데, 여기서 제3 순방향 영역(B12)의 폭은 blkW이고, 제3 순방향 영역(B12)의 높이는 blkH이다. 제3 순방향 영역(B12)을 포함하는 제1 순방향 영역(A1)이 결정되며, 여기서 제1 순방향 영역(A1)의 폭은 blkW+2이고, 제1 순방향 영역(A1)의 높이는 blkH+2이고, 제3 순방향 영역(B12)의 중심은 제1 순방향 영역(A1)의 중심과 일치한다.
(2): 제1 순방향 영역의 모서리 위치가 순방향 참조 픽처의 순방향 참조 픽처의 샘플 위치와 일치하는지를 판정하고; 그리고 제1 순방향 영역의 모서리 위치가 순방향 참조 픽처의 샘플 위치와 일치하면, 순방향 참조 픽처로부터 제1 순방향 영역의 픽처 블록을 획득하여 제1 픽처 블록의 제1 순방향 예측 블록으로서 기능하거나; 또는 제1 순방향 영역의 모서리 위치가 순방향 참조 픽처의 샘플 위치와 일치하지 않으면 단계 (3)을 수행한다.
예를 들어, 도 13을 참조하면, 제1 순방향 영역(A1)의 좌측 상단 모서리가 예로서 사용된다. 순방향 참조 픽처(Ref0)에서 제1 순방향 영역(A1)의 좌측 상단 모서리의 모서리 위치가 (15, 16)이라고 가정하면, 좌측 상단 모서리의 모서리 위치는 순방향 참조 픽처(Ref0)의 샘플 위치와 일치하며, 순방향 참조 픽처(Ref0)의 샘플 위치는 (15, 16)이다. 또 다른 예로, 순방향 참조 픽처(Ref0)에서 제1 순방향 영역(A1)의 좌측 상단 모서리의 모서리 위치가 (15.3, 16.2)라고 가정하면, 좌측 상단 모서리의 모서리 위치는 샘플 위치와 일치하지 않는다. 순방향 참조 픽처(Ref0), 즉 순방향 참조 픽처(Ref0)의 위치 (15.3, 16.2)에 샘플이 없다.
(3): 순방향 참조 픽처에서 제1 순방향 영역의 모서리 위치에 가장 가까운 샘플을 결정하고, 샘플을 모서리로 사용하여 제4 순방향 영역을 결정하고, 여기서 제4 순방향 영역의 폭은 blkW+2이고, 제4 순방향 영역의 높이는 blkH+2이다.
제1 순방향 영역의 임의의 모서리 위치에 대해, 제1 순방향 영역의 좌측 상단 모서리 위치가 예로 사용되는 것으로 가정한다. 순방향 참조 픽처에서 좌측 상단 모서리 위치에 가장 가까운 샘플이 결정되고, 샘플을 좌측 상단 모서리로 사용하여 제4 순방향 영역이 결정된다. 제4 순방향 영역의 폭은 blkW+2이고, 제4 순방향 영역의 높이는 blkH+2이다.
예를 들어, 도 13을 참조하면, 제1 순방향 영역(A1)의 좌측 상단 모서리 위치는 (15.3, 16.2)이고, 모서리 위치 (15.3, 16.2)에서 가장 가까운 샘플의 위치는 순방향 참조 픽처(Ref0)에서 (15, 16)으로 결정된다. 제4 순방향 영역(A2)은 위치 (15, 16)의 샘플을 좌측 상단 모서리로 사용하여 결정된다. 제4 순방향 영역(A2)의 폭은 blkW+2이고, 제4 순방향 영역(A2)의 높이는 blkH+2이다.
(4): 제4 순방향 영역을 포함하는 제5 순방향 영역을 결정하고, 여기서 제4 순방향 영역의 중심이 제5 순방향 영역의 중심과 일치하고, 제5 순방향 영역의 폭은 blkW+n+1이고, 제5 순방향 영역의 높이는 blkH+n+1이고; 순방향 참조 픽처로부터 제5 순방향 영역의 픽처 블록을 획득하고, 보간 필터를 사용하여 픽처 블록에 대해 보간 필터링을 수행하여, 제1 픽처 블록의 제1 순방향 예측 블록을 획득하고, 여기서 제1 순방향의 폭 예측 블록은 blkW+2이고, 제1 순방향 예측 블록의 높이는 blkH+2이고, n은 보간 필터의 탭 수이다.
예를 들어, 8 탭 보간 필터가 예로 사용된다. 도 13을 참조하면, 제4 순방향 영역(A2)을 포함하는 제5 순방향 영역(A3)이 결정된다. 제4 순방향 영역(A2)의 중심은 제5 순방향 영역(A3)의 중심과 일치하고, 제5 순방향 영역(A3)의 폭은 blkW+9이고, 제5 순방향 영역(A3)의 높이는 blkH+9이다. 순방향 참조 픽처(Ref0)로부터 제5 순방향 영역(A3)의 픽처 블록을 획득하고, 보간 필터를 사용하여 픽처 블록에 대해 보간 필터링을 수행하여 제1 픽처 블록 B의 제1 순방향 예측 블록을 획득한다. 제1 순방향 예측 블록은 blkW+2이고, 제1 순방향 예측 블록의 높이는 blkH+2이다.
(5): 제1 위치와 제1 픽처 블록의 모션 정보를 기반으로 하여 역방향 참조 픽처에서 제1 역방향 영역을 결정하고, 여기서 제1 역방향 영역의 폭은 blkW+2이고 제1 역방향 영역은 blkH+2이다.
예를 들어, 도 13을 참조하면, 제1 픽처 블록(B)의 제1 위치를 기준으로 역방향 참조 픽처(Ref1)에서 제2 역방향 영역(C11)이 결정되며, 여기서 제2 역방향 영역(C11)의 폭은 blkW이고, 제2 역방향 영역(C11)의 높이는 blkH이다. 제3 역방향 영역(C12)은 역방향 모션 벡터(MV1)와 제2 역방향 영역(C11)의 위치에 기초하여 결정되며, 여기서 제3 역방향 영역(C12)의 폭은 blkW이고, 제3 역방향 영역(C12)의 높이는 blkH이다. 제3 역방향 영역(C12)을 포함하는 제1 역방향 영역(D1)이 결정되며, 여기서 제1 역방향 영역(D1)의 폭은 blkW+2이고, 제1 역방향 영역(D1)의 높이는 blkH+2이고, 제3 역방향 영역(C12)의 중심은 제1 역방향 영역(D1)의 중심과 일치할 수 있다.
(6): 제1 역방향 영역의 모서리 위치가 역방향 참조 화상의 역방향 참조 화상의 샘플 위치와 일치하는지를 결정하고; 그리고 상기 제1 역방향 영역의 모서리 위치가 역방향 참조 픽처의 샘플 위치와 일치하면, 역방향 참조 픽처로부터 제1 역방향 영역의 픽처 블록을 획득하여 제1 픽처 블록의 제1 역방향 예측 블록으로서 기능하거나; 또는 제1 역방향 영역의 모서리 위치가 역방향 참조 픽처의 샘플 위치와 일치하지 않으면 단계 (7)을 수행한다.
예를 들어, 도 13을 참조하면, 제1 역방향 영역(A1)의 좌측 상단 모서리가 예로 사용된다. 역방향 참조 픽처(Ref0)에서 제1 역방향 영역(D1)의 좌측 상단 모서리의 모서리 위치가 (5, 6)이라고 가정하면, 좌측 상단 모서리의 모서리 위치는 역방향 참조 픽처(Ref0)의 샘플 위치와 일치하고, 역방향 참조 픽처(Ref0)의 샘플 위치는 (5, 6)이다. 다른 예로, 역방향 참조 픽처(Ref0)에서 제1 역방향 영역(D1)의 좌측 상단 모서리의 모서리 위치가 (5.3, 6.2)라고 가정하면, 좌측 상단 모서리의 모서리 위치는 샘플 위치와 일치하지 않으며, 역방향 참조 픽처(Ref0) 즉, 역방향 참조 픽처(Ref0)의 위치 (5.3, 6.2)에 샘플이 없다.
(7): 역방향 참조 픽처에서 제1 역방향 영역의 모서리 위치에 가장 가까운 샘플을 결정하고, 샘플을 모서리로 사용하여 제4 역방향 영역을 결정한다. 여기서 제4 역방향 영역의 폭은 blkW+2이고 제4 역방향 영역의 높이는 blkH+2이다.
제1 역방향 영역의 임의의 모서리 위치에 대해, 제1 역방향 영역의 좌측 상단 모서리 위치를 예로 사용하는 것으로 가정한다. 역방향 참조 픽처에서 좌측 상단 모서리 위치에 가장 가까운 샘플이 결정되고, 샘플을 좌측 상단 모서리로 사용하여 제4 역방향 영역이 결정된다. 제4 역방향 영역의 폭은 blkW+2이고, 제4 역방향 영역의 높이는 blkH+2이다.
예를 들어, 도 13을 참조하면, 제1 역방향 영역(D1)의 좌측 상단 모서리의 모서리 위치는 (5.3, 6.2)이고, 모서리 위치 (5.3, 6.2)에 가장 가까운 샘플의 위치는 역방향 참조 픽처(Ref1)에서 (5, 6)으로 결정된다. 제4 역방향 영역(D2)은 (5, 6) 위치의 샘플을 좌측 상단 모서리로 사용하여 결정된다. 제4 역방향 영역(D2)의 폭은 blkW+2이고, 제4 역방향 영역(D2)의 높이는 blkH+2이다.
(8): 제4 역방향 영역의 중심이 제5 역방향 영역의 중심과 일치하고, 제5 역방향 영역의 폭이 blkW+n+1인 제4 역방향 영역을 포함하는 제5 역방향 영역을 결정하고, 제5 역방향 영역의 높이는 blkH+n+1이고; 역방향 참조 픽처로부터 제5 역방향 영역의 픽처 블록을 획득하고, 보간 필터를 사용하여 픽처 블록에 대해 보간 필터링을 수행하여, 제1 픽처 블록의 제1 역방향 예측 블록을 획득하며, 여기서 제1 역방향의 폭 예측 블록은 blkW+2이고, 제1 역방향 예측 블록의 높이는 blkH+2이다.
예를 들어, 8 탭 보간 필터가 예로 사용된다. 도 13을 참조하면, 제4 역방향 영역(D2)을 포함하는 제5 역방향 영역(D3)이 결정된다. 제4 역방향 영역(D2)의 중심은 제5 역방향 영역(D3)의 중심과 일치하고, 제5 역방향 영역(D3)의 폭은 blkW+9이고, 제5 역방향 영역(D3)의 높이는 blkH+9이다. 제5 역방향 영역(D3)의 픽처 블록은 역방향 참조 픽처(Ref1)로부터 획득되고, 보간 필터를 이용하여 픽처 블록에 대해 보간 필터링을 수행하여 제1 픽처 블록 B의 제1 역방향 예측 블록을 획득한다. 제1 역방향 예측 블록은 blkW+2이고, 제1 역방향 예측 블록의 높이는 blkH+2이다.
보간 필터의 탭 개수 n은 6, 8 또는 10과 같은 값일 수 있다.
이 단계가 수행되면, 처리될 픽처 블록의 모션 정보를 기반으로 BIO를 통한 인터 예측이 수행되는지가 판정되고, BIO를 통한 인터 예측 수행이 결정될 때, 이 단계가 수행된다. 결정 프로세스는 다음과 같다.
처리될 픽처 블록의 프레임 번호, 순방향 참조 픽처의 프레임 번호 및 역방향 참조 픽처의 프레임 번호가 미리 설정된 BIO 사용 조건을 만족하는지를 판단한다. 미리 설정된 BIO 사용 조건이 충족되면 BIO를 통해 인터 예측이 수행되는 것으로 판단하고 이 단계를 수행한다. 미리 설정된 BIO 사용 조건이 충족되지 않으면 BIO 이외의 방식으로 인터 예측을 수행한 것으로 판단한다. 다른 방식의 구현 프로세스는 여기에서 자세히 설명하지 않는다.
미리 설정된 BIO 사용 조건은 다음의 제1 공식과 같은 조건일 수 있다.
제1 공식은 (POC_L0-POC_Cur)*(POC_L1-POC_Cur)<0이다.
제1 공식에서, POC_L0은 순방향 참조 픽처의 프레임 번호이고, POC_Cur는 처리될 픽처 블록의 프레임 번호이고, POC_L1은 역방향 참조 픽처의 프레임 번호이고, *는 곱셈 연산이다.
이 단계에서, 제1 픽처 블록의 제1 순방향 예측 블록 및 제1 역방향 예측 블록에 기초하여 BIO를 통한 인터 예측 수행 여부 및 인터 예측이 수행된 것으로 판단되는 경우를 더 결정할 수 있다. BIO를 통해 10단계 4가 수행된다. 결정 프로세스는 다음과 같다:
SAD는 다음의 제2 공식에 따라 제1 픽처 블록의 제1 순방향 예측 블록 및 제1 역방향 예측 블록에 기초하여 계산된다. SAD가 미리 설정된 임계 값 TH_CU를 초과하면 BIO를 통해 인터 예측이 수행된 것으로 판단하고 단계 104를 수행한다. SAD가 미리 설정된 임계 값 TH_CU를 초과하지 않으면 BIO 이외의 방식으로 인터 예측이 수행되는 것으로 판단한다. 다른 방식의 구현 프로세스는 여기에서 자세히 설명하지 않는다.
제2 식은
Figure pct00076
이다.
제2 공식에서,
Figure pct00077
는 제1 역방향 예측 블록의 i 번째 행과 j 번째 열에 있는 샘플의 예측자이고,
Figure pct00078
는 제1 순방향 예측 블록의 i 번째 행과 j 번째 열에 있는 샘플의 예측자이다.
TH_CU=(1<<(BD-8+shift))*blkW*blkH, shift=Max(2, 14-BD), 여기서 BD는 현재 샘플 비트 폭을 나타내고, abs()는 절대 값을 획득하는 연산을 나타내고, <<는 왼쪽 시프트 연산을 나타낸다.
단계 104: 제1 픽처 블록의 제1 예측 블록에 대해 경사 연산을 수행하여 제1 픽처 블록의 제1 경사 행렬을 획득하고, 여기서 제1 경사 행렬의 폭은 blkW이고 제1 경사 행렬의 높이는 blkH이다.
제1 경사 행렬은 제1 순방향 수평 경사 행렬, 제1 순방향 수직 경사 행렬, 제1 역방향 수평 경사 행렬, 및 제1 역방향 수직 경사 행렬을 포함한다.
이 단계에서는 다음 제3 공식에 따라 제1 예측 블록에 포함된 각 샘플의 예측자를 기반으로 수평 경사와 수직 경사를 계산한다. 계산된 각 수평 경사는 하나의 행 번호와 하나의 열 번호에 대응하고, 계산된 각 수직 경사는 하나의 행 번호와 하나의 열 번호에 대응한다. 제1 픽처 블록의 제1 수평 경사 행렬은 계산된 수평 경사에 대응하는 행 번호와 열 번호에 기초하여 계산된 수평 경사에 의해 형성되고, 제1 픽처 블록의 제1 수직 경사 행렬은 계산된 수직 경사에 대응하는 행 번호와 열 번호를 기반으로 계산된 수직 경사에 의해 형성된다.
경사 행렬에서 행 또는 열의 경사를 계산할 때 행 번호와 열 번호를 기반으로 제1 예측 블록에서 두 샘플의 예측자를 구하고 수평 경사 또는 수직 경사를 다음 제3 공식에 따라 두 샘플의 예측자를 기반으로 계산한다. 수평 경사는 행 번호와 열 번호에 개별적으로 대응하거나 수직 경사는 행 번호와 열 번호에 개별적으로 대응한다.
제1 예측 블록은 제1 순방향 예측 블록 및 제1 역방향 예측 블록을 포함한다. 다음의 제3 공식에 따라 제1 순방향 예측 블록을 기반으로 순방향 수평 경사 및 순방향 수직 경사가 계산된다. 계산된 각 순방향 수평 경사는 하나의 행 번호와 하나의 열 번호에 대응하고 계산된 각 순방향 수직 경사는 하나의 행 번호와 하나의 열 번호에 대응한다. 제1 픽처 블록의 제1 순방향 수평 경사 행렬은 계산된 순방향 수평 경사도에 대응하는 행 번호 및 열 번호에 기초하여 계산된 순방향 수평 경사도에 의해 형성되고, 제1 픽처 블록의 제1 순방향 수직 경사 행렬이 계산된 순방향 수직 경사에 대응하는 행 번호 및 열 번호를 기반으로 계산된 순방향 수직 경사에 의해 형성된다.
다음의 제3 공식에 따라 제1 역방향 예측 블록에 기초하여 역방향 수평 경사 및 역방향 수직 경사를 계산한다. 계산된 각 역방향 수평 경사는 하나의 행 번호와 하나의 열 번호에 대응하고 계산된 각 역방향 수직 경사는 하나의 행 번호와 하나의 열 번호에 대응한다. 계산된 역방향 수평 경사도에 대응하는 행 번호와 열 번호에 기초하여 계산된 역방향 수평 경사도에 의해 제1 픽처 블록의 제1 역방향 수평 경사 행렬이 형성되고, 제1 픽처 블록의 제1 역방향 수직 경사 행렬이 계산된 역방향 수직 경사에 대응하는 행 번호 및 열 번호를 기반으로 계산된 역방향 수직 경사에 의해 형성된다.
제3 식은
Figure pct00079
이다.
제3 공식에서, k의 값은 0 또는 1일 수 있으며, 0은 "순방향"을 나타내고 1은 "역방향"을 나타내고;
Figure pct00080
는 i 번째 행과 j 번째 열의 수평 경사이고, 여기서 k=0이면,
Figure pct00081
는 i 번째 행과 j 번째 열의 순방향 수평 경사이고, k=1이면,
Figure pct00082
는 i 번째 행과 j 번째 열의 역방향 수평 경사이고; >>는 오른쪽 시프트 연산이다.
Figure pct00083
Figure pct00084
는 제1 예측 블록의 (i+1) 번째 행과 j 번째 열에 있는 샘플의 예측자이며, 여기서 k=0일 때,
Figure pct00085
는 (i+1) 번째 행에 있는 샘플의 예측자이고 제1 순방향 예측 블록의 j 번째 열이고, k=1일 때,
Figure pct00086
는 제1 역방향 예측 블록의 (i+1) 번째 행 및 j 번째 열에 있는 샘플의 예측자이고; 그리고
Figure pct00087
는 제1 예측 블록의 (i-1) 번째 행과 j 번째 열에 있는 샘플의 예측자이고, 여기서 k=0일 때,
Figure pct00088
는 제1 순방향 예측 블록의 (i-1) 번째 행과 j 번째 열에 있는 샘플의 예측자이고, k=1일 때,
Figure pct00089
는 제1 역방향 예측 블록의 (i-1) 번째 행과 j 번째 열에 있는 샘플의 예측자이다.
Figure pct00090
는 제1 예측 블록의 i 번째 행과 (j+1) 번째 열에 있는 샘플의 예측자이고, 여기서 k=0일 때,
Figure pct00091
는 제1 순방향 예측 블록의 i 번째 행 및 (j+1) 번째 열에 있는 샘플의 예측자이고, k=1인 경우,
Figure pct00092
는 제1 역방향 예측 블록의 i 번째 행 및 (j+1) 번째 열의 샘플의 예측자이고; 그리고
Figure pct00093
는 제1 예측 블록의 i 번째 행과 (j-1) 번째 열에 있는 샘플의 예측자이고, 여기서 k=0일 때,
Figure pct00094
는 제1 순방향 예측 블록의 i 번째 행 및 (j-1) 번째 열에 있는 샘플의 예측자이고, k=1일 때,
Figure pct00095
는 제1 역방향 예측 블록의 i 번째 행과 (j-1) 번째 열의 샘플의 예측자 값이다.
폭 blkW+2 및 높이 blkH+2를 갖는 제1 예측 블록에 대해, 폭 blkW 및 높이 blkH를 갖는 제1 경사 행렬은 전술한 제3 공식에 따라 제1 예측 블록에 기초하여 획득될 수 있음에 유의해야 한다. 제1 경사 행렬은 폭 blkW 및 높이 blkH를 갖는 제1 수평 경사 행렬 및 폭 blkW 및 높이 blkH를 갖는 제1 수직 경사 행렬을 포함한다. 즉, 폭이 blkW+2이고 높이가 blkH+2인 제1 순방향 예측 블록의 경우, 폭이 blkW이고 높이가 blkH인 제1 순방향 수평 경사 행렬 및 폭이 blkW이고 높이가 blkH인 제1 순방향 수직 경사 행렬은 전술한 제3 공식에 따라 제1 순방향 예측 블록을 기반으로 획득될 수 있다. 폭이 blkW+2이고 높이가 blkH+2인 제1 역방향 예측 블록의 경우, 폭이 blkW이고 높이가 blkH인 제1 역방향 수평 경사 행렬과 폭이 blkW이고 높이가 blkH인 제1 역방향 수직 경사 행렬은 전술한 제3 공식에 따라 제1 역방향 예측 블록에 기초하여 획득될 수 있다.
단계 105: 제1 경사 행렬의 행렬 에지 위치에서의 경사에 기초해서 제1 경사 행렬의 폭 및 높이에 대해 제1 확장을 수행하여 제1 확장 후에 획득된 제1 경사 행렬의 폭과 높이가 각각 제1 픽처 블록의 폭과 높이보다 큰 두 개의 샘플이 되도록 한다.
제1 확장 이후에 획득된 제1 경사 행렬의 폭 및 높이는 각각 제1 예측 블록의 폭 및 높이와 동일하다. 제1 예측 블록의 폭은 blkW+2이고, 제1 예측 블록의 높이는 blkH+2이다. 제1 경사 행렬의 폭도 blkW+2이고 제1 경사 행렬의 높이도 blkH+2이다.
이 단계에서, 제1 확장은 제1 순방향 수평 경사 행렬의 폭과 높이, 제1 순방향 수직 경사 행렬의 폭과 높이, 제1 역방향 수평 경사의 폭과 높이 및 제1 역방향 수직 경사 행렬의 폭과 높이에 대해 개별적으로 수행되고, 따라서 제1 확장 이후에 획득된 제1 순방향 수평 경사 행렬, 제1 순방향 수직 경사 행렬, 제1 역방향 수평 경사 행렬 및 제1 역방향 수직 경사 행렬의 폭은 모두 blkW+2이고, 제1 확장 이후에 획득된 제1 순방향 수평 경사 행렬, 제1 순방향 수직 경사 행렬, 제1 역방향 수평 경사 행렬 및 제1 역방향 수직 경사 행렬의 높이는 모두 blkH+2이다.
이 단계에서, 제1 경사 행렬은 4 개의 에지를 포함한다. 제1 경사 행렬의 왼쪽 행렬 에지에 있는 경사의 경우 왼쪽 행렬 에지의 경사에 기초해서 제1 경사 행렬의 왼쪽에서 확장을 수행하여 경사의 한 열을 획득한다. 제1 경사 행렬의 오른쪽 행렬 에지에 있는 경사의 경우 오른쪽 행렬 에지 위치의 경사에 기초해서 제1 경사 행렬의 오른쪽에서 확장을 수행하여 경사의 한 열을 획득한다. 제1 경사 행렬의 상단 행렬 에지에 있는 경사의 경우 상단 행렬 에지의 경사에 기초해서 제1 경사 행렬의 상단에서 확장을 수행하여 경사의 한 행을 획득한다. 제1 경사 행렬의 하단 행렬 에지에 있는 경사의 경우 하단 행렬 에지의 경사에 기초해서 제1 경사 행렬의 하단에서 확장을 수행하여 하나의 경사 행을 획득한다. 따라서, 제1 확장 이후에 획득된 제1 경사 행렬의 폭과 높이는 각각 제1 픽처 블록의 폭과 높이보다 큰 두 샘플이다.
단계 106: 제1 예측 블록 및 제1 경사 행렬에 기초하여 제1 픽처 블록의 각 기본 처리 단위의 모션 정보 정제 값을 계산한다.
기본 처리 단위의 폭은 M일 수 있고, 기본 처리 단위의 높이도 M일 수 있고, 즉, 기본 처리 단위는 M*M 개의 샘플을 포함하는 픽처 블록이다. M 값은 2, 3 또는 4와 같은 값일 수 있다.
기본 처리 단위의 모션 정보 정제 값은 수평 모션 정보 정제 값과 수직 모션 정보 정제 값을 포함한다.
이 단계는 1061 내지 1064로 구현될 수 있으며, 1061 내지 1064는 다음과 같을 수 있다.
1061: 제1 픽처 블록에 포함된 각각의 기본 처리 단위를 획득하기 위해 제1 픽처 블록을 분할하고, 여기서 각각의 기본 처리 단위는 M*M의 크기를 갖는 픽처 블록이다.
1062: 기본 처리 단위의 위치에 기초하여 제1 예측 블록에서 임의의 기본 처리 단위의 기본 예측 블록을 결정하며, 여기서 기본 예측 블록의 폭은 M+2이고, 기본 예측 블록의 높이는 M+2이다.
기본 처리 단위가 제1 픽처 블록의 1 내지 M 번째 행 및 1 내지 M 번째 열을 커버한다고 가정하면, 제1 예측 블록의 0 내지 (M+1) 번째 행 및 0 내지 (M+1) 번째 열을 커버하는 픽처 블록은 기본 처리 단위의 기본 예측 블록으로 사용된다.
기본 처리 단위의 기본 예측 블록은 순방향 기본 예측 블록과 역방향 기본 예측 블록을 포함한다. 구체적으로, 기본 처리 단위의 순방향 예측 블록은 제1 순방향 예측 블록의 0 내지 (M+1) 번째 행과 0 내지 (M+1) 번째 열을 커버하는 픽처 블록을 사용하고, 및 상기 제1 역방향 예측 블록의 0 내지(M+1) 번째 행과 0 내지(M+1) 번째 열을 커버하는 픽처 블록이 기본 처리 단위의 역방향 기본 예측 블록으로 사용된다.
1063: 기본 처리 단위의 위치를 기준으로 기본 처리 단위의 기본 처리 단위의 기본 경사 행렬을 결정하고, 여기서 기본 경사 행렬의 폭은 M+2이고 기본 경사 행렬의 높이는 M+2이다.
기본 처리 단위가 제1 픽처 블록의 1 내지 M 번째 행, 1 내지 M 번째 열을 커버한다고 가정하면, 제1 경사 행렬의 0 내지 (M+1) 번째 행, 0 내지 (M+1) 번째 열은 기본 처리 단위의 기본 경사 행렬로 사용된다.
기본 처리 단위의 기본 경사 행렬은 순방향 수평 기본 경사 행렬, 순방향 수직 기본 경사 행렬, 역방향 수평 기본 경사 행렬 및 역방향 수직 기본 경사 행렬을 포함한다. 구체적으로, 제1 순방향 수평 경사 행렬의 0 내지 (M+1) 번째 행과 0 내지 (M+1) 번째 열을 커버하는 행렬을 기본 처리 단위의 순방향 수평 기본 경사 행렬로 사용한다. 제1 순방향 수직 경사 행렬의 0 내지 (M+1) 번째 행과 0 내지 (M+1) 번째 열을 커버하는 행렬을 기본 처리 단위의 순방향 수직 기본 경사 행렬로 사용하고, 제1 역방향 수평 경사 행렬의 0 내지 (M+1) 번째 행과 0 내지 (M+1) 번째 열을 포함하는 행렬을 기본 처리 단위의 역방향 수평 기본 경사 행렬로 사용하고, 제1 역방향 수직 경사 행렬의 0 내지 (M+1) 번째 행과 0 내지 (M+1) 번째 열을 포함하는 행렬을 기본 처리 단위의 역방향 수직 기본 경사 행렬로 사용한다.
1064. 기본 예측 블록 및 기본 처리 단위의 기본 경사 행렬에 기초하여 기본 처리 단위의 모션 정보 정제 값을 계산한다.
1064에서, 기본 처리 단위의 수평 모션 정보 정제 값 및 수직 모션 정보 정제 값은 순방향 기본 예측 블록, 및 역방향 기본 예측 블록, 기본 처리 단위의 순방향 수평 기본 경사 행렬, 순방향 수직 기본 경사 행렬, 역방향 수평 기본 경사 행렬 및 역방향 수직 기본 경사 행렬을 기반으로 다음의 제4 식 및 제5 식에 따라 계산된다.
제4 식은
Figure pct00096
이다.
제5 식은
Figure pct00097
이다.
앞의 제4 공식에서
Figure pct00098
는 i=0, 1, ..., M+1, j=0, 1, ..., M+1을 나타낸다. 앞의 제5 공식에서,
Figure pct00099
는 기본 처리 단위의 수평 모션 정보 정제 값이고;
Figure pct00100
는 기본 처리 단위의 수직 동작 정보 정제 값이고;
Figure pct00101
;
Figure pct00102
는 플로어 함수이고(floor(A)는 A보다 크지 않은 최대 정수를 나타낸다); 그리고
Figure pct00103
Figure pct00104
이다.
제1 픽처 블록에 포함된 각 기본 처리 단위의 모션 정보 정제 값은 1062 내지 1064를 반복하여 획득할 수 있다.
단계 107: 제1 픽처 블록에 포함된 각 기본 처리 단위의 모션 정보 정제 값에 기초하여 제1 픽처 블록의 예측자를 획득한다.
제1 픽처 블록의 예측자는 제1 픽처 블록의 각 기본 처리 단위에 있는 각 샘플의 예측자를 포함한다.
제1 픽처 블록에 포함된 기본 처리 단위에 포함된 각 샘플의 예측자는 순방향 기본 예측 블록, 역방향 기본 예측 블록, 기본 처리 단위의 순방향 수평 기본 경사 행렬, 순방향 수직 기본 경사 행렬, 역방향 수평 기본 경사 행렬 및 역방향 수직 기본 경사 행렬에 따라 이하의 제6 식에 따라 계산된다.
제6 식은
Figure pct00105
이다.
제6 공식에서,
Figure pct00106
은 i 번째 행과 기본 처리 단위의 j 번째 열에 있는 샘플의 예측자이고, shift=15-BD,
Figure pct00107
이고, rnd()는 반올림된다.
처리될 픽처 블록의 각 제1 픽처 블록의 예측자는 103 내지 107을 반복하여 수행한다.
단계 108: 처리될 픽처 블록에 포함된 복수의 제1 픽처 블록의 예측자의 조합을 사용하여 처리될 픽처 블록의 예측자를 획득한다.
도 12에 도시된 인터 예측 방법은 단계 1 내지 단계 6으로 요약할 수 있으며, 단계 1 내지 단계 6은 다음과 같이 요약할 수 있다.
단계 1: 현재 CU의 동작 정보를 확인한다.
현재 CU의 모션 정보는 병합 모드, AMVP 모드(배경 설명 참조) 또는 다른 모드를 이용하여 결정될 수 있다. 이것은 여기에 제한되지 않는다.
모션 정보를 결정하는 다른 방법도 본 출원에 적용될 수 있음에 유의해야 한다. 자세한 내용은 여기에서 설명하지 않는다.
단계 2: 현재 CU가 BIO의 사용 조건을 충족하는지 판정한다.
현재 CU에 대해 양방향 예측이 수행되고 순방향 참조 프레임 번호 POC_L0, 역방향 참조 프레임 번호 POC_L1 및 현재 프레임 번호 POC_Cur 간의 관계가 다음 공식을 충족하면 현재 CU는 BIO의 사용 조건을 충족한다:
(POC_L0 - POC_Cur)*(POC_L1 - POC_Cur) < 0
BIO가 사용되는지는 현재 CU의 크기가 미리 설정된 임계 값보다 큰지를 결정함으로써 결정될 수도 있다는 점에 유의해야 한다. 예를 들어, BIO는 현재 CU의 높이 W가 8 이상이고 현재 CU의 폭 H가 8 이상인 경우에만 사용할 수 있다.
BIO의 다른 사용 조건도 본 출원에 적용될 수 있음에 유의해야 한다. 자세한 내용은 여기에서 설명하지 않는다.
현재 CU가 BIO의 사용 조건을 만족하면 단계 3을 수행하고, 그렇지 않으면 다른 방식으로 모션 보상을 수행한다.
VPDU 크기가 획득된다: VPDU_X 및 VPDU_Y, 파라미터 blkW 및 blkH가 설정된다.
blkW=Min(cuW, VPDU_X)
blkH=Min(cuH, VPDU_Y)
Min 함수는 최소 값이 선택되었음을 나타낸다.
예를 들어 CU 크기가 128x128이고 VPDU 크기가 64x64이면 blkW는 64이고 blkH는 64이다.
예를 들어, CU 크기가 128x128이고 VPDU 크기가 128x32이면 blkW는 128이고 blkH는 32이다.
예를 들어, CU 크기가 128x128이고 VPDU 크기가 32x128이면 blkW는 32이고 blkH는 128이다.
선택적으로, 최대 인터 예측 프로세싱 유닛의 크기가 VPDU 크기보다 작으면 blkW 및 blkH는 다음 공식에 따라 설정될 수 있다:
blkW=Min(cuW, MAX_MC_X)
blkH=Min(cuH, MAX_MC_Y)
예를 들어 CU 크기가 128x128이고 최대 인터 예측 프로세싱 유닛의 크기가 32x32인 경우 blkW는 32이고, blkH는 32이다.
각 CU는 blkW와 blkH를 기준으로 분할되어 BIO를 실행한다.
단계 3: 현재 CU의 순방향 및 역방향 예측자를 계산한다.
모션 보상은 모션 정보를 사용하여 수행되며, 순방향 및 역방향 예측자
Figure pct00108
를 획득하고, 여기서 i=-1..blkW 및 j=-1..blkH이다((blkW+2)*(blkH+2)의 예측 행렬이 얻어진다).
Figure pct00109
, i=0..blkW-1, 및 j=0..blkH이고, 이것은 8 탭 보간 필터를 사용하여 보간을 수행하여 획득되며, 다른 위치의 예측자는 쌍 선형 보간 필터를 사용하여 보간을 수행하여 획득된다(1 행 1 열 확장을 수행한다).
예측자는 VPDU를 최소 예측자 획득 단위로 사용하여 획득할 수 있거나, 예측자는 VPDU보다 작은 블록을 최소 예측자 획득 단위로 사용하여 획득할 수 있음을 이해해야 한다. 이것은 제한되지 않는다.
확장 영역의 예측자는 다른 방법, 예를 들어 8 탭 보간 필터를 사용하거나 정수 샘플 위치에서 참조 샘플을 직접 사용하여 얻을 수도 있다. 이것은 여기에 제한되지 않는다.
순방향 예측자와 역방향 예측자 사이의 SAD를 계산하여 SAD가 임계 값 TH_CU보다 작은지를 판단하고, SAD가 임계 값 TH_CU보다 작으면 BIO를 수행하지 않거나 그렇지 않으면 BIO를 수행한다. 또 다른 결정 방법이 본 출원에 적용될 수 있으며, 자세한 내용은 여기에서 설명하지 않는다.
SAD를 계산하는 공식은 다음과 같다:
Figure pct00110
(8)
TH_CU 임계 값은 (1<<(BD - 8 + shift))* blkW*blkH로 설정될 수 있고 shift는 Max(2, 14-BD)로 설정될 수 있다.
단계 4: 현재 CU의 순방향 및 역방향 예측자를 기반으로 수평 및 수직 경사를 계산한다.
수평 및 수직 경사
Figure pct00111
Figure pct00112
는 식 (4)에 따라 순방향 및 역방향 예측자를 기준으로 계산되며, 여기서 i=0..blkW-1 및 j=0..blkH-1이다(blkW*blkH의 경사 행렬을 획득한다).
단계 5: 현재 CU의 순방향 및 역방향 예측자와 수평 및 수직 경사에 패딩을 수행한다.
패딩은 도 9에 도시된 방법을 사용하여 수행되어
Figure pct00113
,
Figure pct00114
, 및
Figure pct00115
를 획득하며, 여기서 i=-1..blkW 및 j=-1..blkH이다((blkW+2)*(blkH+2)의 예측 행렬, 수평 경사 행렬 및 수직 경사 행렬이 획득된다).
단계 6: 각 4x4 서브블록의 정제된 모션 벡터를 유도한 다음 가중치를 수행한다.
각각의 4x4 서브-블록에 대해, vx 및 vy는 식 (2)에 따라 얻어진다. 마지막으로, 각 4x4 서브블록의 예측자를 얻기 위해 식 (6)에 따라 가중치를 부여한다.
각 4x4 서브블록의 순방향 예측자와 역방향 예측자 사이의 SAD는 SAD가 임계 값 TH_SCU보다 작은 지를 결정하기 위해 계산될 수 있다는 점에 유의해야 한다. SAD가 임계 값 TH_SCU보다 작으면 가중 평균을 직접 수행하거나 그렇지 않으면 식 (2)에 따라 vx 및 vy를 구한 다음 식 (6)에 따라 가중치를 수행한다. 또 다른 결정 방법이 본 출원에 적용될 수 있으며, 자세한 내용은 여기에서 설명하지 않는다. TU_SCU는 1<<(BD?3+shift)로 설정될 수 있다.
본 출원의 이 실시예에서, 미리 설정된 픽처 분할 폭 Width과 처리될 픽처 블록의 폭 cuW 중에서 더 작은 폭이 선택되어 blkW로 표시되고, 미리 설정된 분할 높이 Hight와 처리될 픽처 블록의 높이 cuH 중에서 더 작은 높이가 선택되어 blkH로 표시되고, 처리될 픽처 블록에 포함되는 제1 픽처 블록은 blkW와 blkH를 기준으로 결정된다. 따라서, 결정된 각각의 제1 픽처 블록의 면적이 그다지 크지 않기 때문에, 각각의 제1 픽처 블록에 대해 인터 예측 처리를 수행할 때 메모리 공간 자원과 같은 하드웨어 자원이 덜 소모 됨으로써 구현 복잡성이 감소하고 인터 예측 처리 효율이 향상된다.
도 14를 참조하면, 본 출원의 일 실시예는 인터 예측 방법을 제공한다. 이 방법은 도 2에 도시된 인코더에서의 인터 예측 유닛(244) 및 도 3에 도시된 디코더에서의 인터 예측 유닛(344)에 적용될 수 있다. 방법은 양방향 인터 예측 방법일 수 있으며, 다음 단계를 포함한다.
단계 201 및 단계 202는 각각 단계 101 및 102와 동일하며 자세한 내용은 여기서 다시 설명하지 않는다.
단계 203: 처리될 픽처 블록의 모션 정보에 기초하여 제1 픽처 블록의 제1 예측 블록을 획득하고, 여기서 제1 예측 블록의 폭은 제1 픽처 블록의 폭과 동일하고, 제1 예측 블록의 높이는 제1 픽처 블록의 높이와 동일하다.
제1 픽처 블록의 모션 정보는 참조 픽처 및 모션 벡터와 같은 정보를 포함한다. 이 실시예에서, 광 흐름 기반 양방향 예측 방식이 인터 예측을 위해 사용된다. 따라서, 제1 픽처 블록의 모션 정보는 순방향 참조 픽처, 역방향 참조 픽처, 순방향 모션 벡터 및 역방향 모션 벡터와 같은 정보를 포함한다.
본 실시예의 방법이 인코더에 적용될 때, 인코더는 병합 모드, AMVP 모드 또는 다른 모드에서 처리될 픽처 블록의 모션 정보를 결정할 수 있고, 처리될 픽처 블록의 모션 정보는 처리될 픽처 블록의 각 제1 픽처 블록의 모션 정보를 포함한다. 이 단계에서는 인코더에 의해 결정되는 처리될 픽처 블록의 모션 정보를 획득하고, 처리될 픽처 블록의 모션 정보로부터 제1 픽처 블록의 모션 정보를 획득한다.
본 실시예의 방법이 디코더에 적용될 때, 디코더에 의해 인코더로부터 수신된 비디오 비트스트림은 처리될 픽처 블록의 모션 정보 및 처리될 픽처의 모션 정보를 포함한다. 블록은 처리될 픽처 블록의 각 제1 픽처 블록의 모션 정보를 포함한다. 이 단계에서는 비디오 비트스트림에서 처리될 픽처 블록의 모션 정보를 추출하고, 처리될 픽처 블록의 모션 정보로부터 제1 픽처 블록의 모션 정보를 얻는다.
제1 픽처 블록의 제1 예측 블록은 제1 순방향 예측 블록 및 제1 역방향 예측 블록을 포함한다. 이 단계에서, 제1 픽처 블록의 제1 순방향 예측 블록 및 제1 역방향 예측 블록은 다음의 단계 (1) 내지 (8)을 통해 획득될 수 있다. 단계 (1) 내지 (8)은 다음과 같을 수 있다:
(1): 제1 픽처 블록의 제1 위치와 제1 픽처 블록의 모션 정보를 기반으로 순방향 참조 픽처에서 제1 순방향 영역을 결정하고, 여기서 제1 순방향 영역의 폭은 blkW이고, 제1 순방향 영역의 높이는 blkH이다.
예를 들어, 도 15를 참조하면, 제1 픽처 블록 B의 모션 정보는 순방향 참조 픽처(Ref0), 역방향 참조 픽처(Ref1), 순방향 모션 벡터(MV0) 및 역방향 모션 벡터(MV1)를 포함한다. 제2 순방향 영역(B11)은 제1 픽처 블록(B)의 제1 위치를 기준으로 순방향 참조 픽처(Ref0)에서 결정되며, 여기서 제2 순방향 영역(B11)의 폭은 blkW이고, 제2 순방향 영역(B11)의 높이는 blkH이다. 순방향 모션 벡터(MV0)와 제2 순방향 영역(B11)의 위치에 기초하여 제1 순방향 영역(B12)이 결정되며, 여기서 제1 순방향 영역(B12)의 폭은 blkW이고, 제1 순방향 영역(B12)의 높이는 blkH이다.
(2): 제1 순방향 영역의 모서리 위치가 순방향 참조 픽처의 순방향 참조 픽처의 샘플 위치와 일치하는지를 결정하고; 제1 순방향 영역의 모서리 위치가 순방향 참조 픽처의 샘플 위치와 일치하는 경우, 순방향 참조 픽처로부터 제1 순방향 영역의 픽처 블록을 획득하여 제1 픽처 블록의 제1 순방향 예측 블록으로서 기능하거나; 또는 제1 순방향 영역의 모서리 위치가 순방향 참조 픽처의 샘플 위치와 일치하지 않으면 단계 (3)을 수행한다.
예를 들어, 도 15를 참조하면, 제1 순방향 영역(B12)의 좌측 상단 모서리가 예로서 사용된다. 순방향 참조 픽처(Ref0)에서 제1 순방향 영역(B12)의 좌측 상단 모서리의 모서리 위치가 (15, 16)이라고 가정하면, 좌측 상단 모서리의 모서리 위치는 순방향 참조 픽처(Ref0)의 샘플 위치와 일치하고, 순방향 참조 픽처(Ref0)의 샘플 위치는 (15, 16)이다. 다른 예로, 순방향 참조 픽처(Ref0)에서 제1 순방향 영역 B12의 좌측 상단 모서리의 모서리 위치가 (15.3, 16.2)라고 가정하면, 좌측 상단 모서리의 모서리 위치는 샘플 위치와 일치하지 않으며, 순방향 참조 픽처(Ref0), 즉 순방향 참조 픽처(Ref0)의 위치 (15.3, 16.2)에 샘플이 없다.
(3): 순방향 참조 픽처에서 제1 순방향 영역의 모서리 위치에 가장 가까운 샘플을 결정하고, 샘플을 모서리로 사용하여 제3 순방향 영역을 결정하며, 여기서 제3 순방향 영역의 폭은 blkW이고, 제3 순방향 영역의 높이는 blkH이다.
제1 순방향 영역의 임의의 모서리 위치에 대해, 제1 순방향 영역의 좌측 상단 모서리 위치를 예로 사용하는 것으로 가정한다. 왼쪽 상단 모서리 위치에 가장 가까운 샘플은 순방향 참조 픽처에서 결정되고 제3 순방향 영역은 샘플을 왼쪽 상단 모서리로 사용하여 결정된다. 제3 순방향 영역의 폭은 blkW이고, 제3 순방향 영역의 높이는 blkH이다.
예를 들어, 도 15를 참조하면, 제1 순방향 영역 B12의 좌측 상단 모서리 위치는 (15.3, 16.2)이며, 모서리 위치 (15.3, 16.2)에서 가장 가까운 샘플의 위치는 순방향 참조 픽처(Ref0)에서 (15, 16)으로 결정된다. 제3 순방향 영역(A1)은 위치 (15, 16)에서의 샘플을 왼쪽 상단 모서리로 사용하여 결정된다. 제3 순방향 영역(A1)의 폭은 blkW이고, 제3 순방향 영역(A1)의 높이는 blkH이다.
(4): 제3 순방향 영역을 포함하는 제4 순방향 영역을 결정하는데, 여기서 제3 순방향 영역의 중심이 제4 순방향 영역의 중심과 일치하고, 제4 순방향 영역의 폭은 blkW+n-1이고, 그리고 제4 순방향 영역의 높이는 blkH+n-1이다. 순방향 참조 픽처로부터 제4 순방향 영역의 픽처 블록을 획득하고, 보간 필터를 사용하여 픽처 블록에 대한 보간 필터링을 수행하여, 제1 픽처 블록의 제1 순방향 예측 블록을 획득하며, 여기서 제1 순방향의 폭 예측 블록은 blkW이고, 제1 순방향 예측 블록의 높이는 blkH이고, n은 보간 필터의 탭 수이다.
예를 들어, 8 탭 보간 필터가 예로 사용된다. 도 15를 참조하면, 제3 순방향 영역(A1)을 포함하는 제4 순방향 영역(A2)이 결정된다. 제3 순방향 영역(A1)의 중심은 제4 순방향 영역(A2)의 중심과 일치하고, 제4 순방향 영역(A2)의 폭은 blkW+7이고, 제4 순방향 영역(A2)의 높이는 blkH+7이다. 순방향 참조 픽처(Ref0)로부터 제4 순방향 영역(A2)의 픽처 블록을 획득하고, 보간 필터를 이용하여 픽처 블록에 대해 보간 필터링을 수행하여 제1 픽처 블록(B)의 제1 순방향 예측 블록을 획득한다. 제1 순방향 예측 블록은 blkW이고, 제1 순방향 예측 블록의 높이는 blkH이다.
(5): 제1 위치와 제1 픽처 블록의 모션 정보를 기반으로 하여 제1 역방향 참조 픽처의 제1 역방향 영역을 결정하며, 여기서 제1 역방향 영역의 폭은 blkW이고 제1 역방향 영역의 높이는 blkH이다.
예를 들어, 도 15를 참조하면, 제1 픽처 블록(B)의 제1 위치를 기준으로 역방향 참조 픽처(Ref1)에서 제2 역방향 영역(C11)이 결정되며, 여기서 제2 역방향 영역(C11)의 폭은 blkW이고, 제2 역방향 영역(C11)의 높이는 blkH이다. 제1 역방향 영역(C12)은 역방향 모션 벡터(MV1)와 제2 역방향 영역(C12)의 위치에 기초하여 결정되며, 여기서 제1 역방향 영역(C12)의 폭은 blkW이고, 제1 역방향 영역(C12)의 높이는 blkH이다.
(6): 제1 역방향 영역의 모서리 위치가 역방향 참조 화상의 역방향 참조 화상의 샘플 위치와 일치하는지를 결정하고; 상기 제1 역방향 영역의 모서리 위치가 역방향 참조 픽처의 샘플 위치와 일치하면, 역방향 참조 픽처로부터 제1 역방향 영역의 픽처 블록을 획득하여 제1 픽처 블록의 제1 역방향 예측 블록으로서 기능하거나; 또는 제1 역방향 영역의 모서리 위치가 역방향 참조 픽처의 샘플 위치와 일치하지 않으면 단계 (7)을 수행한다.
예를 들어, 도 15를 참조하면, 제1 역방향 영역(C12)의 좌측 상단 모서리가 예로서 사용된다. 역방향 참조 픽처(Ref1)에서 제1 역방향 영역(C12)의 좌측 상단 모서리의 모서리 위치가 (5, 6)이라고 가정하면, 좌측 상단 모서리의 모서리 위치는 역방향 참조 픽처(Ref1)의 샘플 위치와 일치하고, 역 참조 픽처(Ref1)의 샘플 위치는 (5, 6)이다. 또 다른 예로, 역방향 참조 픽처(Ref1)에서 제1 역방향 영역(C12)의 좌측 상단 모서리의 모서리 위치가 (5.3, 6.2)라고 가정하면, 좌측 상단 모서리의 모서리 위치는 샘플 위치와 일치하지 않으며, 역방향 참조 픽처(Ref0), 즉 역방향 참조 픽처(Ref0)의 위치 (5.3, 6.2)에 샘플이 없다.
(7): 역방향 참조 픽처에서 제1 역방향 영역의 모서리 위치에 가장 가까운 샘플을 결정하고, 샘플을 모서리로 사용하여 제3 역방향 영역을 결정하며, 여기서 제3 역방향 영역의 폭은 blkW이고, 제3 역방향 영역의 높이는 blkH이다.
제1 역방향 영역의 임의의 모서리 위치에 대해, 제1 역방향 영역의 좌측 상단 모서리 위치를 예로 사용하는 것으로 가정한다. 좌측 상단 모서리 위치에 가장 가까운 샘플은 역방향 참조 픽처에서 결정되고 제3 역방향 영역은 샘플을 좌측 상단 모서리로 사용하여 결정된다. 제3 역방향 영역의 폭은 blkW이고, 제3 역방향 영역의 높이는 blkH이다.
예를 들어, 도 15를 참조하면, 제1 역방향 영역(C12)의 좌측 상단 모서리의 모서리 위치는 (5.3, 6.2)이고, 모서리 위치 (5.3, 6.2)에 가장 가까운 샘플의 위치는 역방향 참조 픽처(Ref1)에서 (5, 6)으로 결정된다. 제3 역방향 영역(D1)은 위치 (5, 6)의 샘플을 좌측 상단 모서리로 사용하여 결정된다. 제3 역방향 영역(D1)의 폭은 blkW이고, 제3 역방향 영역(D1)의 높이는 blkH이다.
(8): 제3 역방향 영역을 포함하는 제4 역방향 영역을 결정하고, 여기서 제3 역방향 영역의 중심은 제4 역방향 영역의 중심과 일치하고, 제4 역방향 영역의 폭은 blkW+n-1이고, 제4 역방향 영역의 높이는 blkH+n-1이고; 역방향 참조 픽처로부터 제4 역방향 영역의 픽처 블록을 획득하고, 보간 필터를 이용하여 픽처 블록에 대해 보간 필터링을 수행하여, 제1 픽처 블록의 제1 역방향 예측 블록을 획득하며, 여기서 제1 역방향의 폭 예측 블록은 blkW이고, 제1 역방향 예측 블록의 높이는 blkH이다.
예를 들어, 8 탭 보간 필터가 예로 사용된다. 도 15를 참조하면, 제3 역방향 영역(D1)을 포함하는 제4 역방향 영역(D2)이 결정된다. 제3 역방향 영역(D1)의 중심은 제4 역방향 영역(D2)의 중심과 일치하고, 제4 역방향 영역(D2)의 폭은 blkW+7이고, 제4 역방향 영역(D2)의 높이는 blkH+7이다. 역방향 참조 픽처(Ref1)로부터 제4 역방향 영역(D2)의 픽처 블록을 획득하고, 보간 필터를 이용하여 픽처 블록에 대해 보간 필터링을 수행하여 제1 픽처 블록(B)의 제1 역방향 예측 블록을 획득한다. 제1 역방향 예측 블록은 blkW이고, 제1 역방향 예측 블록의 높이는 blkH이다.
이 단계를 수행하면, 처리될 픽처 블록의 모션 정보를 기반으로 BIO를 통한 인터 예측이 수행되는지를 추가로 결정할 수 있고, BIO를 통한 인터 예측이 수행될 때, 이 단계가 수행된다. 결정 프로세스에 대해서는 도 12에 도시된 실시예에서 단계 103의 관련 내용을 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
이 단계에서, 제1 픽처 블록의 제1 순방향 예측 블록 및 제1 역방향 예측 블록에 기초하여 BIO를 통한 인터 예측이 수행되는지를 추가로 결정할 수 있고, BIO를 통해 인터 예측이 수행될 때, 단계 204가 수행된다. 결정 프로세스에 대해서는 도 12에 도시된 실시예에서 단계 103의 관련 내용을 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
단계 204: 제1 픽처 블록의 제1 경사 행렬을 얻기 위해 제1 픽처 블록의 제1 예측 블록에 대해 경사 연산을 수행하고, 여기서 제1 경사 행렬의 폭은 blkW-2이고, 제1 경사 행렬은 blkH-2이다.
제1 경사 행렬은 제1 순방향 수평 경사 행렬, 제1 순방향 수직 경사 행렬, 제1 역방향 수평 경사 행렬 및 제1 역방향 수직 경사 행렬을 포함한다.
제1 순방향 수평 경사 행렬의 폭, 제1 순방향 수직 경사 행렬의 폭, 제1 역방향 수평 경사 행렬의 폭 및 제1 역방향 수직 경사 행렬의 폭은 모두 blkW-2일 수 있으며, 제1 순방향 수평 경사 행렬의 높이, 제1 순방향 수직 경사 행렬의 높이, 제1 역방향 수평 경사 행렬의 높이, 및 제1 역방향 수직 경사 행렬의 높이는 모두 blkH-2일 수 있다.
이 단계에서, 제1 픽처 블록의 제1 예측 블록에 대해 경사 연산을 수행하는 상세한 구현 프로세스에 대해서는 도 12에 도시된 실시예의 단계 104의 관련 콘텐츠를 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
단계 205: 제1 경사 행렬의 행렬 에지 위치에서의 경사에 기초하여 제1 경사 행렬의 폭 및 높이에 대해 제1 확장을 수행하여, 제1 확장 후에 획득된 제1 경사 행렬의 폭 및 높이는 각각 제1 픽처 블록의 폭과 높이보다 큰 두 개의 샘플이 되도록 한다.
제1 확장 이후에 획득된 제1 경사 행렬의 폭 및 높이는 각각 제1 예측 블록의 폭 blkW+2 및 높이 blkH+2와 동일하다.
이 단계에서, 제1 확장은 제1 순방향 수평 경사 행렬의 폭과 높이, 제1 순방향 수직 경사 행렬의 폭과 높이, 제1 역방향 수평 경사 행렬의 폭과 높이 및 제1 역방향 수직 경사 행렬의 폭과 높이에 대해 개별적으로 수행되며, 따라서 제1 확장 이후에 획득된 순방향 수평 경사 행렬, 제1 순방향 수직 경사 행렬, 제1 역방향 수평 경사 행렬 및 제1 역방향 수직 경사 행렬의 폭은 모두 blkW+2이고, 제1 확장 이후에 획득된 제1 순방향 수평 경사 행렬, 제1 순방향 수직 경사 행렬, 제1 역방향 수평 경사 행렬 및 제1 역방향 수직 경사 행렬의 높이는 모두 blkH+2이다.
제1 경사 행렬에 대해 제1 확장을 수행하는 방식에 대해서는, 도 12에 도시된 실시예의 단계 205의 관련 콘텐츠를 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
단계 206: 제1 예측 블록의 블록 에지 위치에서의 샘플 값을 복제하여 제1 예측 블록의 폭과 높이에 대해 제2 확장을 수행하고, 여기서 제1 예측 블록의 폭과 높이는 제2 확장은 blkW+2 및 blkH+2이다.
이 단계에서는 제1 순방향 예측 블록의 블록 에지 위치의 샘플 값을 복제하고, 제1 역방향 예측 블록의 블록 에지 위치의 샘플 값을 복제하여, 제1 순방향 예측 블록의 폭과 높이에 대한 제2 확장을 수행하고, 제1 역방향 예측 블록의 폭 및 높이에 대해 제2 확장을 수행한다. 즉, 이 단계에서 제2 확장 이후에 획득된 제1 순방향 예측 블록의 폭과 높이는 각각 blkW+2와 blkH+2이고, 제2 확장 이후에 획득된 제1 역방향 예측 블록의 폭과 높이는 각각 blkW+2 및 blkH+2이다.
이 단계에서, 제1 예측 블록의 블록 에지 영역의 샘플 값에 대해 보간 필터링을 더 수행하여 제1 예측 블록의 폭 및 높이에 대해 제2 확장을 수행할 수 있다.
선택적으로, 단계 203에서는 참조 픽처에서 폭 blkW, 높이 blkH의 픽처 블록이 제1 픽처 블록의 제1 예측 블록으로 직접 사용되는 것으로 가정하면, 즉 도 15를 참조하면, 제1 순방향 영역 B12의 픽처 블록이 순방향 참조 다이어그램 Ref0에서는 제1 순방향 예측 블록으로 사용되고, 역방향 참조 다이어그램 Ref1에서는 제1 역방향 영역 C12의 픽처 블록이 제1 역방향 예측 블록으로 사용된다. 이 경우, 제1 예측 블록은 참조 픽처의 픽처 블록이다. 이 경우, 참조 픽처에서 제1 예측 블록을 둘러싸고 제1 예측 블록에 가장 가까운 샘플의 원이 참조 픽처로부터 선택되고, 선택된 샘플 원과 제1 예측 블록은 제2 확장 이후에 획득된 폭 blkW+2 및 blkH+2의 높이의 제1 예측 블록을 형성한다.
선택적으로, 단계 203에서, 보간 필터를 사용하여 제1 픽처 블록의 제1 예측 블록을 획득한다. 이 경우, 제1 예측 블록은 참조 픽처의 픽처 블록이 아니다. 제1 예측 블록의 임의의 에지에 있는 샘플에 있어서(설명의 편의를 위해 에지를 제1 에지라고 함), 제2 에지에 포함된 각 샘플의 제2 위치는 참조 픽처의 제1 에지 상의 각 샘플의 제1 위치를 기반으로 획득된다. 제2 에지는 제1 예측 블록 외부에 위치하며 제2 에지와 제1 에지 사이의 거리는 하나의 샘플이다. 제2 에지에는 blkW+2 샘플 또는 blkH+2 샘플이 포함된다. 제2 에지의 각 샘플에 있어서, 참조 픽처에서의 샘플의 제2 위치는 두 개의 인접 샘플 사이 또는 네 개의 인접 샘플 사이에 위치하고 보간 필터를 사용하여 두 개의 인접 샘플 또는 네 개의 인접 샘플에 대해 보간 필터링이 수행되어, 샘플을 획득한다. 전술한 방식으로 제1 예측 블록의 각 에지에 대응하는 제2 에지를 획득하고, 획득한 제2 에지 및 제1 예측 블록은 각각 제2 확장 이후에 획득된 폭 blkW+2 및 높이 blkH+2의 제1 예측 블록을 형성한다.
단계 206은 대안적으로 단계 204 이전에 수행될 수 있다. 이러한 방식으로, 제2 확장 이후에 획득된 제1 예측 블록이 획득되면, 제2 확장 이후에 획득된 제1 예측 블록에 대해 경사 연산이 수행되어 제1 픽처 블록의 제1 경사 행렬을 획득한다. 제2 확장 이후에 획득된 제1 예측 블록의 폭은 blkW+2이고 제2 확장 이후에 획득된 제1 예측 블록의 높이는 blkH+2이므로 획득한 제1 경사 행렬의 폭은 blkW이고 획득한 제1 경사 행렬의 높이는 blkH이다. 그런 다음, 제1 경사 행렬의 행렬 에지 위치에서 경사에 기초해서 제1 경사 행렬의 폭과 높이에 대해 제1 확장을 수행하여, 제1 확장 이후에 획득된 제1 경사 행렬의 폭과 높이가 각각 제1 픽처 블록의 폭과 높이보다 큰 두 개의 샘플이 되도록 한다.
단계 207 내지 단계 209는 각각 단계 106 내지 단계 108과 동일하며, 자세한 내용은 여기서 다시 설명하지 않는다.
도 16a 및 도 16b에 도시된 인터 예측 방법은 단계 1 내지 단계 6으로 요약될 수 있으며, 단계 1 내지 단계 6는 다음과 같을 수 있다.
단계 1: 현재 CU의 모션 정보를 결정한다.
현재 CU의 모션 정보는 병합 모드, AMVP 모드(배경 설명 참조) 또는 다른 모드를 이용하여 결정될 수 있다. 이것은 여기에 제한되지 않는다.
모션 정보를 결정하기 위한 다른 방법이 또한 본 출원에 적용될 수 있다는 것을 주목해야 한다. 자세한 내용은 여기에서 설명하지 않는다.
단계 2: 현재 CU가 BIO의 사용 조건을 충족하는지 판정한다.
현재 CU에 대해 양방향 예측이 수행되고 순방향 참조 프레임 번호 POC_L0, 역방향 참조 프레임 번호 POC_L1 및 현재 프레임 번호 POC_Cur 사이의 관계가 다음 공식을 충족하면 현재 CU는 사용 조건을 충족한다 :
(POC_L0 - POC_Cur)*(POC_L1 - POC_Cur) < 0
또한, BIO 사용 여부는 현재 CU의 크기가 미리 설정된 임계 값보다 큰지를 판단하여 결정할 수 있음을 유의해야 한다. 예를 들어, BIO는 현재 CU의 높이 W가 8 이상이고 현재 CU의 폭 H가 8 이상인 경우에만 사용할 수 있다.
BIO의 다른 사용 조건도 본 출원에 적용될 수 있음에 유의해야 한다. 자세한 내용은 여기에서 설명하지 않는다.
현재 CU가 BIO의 사용 조건을 만족하면 단계 3을 수행하고, 그렇지 않으면 다른 방식으로 모션 보상을 수행한다.
VPDU 크기가 획득된다: VPDU_X, VPDU_Y, 파라미터 blkW 및 blkH가 설정된다.
blkW=Min(cuW, VPDU_X)
blkH=Min(cuH, VPDU_Y)
예를 들어 CU 크기가 128x128이고 VPDU 크기가 64x64인 경우 blkW는 64이고 blkH는 64이다.
예를 들어 CU 크기가 128x128이고 VPDU 크기가 128x32인 경우 blkW는 128이고 blkH는 32이다.
예를 들어 CU 크기가 128x128이고 VPDU 크기가 32x128인 경우 blkW는 32이고 blkH는 128이다.
선택적으로 최대 인터 예측 프로세싱 유닛의 크기가 VPDU 크기보다 작으면 blkW 및 blkH는 다음 공식에 따라 설정될 수 있다.
blkW=최소(cuW, MAX_MC_X)
blkH=최소(cuH, MAX_MC_Y)
예를 들어 CU 크기가 128x128이고 최대 인터 예측 프로세싱 유닛의 크기가 32x32인 경우 blkW는 32이고, blkH는 32이다.
각 CU는 blkW와 blkH를 기준으로 분할되어 BIO를 실행한다.
단계 3: 현재 CU의 순방향 및 역방향 예측자를 계산한다.
모션 보상은 모션 정보를 사용하여 수행되어, 순방향 및 역방향 예측자
Figure pct00116
를 획득하고, 여기서 i=0..blkW-1 및 j=0..blkH-1이다(blkW*blkH의 예측 행렬이 얻어진다).
예측자는 VPDU를 최소 예측자 획득 단위로 사용하여 획득할 수 있거나, 예측자는 VPDU보다 작은 블록을 최소 예측자 획득 단위로 사용하여 획득할 수 있음을 이해해야 한다. 이것은 제한되지 않는다.
단계 4: 현재 CU의 순방향 및 역방향 예측자를 기반으로 수평 및 수직 경사를 계산한다.
수평 및 수직 경사
Figure pct00117
Figure pct00118
는 공식 (4)에 따라 순방향 및 역방향 예측자를 기준으로 계산되고, 여기서 i=1..blkW-2 및 j=1..blkH-2이다((blkW?2)*(blkH?2)의 경사 행렬을 획득한다).
단계 5: 현재 CU의 순방향 및 역방향 예측자와 수평 및 수직 경사에 패딩을 수행한다.
패딩은 도 9에 도시된 방법을 사용하여 수행되어,
Figure pct00119
,
Figure pct00120
, 및
Figure pct00121
를 획득하며, 여기서 i=-1..blkW 및 j=-1..blkH이다((blkW-2)*(blkH-2)의 행렬에 대해서 두 행과 두 열을 기준으로 패딩이 수행되어 (blkW+2)*(blkH+2)의 예측 행렬, 수평 경사 행렬 및 수직 경사 행렬을 획득한다).
단계 6: 각 4x4 서브블록의 정제된 모션 벡터를 유도한 다음 가중치를 수행한다.
각 4x4 서브블록에 대해 vx 및 vy는 공식 (2)에 따라 구한다. 마지막으로, 각 4x4 서브블록의 예측자를 얻기 위해 식 (6)에 따라 가중치를 부여한다.
본 출원의 이 실시예에서, 미리 설정된 픽처 분할 폭 Width 및 처리될 픽처 블록의 폭 cuW 중에서 더 작은 폭이 선택되어 blkW로 표시되고, 미리 설정된 픽처 분할 높이 Hight 및 및 처리될 픽처 블록의 높이 cuH 중에서 더 작은 높이가 선택되어 blkH로 표시하고, 처리될 픽처 블록에 포함된 제1 픽처 블록은 blkW 및 blkH에 기초하여 결정된다. 따라서, 결정된 각 제1 픽처 블록의 면적은 그다지 크지 않으므로, 각 제1 픽처 블록에 대해 인터 예측 처리를 수행할 때 메모리 공간이 덜 소모된다. 또한, 제1 픽처 블록의 모션 정보에 기초하여 제1 픽처 블록의 제1 예측 블록을 획득한다. 제1 예측 블록의 폭은 제1 픽처 블록의 폭과 동일하고, 제1 예측 블록의 높이는 제1 픽처 블록의 높이와 동일하다. 따라서, 제1 예측 블록은 상대적으로 작을 수 있어, 제1 예측 블록을 획득하기 위해 CPU 자원 및 메모리 자원과 같은 하드웨어 자원이 덜 소모됨으로써 구현 복잡도를 줄이고 처리 효율을 향상시킬 수 있다.
도 16a 및 도 16b를 참조하면, 본 출원의 실시예는 인터 예측 방법을 제공한다. 이 방법은 도 2에 도시된 인코더의 인터 예측 유닛(244) 및 도 3에 도시된 디코더의 인터 예측 유닛(344)에 적용될 수 있다. 방법은 양방향 인터 예측 방법일 수 있으며, 다음 단계를 포함한다.
단계 301: 제1 픽처 블록의 폭 cuW와 미리 설정된 픽처 분할 폭 Width를 비교하고, 제1 픽처 블록의 높이 cuH와 미리 설정된 픽처 분할 높이 Hight를 비교하고; cuW가 Width보다 크거나 같을 때 및/또는 cuH가 Hight보다 크거나 같을 때, 단계 302를 수행하거나, 또는 cuW가 Width보다 작고 cuH가 Hight보다 작을 때, 단계 305를 수행한다.
본 실시예의 방법이 인코더에 적용될 때, 화상을 인코딩할 때, 인코더는 화상을 제1 픽처 블록으로 분할한다. 이 단계 전에 인코더에서 제1 픽처 블록을 가져온다.
본 실시예의 방법이 디코더에 적용될 때, 디코더는 인코더로부터 비디오 비트스트림을 수신하고, 비디오 비트스트림은 제1 픽처 블록을 포함한다. 이 단계 이전에 비디오 비트스트림에서 제1 픽처 블록이 추출된다.
이 단계가 수행되면 제1 픽처 블록의 모션 정보를 기반으로 BIO를 통한 인터 예측 수행 여부를 더 판단할 수 있으며, BIO를 통해 인터 예측을 수행한 것으로 판단되면 이 단계를 수행한다. 구체적인 구현 프로세스는 도 12에 도시된 실시예의 단계 10의 관련 내용을 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
단계 302: 제1 픽처 블록의 모션 정보에 기초하여 제1 픽처 블록의 제2 예측 블록을 획득하고, 여기서 제2 예측 블록의 폭은 cuW+4이고, 제2 예측 블록의 높이는 cuH+4이다.
제1 픽처 블록의 모션 정보는 참조 픽처 및 모션 벡터와 같은 정보를 포함한다. 이 실시예에서, 광 흐름 기반 양방향 예측 방식이 인터 예측을 위해 사용된다. 따라서, 제1 픽처 블록의 모션 정보는 순방향 참조 픽처, 역방향 참조 픽처, 순방향 모션 벡터 및 역방향 모션 벡터와 같은 정보를 포함한다.
본 실시예의 방법이 인코더에 적용될 때, 인코더는 병합 모드, AMVP 모드 또는 다른 모드에서 제1 픽처 블록의 모션 정보를 결정할 수 있다. 이 단계에서 인코더에 의해 결정된 제1 픽처 블록의 모션 정보가 획득된다.
본 실시예의 방법이 디코더에 적용될 때, 디코더에 의해 인코더로부터 수신된 비디오 비트스트림은 제1 픽처 블록의 모션 정보를 포함한다. 이 단계에서는 비디오 비트스트림에서 제1 픽처 블록의 모션 정보를 추출한다.
제1 픽처 블록의 제2 예측 블록은 제2 순방향 예측 블록 및 제2 역방향 예측 블록을 포함한다. 이 단계에서, 제1 픽처 블록의 제2 순방향 예측 블록 및 제2 역방향 예측 블록은 다음의 단계 (1) 내지 (8)을 통해 획득될 수 있다. 단계 (1) 내지 (8)은 다음과 같을 수 있다.
(1): 처리될 픽처 블록의 제1 픽처 블록의 제1 위치와 제1 픽처 블록의 모션 정보를 기반으로 순방향 참조 픽처의 제1 순방향 영역을 결정하며, 여기서 제1 순방향 영역은 blkW+4이고, 제1 순방향 영역의 높이는 blkH+4이다.
예를 들어, 도 13을 참조하면, 제1 픽처 블록 B의 모션 정보는 순방향 참조 픽처(Ref0), 역방향 참조 픽처(Ref1), 순방향 모션 벡터(MV0) 및 역방향 모션 벡터(MV1)를 포함한다. 제2 순방향 영역(B11)은 제1 픽처 블록(B)의 제1 위치를 기준으로 순방향 참조 픽처(Ref0)에서 결정되며, 여기서 제2 순방향 영역(B11)의 폭은 blkW이고, 제2 순방향 영역(B11)의 높이는 blkH이다. 순방향 모션 벡터(MV0)와 제2 순방향 영역(B11)의 위치를 기반으로 제3 순방향 영역(B12)이 결정되고, 여기서 제3 순방향 영역(B12)의 폭은 blkW이고, 제3 순방향 영역(B12)의 높이는 blkH이다. 제3 순방향 영역(B12)을 포함하는 제1 순방향 영역(A1)이 결정되며, 여기서 제1 순방향 영역(A1)의 폭은 blkW+4이고, 제1 순방향 영역(A1)의 높이는 blkH+4이고, 제3 순방향 영역(B12)의 중심은 제1 순방향 영역(A1)의 중심과 일치한다.
(2): 제1 순방향 영역의 모서리 위치가 순방향 참조 픽처의 순방향 참조 픽처의 샘플 위치와 일치하는지를 결정하고; 제1 순방향 영역의 모서리 위치가 순방향 참조 픽처의 샘플 위치와 일치하는 경우, 순방향 참조 픽처로부터 제1 순방향 영역의 픽처 블록을 획득하여 제1 픽처 블록의 제2 순방향 예측 블록의 역할을 하거나; 또는 제1 순방향 영역의 모서리 위치가 순방향 참조 픽처의 샘플 위치와 일치하지 않으면 단계 (3)을 수행한다.
예를 들어, 도 13을 참조하면, 제1 순방향 영역(A1)의 좌측 상단 모서리가 예로서 사용된다. 순방향 참조 픽처(Ref0)에서 제1 순방향 영역(A1)의 좌측 상단 모서리의 모서리 위치가 (15, 16)이라고 가정하면, 좌측 상단 모서리의 모서리 위치는 순방향 참조 픽처(Ref0)의 샘플 위치와 일치하고, 순방향 참조 픽처(Ref0)의 샘플 위치는 (15, 16)이다. 또 다른 예로, 순방향 참조 픽처(Ref0)에서 제1 순방향 영역(A1)의 좌측 상단 모서리의 모서리 위치가 (15.3, 16.2)라고 가정하면, 좌측 상단 모서리의 모서리 위치는 순방향 참조 픽처(Ref0)의 샘플 위치와 일치하지 않으며, 즉 순방향 참조 픽처(Ref0)의 위치 (15.3, 16.2)에 샘플이 없다.
(3): 순방향 참조 픽처에서 제1 순방향 영역의 모서리 위치에 가장 가까운 샘플을 결정하고, 샘플을 모서리로 사용하여 제4 순방향 영역을 결정하며, 여기서 제4 순방향 영역의 폭은 blkW+4이고, 제4 순방향 영역의 높이는 blkH+4이다.
제1 순방향 영역의 임의의 모서리 위치에 대해, 제1 순방향 영역의 좌측 상단 모서리 위치를 예로 사용하는 것으로 가정한다. 순방향 참조 픽처에서 좌측 상단 모서리 위치에 가장 가까운 샘플이 결정되고, 샘플을 좌측 상단 모서리로 사용하여 제4 순방향 영역이 결정된다. 제4 순방향 영역의 폭은 blkW+4이고, 제4 순방향 영역의 높이는 blkH+4이다.
예를 들어, 도 13을 참조하면, 제1 순방향 영역(A1)의 좌측 상단 모서리 위치는 (15.3, 16.2)이고, 모서리 위치 (15.3, 16.2)에서 가장 가까운 샘플의 위치는 순방향 참조 픽처(Ref0)의 (15, 16)으로 결정된다. 제4 순방향 영역(A2)은 위치 (15, 16)의 샘플을 좌측 상단 모서리로 사용하여 결정된다. 제4 순방향 영역(A2)의 폭은 blkW+4이고, 제4 순방향 영역(A2)의 높이는 blkH+4이다.
(4): 제4 순방향 영역을 포함하는 제5 순방향 영역을 결정하고, 여기서 제4 순방향 영역의 중심은 제5 순방향 영역의 중심과 일치하고, 제5 순방향 영역의 폭은 blkW+n+3이고, 제5 순방향 영역의 높이는 blkH+n+3이고; 순방향 참조 픽처로부터 제5 순방향 영역의 픽처 블록을 획득하고, 보간 필터를 사용하여 픽처 블록에 대한 보간 필터링을 수행하여, 제1 픽처 블록의 제2 순방향 예측 블록을 획득하며, 여기서 제2 순방향의 폭 예측 블록은 blkW+4이고, 제2 순방향 예측 블록의 높이는 blkH+4이고, n은 보간 필터의 탭 수이다.
예를 들어, 8 탭 보간 필터가 예로 사용된다. 도 13을 참조하면, 제4 순방향 영역(A2)을 포함하는 제5 순방향 영역(A3)이 결정된다. 제4 순방향 영역(A2)의 중심은 제5 순방향 영역(A3)의 중심과 일치하고, 제5 순방향 영역(A3)의 폭은 blkW+11이고, 제5 순방향 영역(A3)의 높이는 blkH+11이다. 제5 순방향 영역(A3)의 픽처 블록은 순방향 참조 픽처(Ref0)로부터 획득되고, 보간 필터를 사용하여 픽처 블록에 대해 보간 필터링을 수행하여 제1 픽처 블록 B의 제2 순방향 예측 블록을 획득한다. 제2 순방향 예측 블록은 blkW+4이고, 제2 순방향 예측 블록의 높이는 blkH+4이다.
(5): 제1 픽처 블록의 제1 위치 및 모션 정보를 기반으로 하여 역방향 참조 픽처에서 제1 역방향 영역을 결정하며, 여기서 제1 역방향 영역의 폭은 blkW+4이고, 제1 역방향 영역은 blkH+4이다.
예를 들어, 도 13을 참조하면, 제1 픽처 블록(B)의 제1 위치를 기준으로 역방향 참조 픽처(Ref1)에서 제2 역방향 영역(C11)이 결정되며, 여기서 제2 역방향 영역(C11)의 폭은 blkW이고, 제2 역방향 영역(C11)의 높이는 blkH이다. 제3 역방향 영역(C12)은 역방향 모션 벡터(MV1)와 제2 역방향 영역(C11)의 위치에 기초하여 결정되며, 여기서 제3 역방향 영역(C12)의 폭은 blkW이고, 제3 역방향 영역(C12)의 높이는 blkH이다. 제3 역방향 영역(C12)을 포함하는 제1 역방향 영역(D1)이 결정되며, 여기서 제1 역방향 영역(D1)의 폭은 blkW+4이고, 제1 역방향 영역(D1)의 높이는 blkH+4이고, 제3 역방향 영역(C12)의 중심은 제1 역방향 영역(D1)의 중심과 일치할 수 있다.
(6): 제1 역방향 영역의 모서리 위치가 역방향 참조 픽처에서 역방향 참조 픽처의 샘플 위치와 일치하는지를 결정하고; 상기 제1 역방향 영역의 모서리 위치가 역방향 참조 픽처의 샘플 위치와 일치하는 경우, 역방향 참조 픽처로부터 제1 영역의 픽처 블록을 획득하여 제1 픽처 블록의 제2 역방향 예측 블록으로서 기능하거나; 또는 제1 역방향 영역의 모서리 위치가 역방향 참조 픽처의 샘플 위치와 일치하지 않으면 단계 (7)을 수행한다.
예를 들어, 도 13을 참조하면, 제1 역방향 영역(A1)의 좌측 상단 모서리가 예로 사용된다. 역방향 참조 픽처(Ref0)에서 제1 역방향 영역(A1)의 좌측 상단 모서리의 모서리 위치가 (5, 6)이라고 가정하면, 좌측 상단 모서리의 모서리 위치는 역방향 참조 픽처(Ref0)의 샘플 위치와 일치하며, 역방향 참조 픽처(Ref0)의 샘플 위치는 (5, 6)이다. 다른 예로, 역방향 참조 픽처(Ref0)에서 제1 역방향 영역(D1)의 좌측 상단 모서리의 모서리 위치가 (5.3, 6.2)라고 가정하면, 좌측 상단 모서리의 모서리 위치는 샘플 위치와 일치하지 않으며, 역방향 참조 픽처(Ref0), 즉 역방향 참조 픽처(Ref0)의 위치 (5.3, 6.2)에 샘플이 없다.
(7): 역방향 참조 픽처에서 제1 역방향 영역의 모서리 위치에 가장 가까운 샘플을 결정하고, 샘플을 모서리로 사용하여 제4 역방향 영역을 결정하고, 여기서 제4 역방향 영역의 폭은 blkW+4이고 제4 역방향 영역의 높이는 blkH+4이다.
제1 역방향 영역의 임의의 모서리 위치에 대해, 제1 역방향 영역의 좌측 상단 모서리 위치를 예로 사용하는 것으로 가정한다. 역방향 참조 픽처에서 좌측 상단 모서리 위치에 가장 가까운 샘플이 결정되고, 샘플을 좌측 상단 모서리로 사용하여 제4 역방향 영역이 결정된다. 제4 역방향 영역의 폭은 blkW+4이고, 제4 역방향 영역의 높이는 blkH+4이다.
예를 들어, 도 13을 참조하면, 제1 역방향 영역(D1)의 좌측 상단 모서리의 모서리 위치는 (5.3, 6.2)이고, 모서리 위치 (5.3, 6.2)에 가장 가까운 샘플의 위치는 역방향 참조 픽처(Ref1)의 (5, 6)으로 결정된다. 제4 역방향 영역(D2)은 (5, 6) 위치의 샘플을 좌측 상단 모서리로 사용하여 결정된다. 제4 역방향 영역(D2)의 폭은 blkW+4이고, 제4 역방향 영역(D2)의 높이는 blkH+4이다.
(8): 제4 역방향 영역을 포함하는 제5 역방향 영역을 결정하고, 여기서 제4 역방향 영역의 중심은 제5 역방향 영역의 중심과 일치하고, 제5 역방향 영역의 폭은 blkW+n+3이고, 제5 역방향 영역의 높이는 blkH+n+3이고; 역방향 참조 픽처로부터 제5 역방향 영역의 픽처 블록을 획득하고, 보간 필터를 사용하여 픽처 블록에 대한 보간 필터링을 수행하여, 제1 픽처 블록의 제2 역방향 예측 블록을 획득하며, 여기서 제2 역방향의 폭 예측 블록은 blkW+4이고, 제2 역방향 예측 블록의 높이는 blkH+4이다.
예를 들어, 8 탭 보간 필터가 예로 사용된다. 도 13을 참조하면, 제4 역방향 영역(D2)을 포함하는 제5 역방향 영역(D3)이 결정된다. 제4 역방향 영역(D2)의 중심은 제5 역방향 영역(D3)의 중심과 일치하고, 제5 역방향 영역(D3)의 폭은 blkW+11이고, 제5 역방향 영역(D3)의 높이는 blkH+11이다. 제5 역방향 영역(D3)의 픽처 블록은 역방향 참조 픽처(Ref1)로부터 획득되고, 보간 필터를 이용하여 픽처 블록에 대해 보간 필터링을 수행하여 제1 픽처 블록 B의 제2 역방향 예측 블록을 획득한다. 제2 역방향 예측 블록은 blkW+4이고, 제2 역방향 예측 블록의 높이는 blkH+4이고, n은 보간 필터의 탭 수이다.
단계 303: 제1 픽처 블록의 제2 예측 블록에 대해 경사 연산을 수행하여 제1 픽처 블록의 제1 경사 행렬을 획득하고, 여기서 제1 경사 행렬의 폭은 cuW+2이고 제1 경사 행렬은 cuH+2이다.
제1 경사 행렬은 제1 순방향 수평 경사 행렬, 제1 순방향 수직 경사 행렬, 제1 역방향 수평 경사 행렬, 및 제1 역방향 수직 경사 행렬을 포함한다.
이 단계에서, 제1 경사 행렬을 얻기 위해 제1 픽처 블록의 제2 예측 블록에 대해 경사 연산을 수행하는 자세한 구현 프로세스에 대해서는, 도 12에 도시된 실시예의 단계 104에서 제1 경사 행렬을 획득하는 세부 프로세스를 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
제1 예측 블록은 제2 순방향 예측 블록 및 제2 역방향 예측 블록을 포함한다. 제2 순방향 예측 블록에 기초하여 폭이 cuW+2이고 높이가 cuH+2인 제2 순방향 수평 경사 행렬과 폭이 cuW+2이고 높이가 cuH+2인 제2 순방향 수직 경사 행렬이 획득될 수 있다. 제2 역방향 예측 블록에 기초하여 폭이 cuW+2이고 높이가 cuH+2인 제2 역방향 수평 경사 행렬과 폭이 cuW+2이고 높이가 cuH+2인 제2 역방향 수직 경사 행렬이 획득될 수 있다.
단계 304: 제2 예측 블록에서 제1 픽처 블록의 제1 예측 블록을 결정하고, 여기서 제1 예측 블록의 폭은 cuW+2이고, 제1 예측 블록의 높이는 cuH+2이고; 단계 308을 수행한다.
제1 예측 블록의 중심은 제2 예측 블록의 중심과 일치한다.
제1 예측 블록은 제1 순방향 예측 블록 및 제1 역방향 예측 블록을 포함한다.
이 단계에서는, 제1 픽처 블록의 폭 cuW+2 및 높이 cuH+2를 가진 제1 순방향 예측 블록이 제2 순방향 예측 블록에서 결정되고, 제1 픽처 블록의 폭이 cuW+2이고 높이가 cuH+2인 제1 역방향 예측 블록이 제2 순방향 예측 블록에서 결정된다.
단계 305: 제1 픽처 블록의 모션 정보에 기초하여 제1 픽처 블록의 제1 예측 블록을 획득하고, 여기서 제1 예측 블록의 폭은 cuW+2이고, 제1 예측 블록의 높이는 cuH+2이다.
이 단계에서 제1 예측 블록을 획득하는 자세한 프로세스는 도 12에 도시된 실시예의 단계 103의 관련 내용을 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
단계 306: 제1 픽처 블록의 제1 예측 블록에 대해 경사 연산을 수행하여 제1 픽처 블록의 제1 경사 행렬을 획득하고, 여기서 제1 경사 행렬의 폭은 cuW이고, 제1 경사 행렬의 높이는 cuH이다.
제1 경사 행렬은 제1 순방향 수평 경사 행렬, 제1 순방향 수직 경사 행렬, 제1 역방향 수평 경사 행렬 및 제1 역방향 수직 경사 행렬을 포함한다.
이 단계의 상세한 구현 프로세스에 대해서는 도 12에 도시된 실시예의 단계 104의 관련 내용을 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
단계 307: 제1 경사 행렬의 행렬 에지 위치에서의 경사에 기초해서 제1 경사 행렬의 폭과 높이에 대해 제1 확장을 수행하여 제1 확장 이후에 획득된 제1 경사 행렬의 폭과 높이가 각각 제1 픽처 블록의 폭과 높이보다 큰 두 개의 샘플이 되도록 한다.
이 단계의 상세한 구현 프로세스는 도 12에 도시된 실시예의 단계 105의 관련 내용을 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
단계 308 내지 단계 310은 각각 단계 106 내지 단계 108과 동일하며, 자세한 내용은 여기서 다시 설명하지 않는다.
도 15에 도시된 인터 예측 방법은 단계 1 내지 단계 6으로 요약할 수 있으며, 단계 1 내지 단계 6은 다음과 같이 요약할 수 있다.
단계 1: 현재 CU의 동작 정보를 결정한다.
현재 CU의 모션 정보는 병합 모드, AMVP 모드(배경 설명 참조) 또는 다른 모드를 이용하여 결정될 수 있다. 이것은 여기에 제한되지 않는다.
모션 정보를 결정하는 다른 방법도 본 출원에 적용될 수 있음에 유의해야 한다. 자세한 내용은 여기에서 설명하지 않는다.
단계 2: 현재 CU가 BIO의 사용 조건을 충족하는지 판정한다.
현재 CU에 대해 양방향 예측이 수행되고 순방향 참조 프레임 번호 POC_L0, 역방향 참조 프레임 번호 POC_L1 및 현재 프레임 번호 POC_Cur 간의 관계가 다음 공식을 충족하면 현재 CU는 BIO의 사용 조건을 충족한다.
(POC_L0 - POC_Cur) * (POC_L1 - POC_Cur) < 0
BIO의 다른 사용 조건도 본 출원에 적용될 수 있다. 자세한 내용은 여기에서 설명하지 않는다.
현재 CU가 BIO의 사용 조건을 충족하면 단계 3을 수행하거나, 그렇지 않으면 다른 방식으로 모션 보상을 수행한다.
단계 3: 현재 CU의 순방향 및 역방향 예측자를 계산한다.
cuW가 VPDU_X보다 크거나 같거나 cuH가 VPDU_Y보다 크거나 같으면 모션 정보를 사용하여 모션 보상을 수행하여 순방향 및 역방향 예측자
Figure pct00122
를 획득하며, 여기서 i=-2..cuW+1 및 j=-2..cuH+1이다(동일한 보간 필터를 사용하여 (cuW+4)*(cuH+4)의 예측 행렬을 획득한다).
cuW가 VPDU_X보다 작거나 cuH가 VPDU_Y보다 작으면, 모션 정보를 사용하여 모션 보상을 수행하여 순방향 및 역방향 예측자
Figure pct00123
를 획득하고, 여기서 i=-1 .. cuW 및 j=-1..cuH이다((cuW+2)*(cuH+2)의 예측 행렬을 획득한다).
Figure pct00124
, i=0..cuW-1, j=0..cuH-1에서 8 탭 보간 필터를 사용하여 보간을 수행하고 쌍 선형 보간 필터를 사용하여 보간을 수행하여 다른 위치의 예측자를 구한다(1 행 1 열 확장을 수행한다).
예측자는 VPDU를 최소 예측자 획득 단위로 사용하여 획득할 수 있거나, 예측자는 VPDU보다 작은 블록을 최소 예측자 획득 단위로 사용하여 획득할 수 있음을 이해해야 한다. 이것은 제한되지 않는다.
확장 영역의 예측자는 다른 방법, 예를 들어 8 탭 보간 필터를 사용하거나 정수 샘플 위치에서 참조 샘플을 직접 사용하여 얻을 수도 있다. 이것은 여기에 제한되지 않는다.
SAD가 임계치 TH_CU보다 작은지 판정하기 위해 순방향 예측자와 역방향 예측자 사이의 SAD를 계산하고, SAD가 임계치 TH_CU보다 작으면 BIO를 수행하지 않거나 그렇지 않으면 BIO 수행된다. 또 다른 결정 방법이 본 출원에 적용될 수 있으며, 자세한 내용은 여기에서 설명하지 않는다.
SAD를 계산하는 공식은 다음과 같다:
Figure pct00125
(9)
TH_CU 임계 값은 (1<<(BD - 8+shift))* cuW*cuH로 설정되고 시프트는 Max(2, 14-BD)로 설정될 수 있다.
단계 4: 현재 CU의 순방향 및 역방향 예측자를 기반으로 수평 및 수직 경사를 계산한다.
cuW가 VPDU_X보다 크거나 같거나 cuH가 VPDU_Y보다 크거나 같으면 수평 및 수직 경사
Figure pct00126
Figure pct00127
는 공식 (4)에 따라 계산되며, 여기서 i=-1..cuW 및 j=-1..cuH이다((cuW+2)* cuH+2)의 경사 행렬이 얻어진다).
cuW가 VPDU_X보다 작거나 cuH가 VPDU_Y보다 작으면 수평 및 수직 경사
Figure pct00128
Figure pct00129
는 공식 (4)에 따라 순방향 및 역방향 예측자를 기반으로 계산되며, 여기서 i=0..cuW-1 및 j=0..cuH-1이다(cuW*cuH의 경사 행렬이 획득된다).
단계 5: cuW가 VPDU_X보다 작고 cuH가 VPDU_Y보다 작은 경우 현재 CU의 순방향 및 역방향 예측자와 수평 및 수직 경사에 대해 패딩을 수행한다.
패딩은 도 9의 방법을 사용하여 수행되어,
Figure pct00130
,
Figure pct00131
, 및
Figure pct00132
이 획득되고, 여기서 i=-1..cuW 및 j=-1..cuH이다((cuW+2)*(cuH+2)의 예측 행렬, 수평 경사 행렬 및 수직 경사 행렬이 획득된다).
단계 6: 각 4x4 서브블록의 정제된 모션 벡터를 도출하고 가중치를 부여한다.
각각의 4x4 서브블록에 대해, vx 및 vy는 식 (2)에 따라 얻어진다. 마지막으로, 각 4x4 서브블록의 예측자를 얻기 위해 식 (6)에 따라 가중치를 부여한다.
각 4x4 서브블록의 순방향 예측자와 역방향 예측자 사이의 SAD는 SAD가 임계 값 TH_SCU보다 작은지를 결정하기 위해 계산될 수 있다는 점에 유의해야 한다.
SAD가 임계 값 TH_SCU보다 작으면 가중 평균을 직접 수행하거나 그렇지 않으면 식 (2)에 따라 vx 및 vy를 구한 다음 식 (6)에 따라 가중치를 수행한다. 또 다른 결정 방법이 본 출원에 적용될 수 있으며, 자세한 내용은 여기에서 설명하지 않는다. TU_SCU는 1<<(BD-3+shift)로 설정될 수 있다.
본 출원의 이 실시예에서, BIO 예측은 동일한 방식으로 VPDU의 경계 및 CU의 경계에서 수행된다. CU가 복수의 VPDU를 포함하는 경우 모션 보상 예측을 구현하는 복잡성이 감소된다.
본 출원의 이 실시예에서, cuW가 Width보다 크거나 같고 및/또는 cuH가 Hight보다 크거나 같을 때, 제1 픽처 블록의 제2 예측 블록은 제1 픽처 블록의 모션 정보에 기초하여 획득된다. 제2 예측 블록의 폭은 cuW+4이고 제2 예측 블록의 높이는 cuH+4이므로 제1 픽처 블록의 제2 예측 블록에 대해 경사 연산을 수행하여 cuW+2의 높이와 cuH+2의 높이를 가진 제1 경사 행렬을 획득하므로 확장 처리가 제1 경사 행렬의 에지에서 생략될 수 있으므로 인터 예측 효율성이 향상된다.
도 17은 본 출원의 실시예에 따른 방법의 개략적인 흐름도이다. 도면에 도시된 바와 같이 인터 예측 방법이 제공되며 다음 단계를 포함한다.
S1201: 처리될 픽처 블록의 모션 정보를 획득하며, 여기서 처리될 픽처 블록은 복수의 가상 파이프라인 데이터 단위를 포함하고, 가상 파이프라인 데이터 단위는 적어도 하나의 기본 처리 단위를 포함한다.
S1202: 모션 정보에 기초하여 각 가상 파이프라인 데이터 단위의 예측 행렬을 획득한다.
S1203: 각 예측자 행렬에 기초하여 각 가상 파이프라인 데이터 단위의 수평 예측 경사 행렬 및 수직 예측 경사 행렬을 계산한다.
S1204: 예측자 행렬, 수평 예측 경사 행렬 및 수직 예측 경사 행렬에 기초하여 각 가상 파이프라인 데이터 단위에서 각 기본 처리 단위의 모션 정보 정제 값을 계산한다.
실현 가능한 구현에서, 모션 정보에 기초하여 각 가상 파이프라인 데이터 단위의 예측 행렬을 획득하는 단계는: 모션 정보에 기초하여 각 가상 파이프라인 데이터 단위의 초기 예측 행렬을 획득하는 단계, 여기서 초기 예측의 크기 행렬은 가상 파이프라인 데이터 단위의 크기와 같다; 및 초기 예측 행렬을 예측 행렬로 사용하는 단계를 포함한다.
실현 가능한 구현에서, 각 가상 파이프라인 데이터 단위의 초기 예측 행렬을 획득한 후, 방법은: 확장된 예측 행렬을 획득하기 위해 초기 예측 행렬의 에지에 대해 샘플 확장을 수행하는 단계를 더 포함하며, 여기서 확장된 예측 행렬은 초기 예측 행렬의 크기보다 크다. 이에 대응하여, 초기 예측 행렬을 예측 행렬로 사용하는 단계는: 확장된 예측 행렬을 예측 행렬로 사용하는 단계를 포함한다.
실현 가능한 구현에서, 초기 예측 행렬의 에지에 대한 샘플 확장을 수행하는 단계는: 초기 예측 행렬에서 샘플의 샘플 값의 보간에 기초하여 초기 예측 행렬 외부의 샘플의 샘플 값을 획득하는 단계; 또는 초기 예측 행렬 외부에 있고 에지에 인접한 샘플의 샘플 값으로서 초기 예측 행렬의 에지 상의 샘플의 샘플 값을 사용하는 단계를 포함한다.
실현 가능한 구현에서, 가상 파이프라인 데이터 단위는 복수의 모션 보상 단위를 포함하고, 모션 정보에 기초하여 각 가상 파이프라인 데이터 단위의 예측 행렬을 획득하는 단계는: 모션 정보를 기반으로 각 모션 보상 단위의 보상 값 행렬을 획득하는 단계; 및 예측자 행렬을 획득하기 위해 복수의 모션 보상 단위의 보상 값 행렬을 결합하는 단계를 포함한다.
실행 가능한 구현에서, 각 예측자 행렬에 기초하여 각 가상 파이프라인 데이터 단위의 수평 예측 경사 행렬 및 수직 예측 경사 행렬을 계산하는 단계는: 예측자 행렬에 대해 수평 경사 계산 및 수직 경사 계산을 별도로 수행하여 수평 예측 경사 행렬 및 수직 예측 경사 행렬을 획득하는 단계를 포함한다.
실현 가능한 구현에서, 예측자 행렬, 수평 예측 경사 행렬 및 수직 예측 경사 행렬에 기초하여 각 가상 파이프라인 데이터 장치에서 각 기본 처리 단위의 모션 정보 정제 값을 계산하기 전에, 방법은: 패딩 예측 행렬이 미리 설정된 크기를 갖는 패딩 예측 행렬을 얻기 위해 예측자 행렬의 에지에 대해 샘플 확장을 수행하는 단계; 및 수평 예측 경사 행렬의 에지와 수직 예측 경사 행렬의 에지에 대해 개별적으로 경사 확장을 수행하여 패딩 수평 경사 행렬 및 패딩 수직 경사 행렬을 획득하는 단계를 더 포함하며, 여기서 패딩 수평 경사 행렬과 패딩 수직 경사 행렬은 각각 미리 설정된 크기가 있고, 이에 대응하여, 예측자 행렬, 수평 예측 경사 행렬 및 수직 예측 경사 행렬에 기초하여 각 가상 파이프라인 데이터 단위에서 각 기본 처리 단위의 모션 정보 정제 값을 계산하는 단계는: 패딩 예측 행렬, 패딩 수평 경사 행렬 및 패딩 수직 경사 행렬에 기초하여 각 가상 파이프라인 데이터 단위의 각 기본 처리 단위의 모션 정보 미세 조정 값을 계산하는 단계를 포함한다.
실현 가능한 구현에서, 예측 행렬의 에지에 대한 샘플 확장을 수행하기 전에, 방법은: 예측 행렬의 크기가 미리 설정된 크기보다 작은 지 결정하는 단계를 더 포함한다.
실현 가능한 구현에서, 수평 예측 경사 행렬의 에지 및 수직 예측 경사 행렬의 에지에 경사 확장을 수행하기 전에, 방법은: 수평 예측 경사 행렬의 크기 및/또는 수직 예측 경사 행렬의 크기가 미리 설정된 크기보다 작다는 것으로 결정하는 단계를 더 포함한다.
실행 가능한 구현에서, 각 가상 파이프라인 데이터 단위에서 각 기본 처리 단위의 모션 정보 정제 값을 계산한 후, 방법은: 가상 파이프라인 데이터 단위의 예측자 행렬 및 가상 파이프라인 데이터 단위의 각 기본 처리 단위의 모션 정보 정제 값에 기초하여 각 기본 처리 단위의 예측자를 획득하는 단계를 더 포함한다.
실현 가능한 구현에서, 방법은 양방향 예측에 사용되고, 이에 대응하여, 모션 정보는 제1 참조 프레임 목록 모션 정보 및 제2 참조 프레임 목록 모션 정보를 포함하고; 예측자 행렬은 제1 예측자 행렬 및 제2 예측자 행렬을 포함하고, 제1 예측자 행렬은 제1 참조 프레임 목록 모션 정보에 기초하여 획득되고, 제2 예측자 행렬은 제2 참조 프레임 목록 모션 정보에 기초하여 획득되고; 수평 예측 경사 행렬은 제1 수평 예측 경사 행렬 및 제2 수평 예측 경사 행렬을 포함하고, 제1 수평 예측 경사 행렬은 제1 예측자 행렬에 기초하여 계산되고, 제2 수평 예측 경사 행렬은 제2 예측자 행렬에 기초하여 계산되고; 수직 예측 경사 행렬은 제1 수직 예측 경사 행렬 및 제2 수직 예측 경사 행렬을 포함하고, 제1 수직 예측 경사 행렬은 제1 예측자 행렬에 기초하여 계산되고, 제2 수직 예측 경사 행렬은 제2 예측자 행렬에 기초하여 계산되고; 모션 정보 정제 값은 제1 참조 프레임 목록 모션 정보 정제 값 및 제2 참조 프레임 목록 모션 정보 정제 값을 포함하고, 제1 참조 프레임 목록 모션 정보 정제 값은 제1 예측자 행렬, 제1 수평 예측 경사 행렬에 기초하여 계산되고, 제1 수직 예측 경사 행렬 및 제1 참조 프레임 목록 모션 정보 정제 값은 제1 예측자 행렬, 제1 수평 예측 경사 행렬 및 제2 수직 예측 경사 행렬에 기초하여 계산된다.
실현 가능한 구현에서, 초기 예측 행렬의 에지에 대해 샘플 확장을 수행하기 전에, 방법은: 처리될 픽처 블록이 위치하는 픽처 프레임의 시간 도메인 위치가 제1 참조 프레임 목록 모션 정보가 가리키는 제1 참조 프레임과 제2 참조 프레임 목록 모션 정보가 가리키는 제2 참조 프레임 사이에 위치하는 것으로 결정하는 단계를 더 포함한다.
실현 가능한 구현에서, 각 가상 파이프라인 데이터 단위의 예측 행렬을 획득한 후, 방법은: 제1 예측 행렬과 제2 예측 행렬 사이의 차이가 제1 임계 값보다 작다는 것을 결정하는 단계를 더 포함한다.
실현 가능한 구현에서, 기본 처리 단위의 모션 정보 정제 값은 예측 행렬 내의 하나의 기본 예측 행렬에 대응하고; 그리고 예측자 행렬, 수평 예측 경사 행렬 및 수직 예측 경사 행렬에 기초하여 각 가상 파이프라인 데이터 단위에서 각 기본 처리 단위의 모션 정보 정제 값을 계산하기 전에, 방법은: 제1 기본 예측자 행렬과 제2 기본 예측자 행렬은 제2 임계 값보다 작다는 것으로 결정하는 단계를 더 포함한다.
가능한 구현에서, 기본 처리 단위의 크기는 4x4이다.
실현 가능한 구현에서, 가상 파이프라인 데이터 단위의 폭은 W이고, 가상 파이프라인 데이터 단위의 높이는 H이며, 확장된 예측 행렬의 크기는 (W+n+2)x(H+n+2)이다. 이에 따라 수평 예측 경사 행렬의 크기는 (W+n)x(H+n)이고 수직 예측 경사 행렬의 크기는 (W+n)x(H+n)이며, 여기서 W와 H는 양의 정수이고 n은 짝수이다.
실행 가능한 구현에서 n은 0, 2 또는 -2이다.
실행 가능한 구현에서, 처리될 픽처 블록의 모션 정보를 획득하기 전에, 방법은 처리될 픽처 블록이 복수의 가상 파이프라인 데이터 단위를 포함한다고 결정하는 단계를 더 포함한다.
도 18은 본 출원의 실시예에 따른 방법의 개략적인 흐름도이다. 도면에 도시된 바와 같이 인터 예측 장치가 제공되며, 장치는:
처리될 픽처 블록의 모션 정보를 획득하도록 구성된 획득 모듈(1301) - 처리될 픽처 블록은 복수의 가상 파이프라인 데이터 단위를 포함하고, 가상 파이프라인 데이터 단위는 적어도 하나의 기본 처리 단위를 포함하며;
모션 정보에 기초하여 각 가상 파이프라인 데이터 단위의 예측자 행렬을 획득하도록 구성된 보상 모듈(1302);
각각의 예측자 행렬에 기초하여 각 가상 파이프라인 데이터 단위의 수평 예측 경사 행렬 및 수직 예측 경사 행렬을 계산하도록 구성된 계산 모듈(1303); 및
예측자 행렬, 수평 예측 경사 행렬 및 수직 예측 경사 행렬에 기초하여 각 가상 파이프라인 데이터 단위에서 각 기본 처리 단위의 모션 정보 정제 값을 계산하도록 구성된 미세 조정 모듈(1304)
을 포함한다.
실현 가능한 구현에서, 보상 모듈(1302)은 구체적으로: 모션 정보에 기초하여 각 가상 파이프라인 데이터 단위의 초기 예측 행렬을 획득하며, 여기서 초기 예측 행렬의 크기는 가상 파이프라인 데이터 단위의 크기와 동일하고; 초기 예측 행렬을 예측 행렬로 사용하도록 구성된다.
실현 가능한 구현에서, 보상 모듈(1302)은 구체적으로: 초기 예측 행렬의 에지에 대해 샘플 확장을 수행하여 확장된 예측 행렬을 획득하도록 구성되며, 여기서 확장된 예측 행렬의 크기는 초기 예측 행렬; 확장된 예측 행렬을 예측 행렬로 사용한다.
실현 가능한 구현에서, 보상 모듈(1302)은 구체적으로: 초기 예측 행렬에서 샘플의 샘플 값의 보간에 기초하여 초기 예측 행렬 외부의 샘플의 샘플 값을 획득하거나; 또는 초기 예측 행렬의 에지에 있는 샘플의 샘플 값을 초기 예측 행렬 밖에 있고 에지에 인접한 샘플의 샘플 값으로 사용하도록 구성된다.
실행 가능한 구현에서, 가상 파이프라인 데이터 단위는 복수의 모션 보상 단위를 포함하고, 보상 모듈은 구체적으로: 모션 정보에 기초하여 각 모션 보상 단위의 보상 값 행렬을 획득하고; 그리고 예측자 행렬을 획득하기 위해 복수의 모션 보상 단위의 보상 값 행렬을 결합하도록 구성된다.
실행 가능한 구현에서, 계산 모듈(1303)은 구체적으로 수평 예측 경사 행렬 및 수직 예측 경사 행렬을 얻기 위해 예측자 행렬에 대해 수평 경사 계산 및 수직 경사 계산을 개별적으로 수행하도록 구성된다.
실현 가능한 구현에서, 장치는 패딩 모듈(1305)을 더 포함하고, 패딩 모듈(1305)은: 패딩 예측 행렬을 획득하기 위해 예측자 행렬의 에지에 대해 샘플 확장을 수행하고, 여기서 패딩 예측 행렬은 미리 설정된 크기를 가지며; 패딩 수평 경사 행렬과 패딩 수직 경사 행렬을 얻기 위해 수평 예측 경사 행렬의 에지와 수직 예측 경사 행렬의 에지에 대해 개별적으로 경사 확장을 수행하며, 여기서 패딩 수평 경사 행렬과 패딩 수직 경사 행렬은 각각 미리 설정된 크기이며; 패딩 예측 행렬, 패딩 수평 경사 행렬 및 패딩 수직 경사 행렬에 기초하여 각 가상 파이프라인 데이터 단위에서 각각의 기본 처리 단위의 모션 정보 정제 값을 계산하도록 구성된다.
실현 가능한 구현에서, 장치는 예측자 행렬의 크기가 미리 설정된 크기보다 작다는 것을 결정하도록 구성된 결정 모듈(1306)을 더 포함한다.
실행 가능한 구현에서, 결정 모듈(1306)은 또한 수평 예측 경사 행렬의 크기 및/또는 수직 예측 경사 행렬의 크기가 미리 설정된 크기보다 작다는 것을 결정하도록 구성된다.
제7 관점의 실행 가능한 구현에서, 정제 모듈(1304)은 가상 파이프라인 데이터 단위의 예측자 행렬 및 각 기본 처리 단위의 모션 정보 정제 값에 기초하여 가상 파이프라인 데이터 단위에서 각 기본 처리 단위의 예측자를 획득하도록 추가로 구성된다.
실행 가능한 구현에서, 장치는 양방향 예측에 사용되고; 이에 대응하여, 모션 정보는 제1 참조 프레임 목록 모션 정보 및 제2 참조 프레임 목록 모션 정보를 포함하고; 예측자 행렬은 제1 예측자 행렬 및 제2 예측자 행렬을 포함하고, 제1 예측자 행렬은 제1 참조 프레임 목록 모션 정보에 기초하여 획득되고, 제2 예측자 행렬은 제2 참조 프레임 목록 모션 정보에 기초하여 획득되고; 수평 예측 경사 행렬은 제1 수평 예측 경사 행렬 및 제2 수평 예측 경사 행렬을 포함하고, 제1 수평 예측 경사 행렬은 제1 예측자 행렬에 기초하여 계산되고, 제2 수평 예측 경사 행렬은 제2 예측자 행렬에 기초하여 계산되고; 수직 예측 경사 행렬은 제1 수직 예측 경사 행렬 및 제2 수직 예측 경사 행렬을 포함하고, 제1 수직 예측 경사 행렬은 제1 예측자 행렬에 기초하여 계산되고, 제2 수직 예측 경사 행렬은 제2 예측자 행렬에 기초하여 계산되고; 모션 정보 정제 값은 제1 참조 프레임 목록 모션 정보 정제 값 및 제2 참조 프레임 목록 모션 정보 정제 값을 포함하고, 제1 참조 프레임 목록 모션 정보 정제 값은 제1 예측자 행렬, 제1 수평 예측 경사 행렬에 기초하여 계산되고, 제1 수직 예측 경사 행렬 및 제1 참조 프레임 목록 모션 정보 정제 값은 제1 예측자 행렬, 제1 수평 예측 경사 행렬 및 제2 수직 예측 경사 행렬에 기초하여 계산된다.
실행 가능한 구현에서, 결정 모듈(1306)은 처리될 픽처 블록이 위치하는 픽처 프레임의 시간 도메인 위치가 제1 참조 프레임 목록 모션 정보에 의해 표시된 제1 참조 프레임과 제2 참조 프레임 목록 모션 정보가 지시하는 제2 참조 프레임 사이에 위치하는지를 결정하도록 추가로 구성된다.
제7 관점의 실행 가능한 구현에서, 결정 모듈(1306)은 제1 예측자 행렬과 제2 예측자 행렬 사이의 차이가 제1 임계 값보다 작은지를 결정하도록 더 구성된다.
실행 가능한 구현에서, 결정 모듈(1306)은 제1 기본 예측자 행렬과 제2 기본 예측자 행렬 사이의 차이가 제2 임계 값보다 작다는 것을 결정하도록 추가로 구성된다.
가능한 구현에서, 기본 처리 단위의 크기는 4x4이다.
실현 가능한 구현에서, 가상 파이프라인 데이터 단위의 폭은 W이고, 가상 파이프라인 데이터 단위의 높이는 H이며, 확장된 예측 행렬의 크기는 (W+n+2)x(H+n+2)이다. 이에 따라 수평 예측 경사 행렬의 크기는 (W+n)x(H+n)이고 수직 예측 경사 행렬의 크기는 (W+n)(H+n)이며 여기서 W와 H는 양의 정수이고 n은 짝수이다.
실행 가능한 구현에서, n은 0, 2 또는 -2이다.
실행 가능한 구현에서, 결정 모듈(1306)은 처리될 픽처 블록이 복수의 가상 파이프라인 데이터 단위를 포함한다고 결정하도록 추가로 구성된다.
도 19는 본 출원의 실시예에 따른 방법의 개략적인 흐름도이다. 도면에 도시된 바와 같이, 인터 예측 장치(1400)가 제공되며, 장치는:
미리 설정된 픽처 분할 폭, 미리 설정된 픽처 분할 높이, 및 처리될 픽처 블록의 폭과 높이에 기초하여 처리될 픽처 블록에서 복수의 제1 픽처 블록을 결정하도록 구성된 결정 모듈(1401);
각각의 제1 픽처 블록의 예측자를 획득하기 위해 복수의 제1 픽처 블록에 대해 양방향 광 흐름 예측을 개별적으로 수행하도록 구성된 예측 모듈(1402); 및
복수의 제1 픽처 블록의 예측자의 조합으로 처리될 픽처 블록의 예측자를 획득하도록 구성된 조합 모듈(1403)
을 포함한다.
실행 가능한 구현에서, 결정 모듈(1401)은:
미리 설정된 픽처 분할 폭과 처리될 픽처 블록의 폭을 비교하여 제1 픽처 블록의 폭을 결정하고;
미리 설정된 픽처 분할 높이를 처리될 픽처 블록의 높이와 비교하여 제1 픽처 블록의 높이를 결정하고; 그리고
제1 픽처 블록의 폭 및 높이에 기초하여 처리될 픽처 블록에서 복수의 제1 픽처 블록을 결정하도록 구성된다.
실현 가능한 구현에서, 제1 픽처 블록의 폭은 미리 설정된 픽처 분할 폭과 처리될 픽처 블록의 폭 중에서 더 작은 값이고, 제1 픽처 블록의 높이는 미리 설정된 픽처 분할 높이와 처리될 픽처 블록의 높이 중 에서 더 작은 값이다.
실행 가능한 구현에서, 예측 모듈(1402)은:
처리될 픽처 블록의 모션 정보에 기초하여 제1 픽처 블록의 제1 예측 블록을 획득하고;
제1 픽처 블록의 제1 경사 행렬을 획득하기 위해 제1 예측 블록에 대해 경사 연산을 수행하고;
제1 예측 블록 및 제1 경사 행렬에 기초하여 제1 픽처 블록의 각 기본 처리 단위의 모션 정보 정제 값을 계산하고; 그리고
각각의 기본 처리 단위의 모션 정보 정제 값에 기초하여 제1 픽처 블록의 예측자를 획득하도록 구성된다.
실행 가능한 구현에서, 장치(1400)는 제1 확장 모듈(1404)을 더 포함한다.
제1 확장 모듈은: 제1 예측 블록의 블록 에지 위치의 샘플 값에 기초하여 제1 예측 블록의 폭 및 높이에 대해 제1 확장을 수행하여 제1 확장 이후에 획득된 제1 예측 블록이 각각 제1 픽처 블록의 폭 및 높이보다 큰 2 개의 샘플이 되도록 하고; 및/또는 제1 경사 행렬의 행렬 에지 위치의 경사에 기초하여 제1 경사 행렬의 폭 및 높이에 대해 제1 확장을 수행하여, 제1 확장 이후에 획득된 제1 경사 행렬의 폭 및 높이가 각각 제1 픽처 블록의 폭과 높이보다 큰 두 개의 샘플이 되도록 구성되며; 그리고
이에 대응하여, 예측 모듈(1402)은 제1 확장 이후에 획득된 제1 예측 블록 및/또는 제1 확장 이후에 획득된 제1 경사 행렬에 기초하여 제1 픽처 블록의 각 기본 처리 단위의 모션 정보 정제 값을 계산하도록 구성된다.
실행 가능한 구현에서, 장치는 제2 확장 모듈(1405)을 더 포함한다.
제2 확장 모듈은 제1 예측 블록의 블록 에지 영역의 샘플 값에 대해 보간 필터링을 수행하거나, 제1 예측 블록의 블록 에지 위치의 샘플 값을 복제하여 제1 예측 블록의 폭과 높이에 대한 확장을 수행하도록 구성된다.
이에 대응하여, 예측 모듈(1402)은 제2 확장 이후에 획득된 제1 예측 블록에 대해 경사 연산을 수행하도록 구성된다.
실현 가능한 구현에서, 제1 예측 블록은 순방향 예측 블록 및 역방향 예측 블록을 포함하고, 제1 경사 행렬은 순방향 수평 경사 행렬, 순방향 수직 경사 행렬, 역방향 수평 경사 행렬 및 역방향 수직 경사 행렬을 포함한다.
가능한 구현에서, 미리 설정된 픽처 분할 폭은 64, 32 또는 16이고, 미리 설정된 픽처 분할 높이는 64, 32 또는 16이다.
실현 가능한 구현에서, 기본 처리 단위는 4x4 샘플 행렬이다.
본 출원의 이 실시예에서, 결정 모듈은 미리 설정된 픽처 분할 폭, 미리 설정된 픽처 분할 높이 및 처리될 픽처 블록의 폭과 높이에 기초하여 처리될 픽처 블록에서 복수의 제1 픽처 블록을 결정한다. 따라서, 제1 픽처 블록의 크기는 미리 설정된 픽처 분할 폭과 미리 설정된 픽처 분할 높이에 의해 제한되고, 결정된 각 제1 픽처 블록의 면적이 그다지 크지 않아서 메모리 리소스와 같은 하드웨어 리소스가 더 적게 소모될 수 있고, 인터 예측 구현의 복잡성을 줄이고 처리 효율성을 향상시킬 수 있다.
당업자는 본 명세서에 개시되고 설명된 다양한 예시적인 논리 블록, 모듈 및 알고리즘 단계를 참조하여 설명된 기능이 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합에 의해 구현될 수 있음을 이해할 수 있다. 소프트웨어에 의해 구현되는 경우, 예시적인 논리 블록, 모듈 및 단계를 참조하여 설명된 기능은 하나 이상의 명령 또는 코드로서 컴퓨터 판독 가능 매체에 저장되거나 전송될 수 있으며 하드웨어 기반 처리 장치에 의해 실행될 수 있다. 컴퓨터 판독 가능 매체는 데이터 저장 매체와 같은 유형의 매체에 대응하는 컴퓨터 판독 가능 저장 매체를 포함할 수 있거나, (예를 들어, 통신 프로토콜에 따라) 한 장소에서 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 통신 매체를 포함할 수 있다. 따라서, 컴퓨터 판독 가능 매체는 일반적으로 (1) 비 일시적 유형의 컴퓨터 판독 가능 저장 매체 또는 (2) 신호 또는 캐리어와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는 본 출원에서 설명된 기술을 구현하기 위한 명령어, 코드 및/또는 데이터 구조를 검색하기 위해 하나 이상의 컴퓨터 또는 하나 이상의 프로세서에 의해 액세스될 수 있는 임의의 사용 가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 매체를 포함할 수 있다.
제한이 아닌 예로서, 이러한 컴퓨터 판독 가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 콤팩트디스크 저장 장치, 자기 디스크 저장 장치 또는 다른 자기 저장 장치를 포함할 수 있으며, 플래시 메모리 또는 원하는 프로그램 코드를 명령어 또는 데이터 구조의 형태로 저장하는 데 사용할 수 있고 컴퓨터에서 액세스할 수 있는 기타 매체를 포함할 수 있다. 또한 모든 연결을 컴퓨터 판독 가능형 매체라고 한다. 예를 들어 웹 사이트, 서버 또는 다른 원격 소스에서 동축 케이블, 광섬유, 트위스트 페어, 디지털 가입자 회선(digital subscriber line, DSL) 또는 적외선, 라디오와 같은 무선 기술을 통해 명령이 전송되는 경우 또는 마이크로파, 동축 케이블, 광섬유, 트위스트 페어, DSL 또는 적외선, 라디오 또는 마이크로파와 같은 무선 기술이 매체의 정의에 포함된다. 그러나 컴퓨터 판독 가능 저장 매체 및 데이터 저장 매체는 연결, 캐리어, 신호 또는 임의의 다른 일시적인 매체를 포함하지 않지만 실제로는 비 일시적 유형의 저장 매체로 향한다는 것을 이해해야 한다. 본 명세서에서 사용되는 디스크 및 디스크에는 컴팩트 디스크(CD), 레이저 디스크, 광 디스크, 디지털 다목적 디스크(DVD) 및 블루-레이(Blu-ray) 디스크가 포함된다. 디스크는 일반적으로 데이터를 자기적으로 재생하고 디스크는 레이저를 사용하여 데이터를 광학적으로 재생한다. 전술한 항목의 조합도 컴퓨터 판독 가능 매체의 범위 내에 있어야 한다.
명령은 하나 이상의 디지털 신호 프로세서(DSP), 범용 마이크로프로세서, 주문형 집적 회로(application-specific integrated circuits, ASIC), 필드 프로그래머블 게이트 어레이(field programmable gate arrays, FPGA) 또는 기타 등가의 통합 또는 이산 논리 회로와 같은 하나 이상의 프로세서에 의해 실행될 수 있다. 따라서, 본 명세서에서 사용되는 "프로세서"라는 용어는 전술한 구조 또는 본 명세서에 기술된 기술을 구현하기에 적합한 임의의 다른 구조일 수 있다. 또한, 일부 관점에서, 본 명세서에 설명된 예시적인 논리 블록, 모듈 및 단계를 참조하여 설명된 기능은 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈 내에 제공될 수 있거나, 결합된 코덱으로 통합될 수 있다. 또한, 기술은 모두 하나 이상의 회로 또는 논리 요소에서 구현될 수 있다.
본 출원의 기술은 무선 핸드셋, 집적 회로(IC) 또는 IC 세트(예를 들어, 칩셋)를 포함하는 다양한 장치 또는 장치에서 구현될 수 있다. 다양한 구성 요소, 모듈 또는 유닛이 본 출원에서 설명되어, 개시된 기술을 구현하도록 구성된 장치의 기능적 측면을 강조하는데, 이는 반드시 상이한 하드웨어 유닛에 의해 구현될 필요는 없다. 실제로, 위에서 설명된 바와 같이, 다양한 유닛은 적절한 소프트웨어 및/또는 펌웨어와 함께 코덱 하드웨어 유닛으로 결합될 수 있거나, 상호 운용 가능한 하드웨어 유닛(위에서 설명된 하나 이상의 프로세서 포함)에 의해 제공될 수 있다.
전술한 실시예에서, 각 실시예의 설명은 각각의 초점을 갖는다. 실시예에서 상세하게 설명되지 않은 부분에 대해서는 다른 실시예의 관련 설명을 참조한다.
전술한 설명은 본 출원의 특정 구현의 예일 뿐이며, 본 출원의 보호 범위를 제한하려는 의도는 아니다. 본 출원에 개시된 기술 범위 내에서 당업자에 의해 용이하게 파악되는 임의의 변형 또는 대체는 본 출원의 보호 범위 내에 속한다. 따라서 본 출원의 보호 범위는 청구 범위의 보호 범위에 따른다.

Claims (19)

  1. 인터 예측 방법으로서,
    미리 설정된 픽처 분할 폭, 미리 설정된 픽처 분할 높이, 및 처리될 픽처 블록의 폭과 높이에 기초하여 처리될 픽처 블록에서 복수의 제1 픽처 블록을 결정하는 단계;
    상기 복수의 제1 픽처 블록에 대해 양방향 광 흐름 예측(bi-directional optical flow prediction)을 개별적으로 수행하여 각각의 제1 픽처 블록의 예측자를 획득하는 단계; 및
    상기 복수의 제1 픽처 블록의 예측자의 조합으로 상기 처리될 픽처 블록의 예측자를 획득하는 단계
    를 포함하는 인터 예측 방법.
  2. 제1항에 있어서,
    미리 설정된 픽처 분할 폭, 미리 설정된 픽처 분할 높이, 및 처리될 픽처 블록의 폭과 높이에 기초하여 처리될 픽처 블록에서 복수의 제1 픽처 블록을 결정하는 단계는:
    상기 미리 설정된 픽처 분할 폭과 상기 처리될 픽처 블록의 폭을 비교하여 상기 제1 픽처 블록의 폭을 결정하는 단계;
    상기 미리 설정된 픽처 분할 높이와 상기 처리될 픽처 블록의 높이를 비교하여 상기 제1 픽처 블록의 높이를 결정하는 단계; 및
    상기 제1 픽처 블록의 폭 및 높이에 기초하여 상기 처리될 픽처 블록에서 상기 복수의 제1 픽처 블록을 결정하는 단계
    를 포함하는, 인터 예측 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 제1 픽처 블록의 폭은 상기 미리 설정된 픽처 분할 폭과 상기 처리될 픽처 블록의 폭에서 더 작은 값이고, 상기 제1 픽처 블록의 높이는 상기 미리 설정된 픽처 분할 높이와 상기 처리될 픽처 블록의 높이에서 더 작은 값인, 인터 예측 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 복수의 제1 픽처 블록에 대해 양방향 광 흐름 예측을 개별적으로 수행하여 각각의 제1 픽처 블록의 예측자를 획득하는 단계는:
    상기 처리될 픽처 블록의 모션 정보에 기초하여 상기 제1 픽처 블록의 제1 예측 블록을 획득하는 단계;
    상기 제1 픽처 블록의 제1 경사 행렬(gradient matrix)을 획득하기 위해 상기 제1 예측 블록에 대해 경사 연산을 수행하는 단계;
    상기 제1 예측 블록 및 상기 제1 경사 행렬에 기초하여 상기 제1 픽처 블록의 각 기본 처리 단위의 모션 정보 정제 값(motion information refinement value)을 계산하는 단계; 및
    각각의 기본 처리 단위의 모션 정보 정제 값에 기초하여 상기 제1 픽처 블록의 예측자를 획득하는 단계
    를 포함하는, 인터 예측 방법.
  5. 제4항에 있어서,
    상기 제1 예측 블록 및 상기 제1 경사 행렬에 기초하여 상기 제1 픽처 블록의 각 기본 처리 단위의 모션 정보 정제 값을 계산하는 단계 이전에, 상기 인터 예측 방법은:
    제1 확장 이후에 획득된 제1 예측 블록의 폭과 높이가 각각 상기 제1 픽처 블록의 폭과 높이보다 큰 2개의 샘플이 되도록 상기 제1 예측 블록의 블록 에지 위치의 샘플 값에 기초해서 상기 제1 예측 블록의 폭과 높이에 대해 제1 확장을 수행하는 단계; 및/또는
    제1 확장 이후에 획득된 제1 경사 행렬의 폭과 높이가 각각 제1 픽처 블록의 폭과 높이보다 큰 2 개의 샘플이 되도록 상기 제1 경사 행렬의 행렬 에지 위치의 경사에 기초해서 상기 제1 경사 행렬의 폭 및 높이에 대해 제1 확장을 수행하는 단계
    를 포함하며,
    이에 대응하여, 상기 제1 예측 블록 및 상기 제1 경사 행렬에 기초하여 상기 제1 픽처 블록의 각 기본 처리 단위의 모션 정보 정제 값을 계산하는 단계는:
    상기 제1 확장 이후에 획득된 제1 예측 블록 및/또는 상기 제1 확장 이후에 획득된 제1 경사 행렬에 기초하여 상기 제1 픽처 블록의 각 기본 처리 단위의 모션 정보 정제 값을 계산하는 단계
    를 포함하는, 인터 예측 방법.
  6. 제4항 또는 제5항에 있어서,
    상기 제1 예측 블록에 대해 경사 연산을 수행하는 단계 이전에, 상기 인터 예측 방법은:
    상기 제1 예측 블록의 블록 에지 영역의 샘플 값에 대해 보간 필터링을 수행하거나 상기 제1 예측 블록의 블록 에지 위치의 샘플 값을 복제하여 상기 제1 예측 블록의 폭 및 높이에 대한 제2 확장을 수행하는 단계
    를 더 포함하며,
    이에 대응하여, 상기 제1 예측 블록에 대해 경사 연산을 수행하는 단계는:
    상기 제2 확장 이후에 획득된 제1 예측 블록에 대해 경사 연산을 수행하는 단계
    를 포함하는, 인터 예측 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 제1 예측 블록은 순방향 예측 블록 및 역방향 예측 블록을 포함하고, 상기 제1 경사 행렬은 순방향 수평 경사 행렬, 순방향 수직 경사 행렬, 역방향 수평 경사 행렬 및 역방향 수직 경사 행렬을 포함하는, 인터 예측 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 미리 설정된 픽처 분할 폭은 64, 32 또는 16이고, 상기 미리 설정된 픽처 분할 높이는 64, 32 또는 16인, 인터 예측 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 기본 처리 단위는 4x4 샘플 행렬인, 인터 예측 방법.
  10. 인터 예측 장치로서,
    미리 설정된 픽처 분할 폭, 미리 설정된 픽처 분할 높이, 및 처리될 픽처 블록의 폭과 높이에 기초하여 처리될 픽처 블록에서 복수의 제1 픽처 블록을 결정하도록 구성되어 있는 결정 모듈;
    상기 복수의 제1 픽처 블록에 대해 양방향 광 흐름 예측(bi-directional optical flow prediction)을 개별적으로 수행하여 각각의 제1 픽처 블록의 예측자를 획득하도록 구성되어 있는 예측 모듈; 및
    상기 복수의 제1 픽처 블록의 예측자의 조합으로 상기 처리될 픽처 블록의 예측자를 획득하도록 구성되어 있는 조합 모듈
    을 포함하는 인터 예측 장치.
  11. 제10항에 있어서,
    상기 예측 모듈은:
    상기 미리 설정된 픽처 분할 폭과 상기 처리될 픽처 블록의 폭을 비교하여 상기 제1 픽처 블록의 폭을 결정하고;
    상기 미리 설정된 픽처 분할 높이와 상기 처리될 픽처 블록의 높이를 비교하여 상기 제1 픽처 블록의 높이를 결정하며; 그리고
    상기 제1 픽처 블록의 폭 및 높이에 기초하여 상기 처리될 픽처 블록에서 상기 복수의 제1 픽처 블록을 결정하도록 구성되어 있는, 인터 예측 장치.
  12. 제10항 또는 제11항에 있어서,
    상기 제1 픽처 블록의 폭은 상기 미리 설정된 픽처 분할 폭과 상기 처리될 픽처 블록의 폭에서 더 작은 값이고, 상기 제1 픽처 블록의 높이는 상기 미리 설정된 픽처 분할 높이와 상기 처리될 픽처 블록의 높이에서 더 작은 값인, 인터 예측 장치.
  13. 제10항 내지 제12항 중 어느 한 항에 있어서,
    상기 예측 모듈은:
    상기 처리될 픽처 블록의 모션 정보에 기초하여 상기 제1 픽처 블록의 제1 예측 블록을 획득하고;
    상기 제1 픽처 블록의 제1 경사 행렬(gradient matrix)을 획득하기 위해 상기 제1 예측 블록에 대해 경사 연산을 수행하고;
    상기 제1 예측 블록 및 상기 제1 경사 행렬에 기초하여 상기 제1 픽처 블록의 각 기본 처리 단위의 모션 정보 정제 값을 계산하며; 그리고
    각각의 기본 처리 단위의 모션 정보 정제 값에 기초하여 상기 제1 픽처 블록의 예측자를 획득하도록 구성되어 있는, 인터 예측 장치.
  14. 제13항에 있어서,
    상기 인터 예측 장치는 제1 확장 모듈을 더 포함하며,
    상기 제1 확장 모듈은: 제1 확장 이후에 획득된 제1 예측 블록의 폭과 높이가 각각 상기 제1 픽처 블록의 폭과 높이보다 큰 2개의 샘플이 되도록 상기 제1 예측 블록의 블록 에지 위치의 샘플 값에 기초해서 상기 제1 예측 블록의 폭과 높이에 대해 제1 확장을 수행하며; 및/또는 제1 확장 이후에 획득된 제1 경사 행렬의 폭과 높이가 각각 제1 픽처 블록의 폭과 높이보다 큰 2 개의 샘플이 되도록 상기 제1 경사 행렬의 행렬 에지 위치의 경사에 기초해서 상기 제1 경사 행렬의 폭 및 높이에 대해 제1 확장을 수행하도록 구성되어 있으며,
    이에 대응하여, 상기 예측 모듈은 상기 제1 확장 이후에 획득된 제1 예측 블록 및/또는 상기 제1 확장 이후에 획득된 제1 경사 행렬에 기초하여 상기 제1 픽처 블록의 각 기본 처리 단위의 모션 정보 정제 값을 계산하도록 구성되어 있는, 인터 예측 장치.
  15. 제13항 또는 제14항에 있어서,
    상기 인터 예측 장치는 제2 확장 모듈을 더 포함하며,
    상기 제2 확장 모듈은: 상기 제1 예측 블록의 블록 에지 영역의 샘플 값에 대해 보간 필터링을 수행하거나 상기 제1 예측 블록의 블록 에지 위치의 샘플 값을 복제하여 상기 제1 예측 블록의 폭 및 높이에 대한 제2 확장을 수행하도록 구성되어 있으며,
    이에 대응하여, 상기 예측 모듈은 상기 제2 확장 이후에 획득된 제1 예측 블록에 대해 경사 연산을 수행하도록 구성되어 있는, 인터 예측 장치.
  16. 제10항 내지 제15항 중 어느 한 항에 있어서,
    상기 제1 예측 블록은 순방향 예측 블록 및 역방향 예측 블록을 포함하고, 상기 제1 경사 행렬은 순방향 수평 경사 행렬, 순방향 수직 경사 행렬, 역방향 수평 경사 행렬 및 역방향 수직 경사 행렬을 포함하는, 인터 예측 장치.
  17. 제10항 내지 제16항 중 어느 한 항에 있어서,
    상기 미리 설정된 픽처 분할 폭은 64, 32 또는 16이고, 상기 미리 설정된 픽처 분할 높이는 64, 32 또는 16인, 인터 예측 장치.
  18. 제10항 내지 제17항 중 어느 한 항에 있어서,
    상기 기본 처리 단위는 4x4 샘플 행렬인, 인터 예측 장치.
  19. 인터 예측 장치로서,
    비 휘발성 메모리 및 상기 비 휘발성 메모리와 서로 결합된 프로세서를 포함하며, 상기 프로세서는 상기 메모리에 저장되어 있는 프로그램 코드를 불러내어 제1항 내지 제9항 중 어느 한 항에 따른 방법을 수행하는, 인터 예측 장치.
KR1020217021694A 2018-12-13 2019-12-03 인터 예측 방법 및 장치 KR20210096282A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201811530481 2018-12-13
CN201811530481.1 2018-12-13
CN201910325612.0 2019-04-22
CN201910325612.0A CN111327907B (zh) 2018-12-13 2019-04-22 一种帧间预测的方法、装置、设备及存储介质
PCT/CN2019/122735 WO2020119525A1 (zh) 2018-12-13 2019-12-03 一种帧间预测的方法及装置

Publications (1)

Publication Number Publication Date
KR20210096282A true KR20210096282A (ko) 2021-08-04

Family

ID=71170893

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217021694A KR20210096282A (ko) 2018-12-13 2019-12-03 인터 예측 방법 및 장치

Country Status (10)

Country Link
US (1) US20210306644A1 (ko)
EP (1) EP3890325A4 (ko)
JP (2) JP7384908B2 (ko)
KR (1) KR20210096282A (ko)
CN (4) CN111327907B (ko)
AU (2) AU2019397944B2 (ko)
BR (1) BR112021011307A2 (ko)
CA (1) CA3122618A1 (ko)
MX (1) MX2021006787A (ko)
SG (1) SG11202105848YA (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113228681A (zh) * 2018-12-21 2021-08-06 韩国电子通信研究院 图像编码/解码方法和装置以及存储比特流的记录介质
CN112004091B (zh) * 2020-07-31 2021-08-03 浙江大华技术股份有限公司 帧间预测方法及其相关装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8767823B2 (en) * 2011-03-30 2014-07-01 Industrial Technology Research Institute Method and apparatus for frame memory compression
MX2021012481A (es) * 2016-03-16 2022-05-30 Hfi Innovation Inc Metodo y aparato de procesamiento de datos de video con tama?o restringido de bloque en codificacion de video.
US20180199057A1 (en) * 2017-01-12 2018-07-12 Mediatek Inc. Method and Apparatus of Candidate Skipping for Predictor Refinement in Video Coding
CN116866585A (zh) * 2017-05-17 2023-10-10 株式会社Kt 对图像解码和编码的方法以及存储压缩视频数据的装置

Also Published As

Publication number Publication date
SG11202105848YA (en) 2021-07-29
JP2024014927A (ja) 2024-02-01
JP2022513814A (ja) 2022-02-09
CN111327907A (zh) 2020-06-23
US20210306644A1 (en) 2021-09-30
EP3890325A4 (en) 2022-04-20
AU2019397944A1 (en) 2021-06-24
CA3122618A1 (en) 2020-06-18
AU2019397944B2 (en) 2023-11-23
EP3890325A1 (en) 2021-10-06
JP7384908B2 (ja) 2023-11-21
MX2021006787A (es) 2021-07-15
CN112088534B (zh) 2022-02-15
CN112088534A (zh) 2020-12-15
CN111327907B (zh) 2022-11-22
CN115834903A (zh) 2023-03-21
BR112021011307A2 (pt) 2021-08-31
CN115834904A (zh) 2023-03-21
AU2024200854A1 (en) 2024-02-29

Similar Documents

Publication Publication Date Title
KR20210072064A (ko) 인터 예측 방법 및 장치
KR102621958B1 (ko) 후보 모션 벡터 리스트 획득 방법, 장치, 인코더 및 디코더
CN113196748B (zh) 帧内预测方法及相关装置
EP4346212A2 (en) Video picture decoding and encoding method and apparatus
EP3955576A1 (en) Inter-frame prediction method and device
JP2022535859A (ja) Mpmリストを構成する方法、クロマブロックのイントラ予測モードを取得する方法、および装置
JP2024014927A (ja) インター予測方法および装置
JP2024037999A (ja) ビデオエンコーダ、ビデオデコーダ、及び対応する方法
KR20210107109A (ko) 인터 프레임 예측 방법, 디바이스, 및 대응하는 인코더 및 디코더
CN114079786A (zh) 一种帧间预测的方法和装置
CN112135137B (zh) 视频编码器、视频解码器及相应方法
CN111432219B (zh) 一种帧间预测方法及装置
KR20220003021A (ko) 픽처 예측 방법 및 장치, 및 컴퓨터 판독 가능형 저장 매체
CN113366850B (zh) 视频编码器、视频解码器及相应方法
CN111405277B (zh) 帧间预测方法、装置以及相应的编码器和解码器
WO2020119525A1 (zh) 一种帧间预测的方法及装置
CN118075484A (zh) 基于三角预测单元模式的处理方法及装置
CN118118688A (zh) 基于三角预测单元模式的处理方法及装置
CN111726630A (zh) 基于三角预测单元模式的处理方法及装置

Legal Events

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