KR20200038944A - 이미지 인코더, 이미지 디코더, 이미지 인코딩 방법 및 이미지 디코딩 방법 - Google Patents

이미지 인코더, 이미지 디코더, 이미지 인코딩 방법 및 이미지 디코딩 방법 Download PDF

Info

Publication number
KR20200038944A
KR20200038944A KR1020207004700A KR20207004700A KR20200038944A KR 20200038944 A KR20200038944 A KR 20200038944A KR 1020207004700 A KR1020207004700 A KR 1020207004700A KR 20207004700 A KR20207004700 A KR 20207004700A KR 20200038944 A KR20200038944 A KR 20200038944A
Authority
KR
South Korea
Prior art keywords
partition
block
motion vector
parameter
prediction
Prior art date
Application number
KR1020207004700A
Other languages
English (en)
Inventor
기요후미 아베
다카히로 니시
다다마사 도마
류이치 가노
총 순 림
루 링 리아오
하이 웨이 순
스고슈 빠반 샤시다
한 분 테오
징 야 리
Original Assignee
파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 filed Critical 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카
Publication of KR20200038944A publication Critical patent/KR20200038944A/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/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
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting 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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • 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

Abstract

회로 및 회로에 연결된 메모리를 포함하는 이미지 인코더가 제공된다. 회로는 동작시에, 분할을 나타내는 파티션 파라미터를 기초하여 이미지 블록을 비직사각형 형상(즉, 삼각형 형상)을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 단계; 상기 제1 파티션 및 상기 제2 파티션을 인코딩하는 단계; 및 상기 파티션 파라미터를 포함하는 하나 이상의 파라미터를 비트스트림에 기록하는 단계를 포함하는 파티션 신택스 동작을 수행한다.

Description

이미지 인코더, 이미지 디코더, 이미지 인코딩 방법 및 이미지 디코딩 방법
본 개시는 비디오 코딩에 관한 것으로, 특히 참조 프레임에 기초하여 커런트 블록을 구축하기 위한 인터 예측 기능 또는 커런트 프레임에서 인코딩/디코딩된 참조 블록에 기초하여 커런트 블록을 구축하기 위한 인트라 예측 기능을 수행하는 비디오 인코딩 및 디코딩 시스템, 컴포넌트 및 방법에 관한 것이다.
H.261 및 MPEG-1에서 H.264/AVC(Advanced Video Coding), MPEG-LA, H.265/HEVC(High Efficiency Video Coding) 및 H.266/VVC(Versatile Video Coding)에 이르는 비디오 코딩 기술의 발전으로, 다양한 응용에서 점점 더 많은 양의 디지털 비디오 데이터를 처리하기 위해 비디오 코딩 기술에 대한 개선 및 최적화를 지속적으로 제공할 필요가 있다. 본 개시는 비디오 코딩에서의 추가의 개선, 개선 및 최적화에 관한 것으로, 특히 인터 예측 기능 또는 인트라 예측 기능과 관련하여, 이미지 블록을 비직사각형 형상(예: 삼각형)을 갖는 적어도 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 것에 관한 것이다.
일 양태에 따르면, 회로 및 회로에 연결된 메모리를 포함하는 이미지 인코더가 제공된다. 회로는 동작시에, 분할을 나타내는 파티션 파라미터를 기초하여 이미지 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 단계; 제1 파티션 및 제2 파티션을 인코딩하는 단계; 및 파티션 파라미터를 포함하는 하나 이상의 파라미터를 비트스트림에 기록하는 단계를 포함하는 파티션 신택스 동작을 수행한다.
본 개시의 실시예들의 일부 구현들은 인코딩 효율을 개선할 수 있고, 단순히 인코딩/디코딩 프로세스일 수 있고, 인코딩/디코딩 프로세스 속도를 가속화할 수 있으며, 인코딩 및 디코딩에 사용되는 적절한 필터, 블록 크기, 모션 벡터, 참조 픽처, 참조 블록 등과 같은 적절한 컴포넌트/동작을 효율적으로 선택할 수 있다.
개시된 실시예의 추가 장점 및 장점은 명세서 및 도면으로부터 명백해질 것이다. 이점 및/또는 장점은 명세서 및 도면의 다양한 실시예 및 특징에 의해 개별적으로 얻어질 수 있지만, 이러한 장점 및/또는 장점 중 하나 이상을 얻기 위해 모두 제공될 필요는 없다.
일반적인 또는 특정 실시예는 시스템, 방법, 집적 회로, 컴퓨터 프로그램, 저장 매체, 또는 이들의 임의의 선택적인 조합으로 구현될 수 있음에 유의해야 한다.
도 1은 일 실시예에 따른 인코더의 기능 구성을 나타내는 블록도이다.
도 2는 블록 분할의 일례를 도시한다.
도 3은 다양한 변환 타입의 변환 기저 함수를 나타내는 테이블이다.
도 4a는 ALF(adaptive loop filter)에 사용되는 필터 형상의 일례를 도시한다.
도 4b는 ALF에서 사용되는 필터 형상의 다른 예를 도시한다.
도 4c는 ALF에서 사용되는 필터 형상의 다른 예를 도시한다.
도 5a는 인트라 예측의 예에서 사용되는 67 개의 인트라 예측 모드를 도시한다.
도 5b는 OBMC(overlapped block motion compensation) 처리에서 수행되는 예측 이미지 보정 프로세스의 일례를 도시한 흐름도이다.
도 5c는 OBMC 처리에서 수행되는 예측 이미지 보정 처리의 일례를 나타내는 개념도이다.
도 5d는 FRUC(frame rate up conversion) 처리의 일례를 나타내는 흐름도이다.
도 6은 모션 궤적을 따라 두 블록 사이의 패턴 매칭(양방향 매칭)의 일례를 도시한다.
도 7은 커런트 픽처 내의 템플릿과 참조 픽처 내의 블록 사이의 패턴 매칭(템플릿 매칭)의 일례를 도시한다.
도 8은 균일한 선형 모션을 가정하는 모델을 도시한다.
도 9a는 인접한 블록의 모션 벡터에 기초하여 각 서브 블록의 모션 벡터를 도출하는 일례를 도시한 것이다.
도 9b는 머지 모드에서 모션 벡터를 도출하기 위한 프로세스의 일례를 도시한다.
도 9c는 DMVR(dynamic motion vector refreshing) 처리의 예를 나타내는 개념도이다.
도 9d는 LIC(local illumination compensation) 처리에 의해 수행되는 휘도 보정 처리를 이용한 예측 이미지 생성 방법의 일례를 도시한다.
도 10은 일 실시예에 따른 디코더의 기능적 구성을 나타내는 블록도이다.
도 11은 이미지 블록을 비직사각형 형상(예를 들어, 삼각형)을 갖는 적어도 하나의 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하고 일 실시예에 따른 추가 처리를 수행하는 전체 프로세스 흐름을 도시하는 흐름도이다.
도 12는 이미지 블록을 비직사각형 형상(예를 들어, 삼각형)을 갖는 제1 파티션 및 제2 파티션(도시된 예에서 비직사각형 형상을 또한 갖는)으로 분할하는 2 개의 예시적인 방법을 도시한다.
도 13은 제1 파티션에 기초하여 예측된 경계 픽셀의 제1 값 및 제2 파티션에 기초하여 예측된 경계 픽셀의 제2 값을 가중하는 것을 포함하는 경계 평활화 프로세스의 일례를 도시한다.
도 14는 제1 파티션에 기초하여 예측된 경계 픽셀의 제1 값 및 제2 파티션에 기초하여 예측된 경계 픽셀의 제2 값을 가중하는 것을 포함하는 경계 평활화 프로세스의 3 개의 추가 샘플을 도시한다.
도 15는 샘플 파라미터("제1 인덱스 값") 및 파라미터에 의해 각각 인코딩된 정보 세트의 테이블이다.
도 16은 파라미터의 이진화(인덱스 값)를 나타내는 표이다.
도 17은 비직사각형 형상의 제1 파티션과 제2 파티션을 포함하는 이미지 블록을 복수의 파티션으로 분할하는 과정을 나타내는 흐름도이다.
도 18은 이미지 블록을 예시된 예에서 삼각형인 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 예를 도시한다.
도 19는 이미지 블록을 예시된 예에서 적어도 5 개의 측면 및 각을 갖는 다각형인 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 추가 예를 도시한다.
도 20은 제1 파티션에 기초하여 예측된 경계 픽셀의 제1 값 및 제2 파티션에 기초하여 예측된 경계 픽셀의 제2 값을 가중하는 것을 포함하는 경계 평활화 프로세스를 도시하는 흐름도이다.
도 21a는 제1 파티션에 기초하여 가중될 경계 픽셀의 제1 값들이 예측되고 제2 파티션에 기초하여 가중될 경계 픽셀의 제2 값들이 예측되는 경계 평활화 프로세스의 예를 도시한다.
도 21b는 제1 파티션에 기초하여 가중될 경계 픽셀의 제1 값들이 예측되고 제2 파티션에 기초하여 가중될 경계 픽셀의 제2 값들이 예측되는 경계 평활화 프로세스의 예를 도시한다.
도 21c는 제1 파티션에 기초하여 가중될 경계 픽셀의 제1 값들이 예측되고 제2 파티션에 기초하여 가중될 경계 픽셀의 제2 값들이 예측되는 경계 평활화 프로세스의 예를 도시한다.
도 21d는 제1 파티션에 기초하여 가중될 경계 픽셀의 제1 값들이 예측되고 제2 파티션에 기초하여 가중될 경계 픽셀의 제2 값들이 예측되는 경계 평활화 프로세스의 예를 도시한다.
도 22는 분할을 나타내는 파티션 파라미터에 기초하여, 비직사각형 형상을 갖는 제1 파티션과 제2 파티션을 포함하는 복수의 파티션으로 이미지 블록을 분할하고 또한 파티션 파라미터를 포함하는 하나 이상의 파라미터를 엔트로피 인코딩에서 비트스트림에 기록하는 인코더측에서 수행되는 방법을 도시하는 흐름도이다.
도 23은 비트스트림으로부터 이미지 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 것을 나타내는 파티션 파라미터를 포함하는 하나 이상의 파라미터를 파싱하고, 파티션 파라미터를 기초하여 이미지 블록을 복수의 파티션으로 분할하고, 제1 파티션 및 제2 파티션을 디코딩하는 디코더 측에서 수행되는 방법을 예시하는 흐름도이다.
도 24는 이미지 블록이 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로의 분할을 나타내는 샘플 파티션 파라미터("제1 인덱스 값") 및 파티션 파라미터에 의해 공동으로 인코드될 수 있는 정보 세트의 테이블이다.
도 25는 제1 파라미터 및 제2 파라미터의 샘플 조합의 테이블로서, 그 중 하나는 이미지 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 것을 나타내는 파티션 파라미터이다.
도 26은 컨텐츠 배포 서비스를 구현하기 위한 컨텐츠 제공 시스템의 전체 구성을 나타낸다.
도 27은 스케일러블 인코딩 시의 인코딩 구조의 일례를 도시한다.
도 28은 스케일러블 인코딩 시의 인코딩 구조의 일례를 도시한다.
도 29는 웹 페이지의 표시 화면의 예를 도시한다.
도 30은 웹 페이지의 표시 화면의 예를 도시한다.
도 31은 스마트폰의 일례를 도시한 것이다.
도 32는 스마트폰의 구성예를 나타내는 블록도이다.
일 양태에 따르면, 회로 및 회로에 연결된 메모리를 포함하는 이미지 인코더가 제공된다. 회로는 동작시에, 이미지 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 단계; 상기 제1 파티션에 대한 제1 모션 벡터 및 상기 제2 파티션에 대한 제2 모션 벡터를 예측하는 단계; 및 상기 제1 모션 벡터를 사용하여 상기 제1 파티션을 인코딩하고 상기 제2 모션 벡터를 사용하여 상기 제2 파티션을 인코딩하는 단계를 수행한다.
다른 양태에 따르면, 제2 파티션은 비직사각형 형상을 갖는다. 다른 양태에 따르면, 비직사각형 형상은 삼각형이다. 다른 양태에 따르면, 비직사각형 형상은 삼각형, 사다리꼴, 및 적어도 5 개의 변 및 각을 갖는 다각형으로 구성된 그룹으로부터 선택된다.
다른 양태에 따르면, 예측은 제1 세트의 모션 벡터 후보들로부터 제1 모션 벡터를 선택하고 제2 세트의 모션 벡터 후보들로부터 제2 모션 벡터를 선택하는 것을 포함한다. 예를 들어, 제1 세트의 모션 벡터 후보는 제1 파티션에 인접한 파티션의 모션 벡터를 포함할 수 있고, 제2 세트의 모션 벡터 후보는 제2 파티션에 인접한 파티션의 모션 벡터를 포함할 수 있다. 제1 파티션에 인접한 파티션 및 제2 파티션에 인접한 파티션은 제1 파티션 및 제2 파티션이 분할된 이미지 블록의 외부에 있을 수 있다. 인접한 파티션은 공간적으로 인접한 파티션 및 시간적으로 인접한 파티션 중 하나 또는 둘 모두 일 수 있다. 제1 세트의 모션 벡터 후보는 제2 세트의 모션 벡터 후보와 동일하거나 상이할 수 있다.
다른 양태에 따르면, 예측은, 제1 세트의 모션 벡터 후보들로부터 제1 모션 벡터 후보를 선택하고 제1 모션 벡터 차이를 제1 모션 벡터 후보에 추가함으로써 제1 모션 벡터를 도출하고, 또한 제2 세트의 모션 벡터 후보들로부터 제2 모션 벡터 후보를 선택하고 제2 모션 벡터 차이를 제2 모션 벡터 후보에 추가함으로써 제2 모션 벡터를 도출하는 단계를 포함한다.
다른 양태에 따르면, 이미지 인코더가 제공되며, 이미지 인코더는 동작시, 오리지널 픽처를 수신하여 블록들로 분할하는 스플리터; 동작시, 스플리터로부터 블록 및 예측 컨트롤러로부터 예측을 수신하고, 대응하는 블록으로부터 각각의 예측을 감산하여 잔차를 출력하는 가산기; 동작시에, 가산기로부터 출력된 잔차에 대해 변환을 수행하여 변환 계수를 출력하는 변환기; 동작시에, 변환 계수를 양자화하여 양자화된 변환 계수를 생성하는 양자화기; 동작시, 양자화된 변환 계수를 인코딩하여 비트스트림을 생성하는 엔트로피 인코더; 및 인터 예측기, 인트라 예측기 및 메모리에 결합된 예측 컨트롤러를 포함하며, 인터 예측기는 동작시 인코딩된 참조 픽처의 참조 블록에 기초하여 커런트 블록의 예측을 생성하고, 인트라 예측기는 커런트 픽처에서 인코딩된 참조 블록에 기초하여 커런트 블록의 예측을 생성한다. 예측 컨트롤러는 동작시 블록들을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션들로 분할하고; 제1 파티션에 대한 제1 모션 벡터 및 제2 파티션에 대한 제2 모션 벡터를 예측하고; 그리고 상기 제1 모션 벡터를 사용하여 상기 제1 파티션을 인코딩하고 상기 제2 모션 벡터를 사용하여 상기 제2 파티션을 인코딩한다.
다른 양태에 따르면, 이미지 인코딩 방법이 제공되며, 일반적으로 3 개의 단계: 이미지 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 단계; 상기 제1 파티션에 대한 제1 모션 벡터 및 상기 제2 파티션에 대한 제2 모션 벡터를 예측하는 단계; 및 상기 제1 모션 벡터를 사용하여 상기 제1 파티션을 인코딩하고 상기 제2 모션 벡터를 사용하여 상기 제2 파티션을 인코딩하는 단계를 포함한다.
다른 양태에 따르면, 회로 및 회로에 연결된 메모리를 포함하는 이미지 디코더가 제공된다. 회로는 동작시에, 이미지 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 단계; 상기 제1 파티션에 대한 제1 모션 벡터 및 상기 제2 파티션에 대한 제2 모션 벡터를 예측하는 단계; 및 상기 제1 모션 벡터를 사용하여 상기 제1 파티션을 디코딩하고 상기 제2 모션 벡터를 사용하여 상기 제2 파티션을 디코딩하는 단계를 수행한다.
다른 양태에 따르면, 제2 파티션은 비직사각형 형상을 갖는다. 다른 양태에 따르면, 비직사각형 형상은 삼각형이다. 다른 양태에 따르면, 비직사각형 형상은 삼각형, 사다리꼴, 및 적어도 5 개의 변 및 각을 갖는 다각형으로 구성된 그룹으로부터 선택된다.
다른 양태에 따르면, 이미지 디코더가 제공되며, 동작시, 양자화된 변환 계수를 획득하기 위하여 인코딩된 비트스트림을 수신 및 디코딩하는 엔트로피 디코더; 동작시, 변환 계수를 획득하기 위하여 양자화된 변환 계수를 역 양자화하고, 잔차를 획득하기 위하여 변환 계수를 역변환하는 역 양자화기 및 변환기; 동작시, 역 양자화기 및 변환기로부터 출력된 잔차 및 예측 컨트롤러로부터 출력된 예측을 가산하여 블록을 재구성하는 가산기; 인터 예측기, 인트라 예측기 및 메모리에 결합된 예측 컨트롤러를 포함하며, 인터 예측기, 인트라 예측기, 및 메모리에 결합된 예측 컨트롤러를 포함하며, 상기 인트라 예측기는 동작시 디코딩된 참조 픽처의 참조 블록에 기초하여 커런트 블록의 예측을 생성하고, 상기 인트라 예측기는 동작시 커런트 픽처 내의 디코딩된 참조 블록에 기초하여 커런트 블록의 예측을 생성한다. 예측 컨트롤러는 동작시에 이미지 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하고; 제1 파티션에 대한 제1 모션 벡터 및 제2 파티션에 대한 제2 모션 벡터를 예측하고; 제1 모션 벡터를 사용하여 제1 파티션을 디코딩하고, 제2 모션 벡터를 사용하여 제2 파티션을 디코딩한다.
다른 양태에 따르면, 이미지 디코딩 방법이 제공되며, 일반적으로 3 개의 단계: 이미지 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 단계; 상기 제1 파티션에 대한 제1 모션 벡터 및 상기 제2 파티션에 대한 제2 모션 벡터를 예측하는 단계; 및 상기 제1 모션 벡터를 사용하여 상기 제1 파티션을 디코딩하고 상기 제2 모션 벡터를 사용하여 상기 제2 파티션을 디코딩하는 단계를 포함한다.
일 양태에 따르면, 회로 및 회로에 연결된 메모리를 포함하는 이미지 인코더가 제공된다. 동작시, 회로는 비직사각형 형상을 갖는 제1 파티션과 이미지 블록으로부터 분리된 제2 파티션 사이의 경계를 따라 경계 평활화 동작을 수행한다. 경계 평활화 동작은: 제1 파티션의 정보를 이용하여, 경계를 따라 제1 파티션의 픽셀 세트의 제1 값을 제1 예측하는 단계; 상기 제2 파티션의 정보를 이용하여 상기 경계를 따라 상기 제1 파티션의 픽셀 세트의 제2 값을 제2 예측하는 단계; 제1 값과 제2 값을 가중시키는 단계; 및 가중된 제1 값 및 가중된 제2 값을 사용하여 제1 파티션을 인코딩하는 단계를 포함한다.
다른 양태에 따르면, 비직사각형 형상은 삼각형이다. 다른 양태에 따르면, 비직사각형 형상은 삼각형, 사다리꼴, 및 적어도 5 개의 변 및 각을 갖는 다각형으로 구성된 그룹으로부터 선택된다. 또 다른 양태에 따르면, 제2 파티션은 비직사각형 형상을 갖는다.
다른 양태에 따르면, 제1 예측 및 제2 예측 중 적어도 하나는 인코딩된 참조 픽처에서의 참조 파티션에 기초하여 제1 값 및 제2 값을 예측하는 인터 예측 프로세스이다. 인터 예측 프로세스는 픽셀 세트를 포함하는 제1 파티션의 픽셀의 제1 값을 예측하고 제1 파티션의 픽셀 세트만의 제2 값을 예측할 수 있다.
다른 양태에 따르면, 제1 예측 및 제2 예측 중 적어도 하나는 커런트 픽처에서의 인코딩된 참조 파티션에 기초하여 제1 값 및 제2 값을 예측하는 인트라 예측 프로세스이다.
다른 양태에 따르면, 제1 예측에 사용된 예측 방법은 제2 예측에 사용된 예측 방법과 상이하다.
다른 양태에 따르면, 제1 값 및 제2 값이 예측되는 각 행 또는 각 열의 픽셀 세트의 수는 정수이다. 예를 들어, 각 행 또는 각 열의 픽셀 세트의 수가 4 인 경우, 1/8, 1/4, 3/4 및 7/8의 가중치는 세트 내의 4 개의 픽셀의 제1 값에 적용될 수 있고, 7/8, 3/4, 1/4 및 1/8의 가중치는 세트 내의 4 개의 픽셀의 제2 값에 각각 적용될 수 있다. 다른 예로서, 각 행 또는 각 열의 픽셀 세트의 수가 2 인 경우, 각각 1/3 및 2/3의 가중치가 세트 내의 2 개의 픽셀의 제1 값에 적용될 수 있고, 2/3 및 1/3의 가중치가 세트 내의 2 개의 픽셀의 제2 값에 각각 적용될 수 있다.
다른 양태에 따르면, 가중치는 정수 값일 수 있거나 분수 값일 수 있다.
다른 양태에 따르면, 이미지 인코더가 제공되며, 동작시, 오리지널 픽처를 수신하여 블록들로 분할하는 스플리터; 동작시, 스플리터로부터 블록 및 예측 컨트롤러로부터 예측을 수신하고, 대응하는 블록으로부터 각각의 예측을 감산하여 잔차를 출력하는 가산기; 동작시에, 가산기로부터 출력된 잔차에 대해 변환을 수행하여 변환 계수를 출력하는 변환기; 동작시에, 변환 계수를 양자화하여 양자화된 변환 계수를 생성하는 양자화기; 동작시, 양자화된 변환 계수를 인코딩하여 비트스트림을 생성하는 엔트로피 인코더; 인터 예측기, 인트라 예측기 및 메모리에 결합된 예측 컨트롤러를 포함하며, 인터 예측기는 동작시 인코딩된 참조 픽처의 참조 블록에 기초하여 커런트 블록의 예측을 생성하고, 인트라 예측기는 동작시 커런트 픽처의 인코딩된 참조 블록에 기초하여 커런트 블록의 예측을 생성한다. 예측 컨트롤러는 동작시에 비직사각형 형상을 갖는 제1 파티션과 이미지 블록으로부터 분리된 제2 파티션 사이의 경계를 따라 경계 평활화 동작을 수행한다. 경계 평활화 동작은: 제1 파티션의 정보를 이용하여, 경계를 따라 제1 파티션의 픽셀 세트의 제1 값을 제1 예측하는 단계; 상기 제2 파티션의 정보를 이용하여 상기 경계를 따라 상기 제1 파티션의 픽셀 세트의 제2 값을 제2 예측하는 단계; 제1 값과 제2 값을 가중시키는 단계; 및 가중된 제1 값 및 가중된 제2 값을 사용하여 제1 파티션을 인코딩하는 단계를 포함한다.
다른 양태에 따르면, 이미지 인코딩 방법이 비직사각형 제1 파티션과 이미지 블록으로부터 분리된 제2 파티션 사이의 경계를 따라 경계 평활화 동작을 수행하기 위해 제공된다. 이 방법은 일반적으로 4 개의 단계를 포함한다: 제1 파티션의 정보를 이용하여 경계를 따라 제1 파티션의 픽셀 세트의 제1 값을 제1 예측하는 단계; 상기 제2 파티션의 정보를 이용하여 상기 경계를 따라 상기 제1 파티션의 픽셀 세트의 제2 값을 제2 예측하는 단계; 제1 값과 제2 값을 가중시키는 단계; 및 가중된 제1 값 및 가중된 제2 값을 사용하여 제1 파티션을 인코딩하는 단계를 포함한다.
다른 양태에 따르면, 회로 및 회로에 연결된 메모리를 포함하는 이미지 디코더가 제공된다. 동작시, 회로는 이미지 블록으로부터 분리된 비직사각형 형상을 갖는 제1 파티션과 제2 파티션 사이의 경계를 따라 경계 평활화 동작을 수행한다. 경계 평활화 동작은: 제1 파티션의 정보를 이용하여, 경계를 따라 제1 파티션의 픽셀 세트의 제1 값을 제1 예측하는 단계; 상기 제2 파티션의 정보를 이용하여 상기 경계를 따라 상기 제1 파티션의 픽셀 세트의 제2 값을 제2 예측하는 단계; 제1 값과 제2 값을 가중시키는 단계; 및 가중된 제1 값 및 가중된 제2 값을 사용하여 제1 파티션을 디코딩하는 단계를 포함한다.
다른 양태에 따르면, 비직사각형 형상은 삼각형이다. 다른 양태에 따르면, 비직사각형 형상은 삼각형, 사다리꼴, 및 적어도 5 개의 변 및 각을 갖는 다각형으로 구성된 그룹으로부터 선택된다. 다른 양태에 따르면, 제2 파티션은 비직사각형 형상을 갖는다.
다른 양태에 따르면, 제1 예측 및 제2 예측 중 적어도 하나는 인코딩된 참조 픽처에서의 참조 분할에 기초하여 제1 값 및 제2 값을 예측하는 인터 예측 프로세스이다. 인터 예측 프로세스는 픽셀 세트를 포함하는 제1 파티션의 픽셀의 제1 값을 예측할 수 있고 또한 제1 파티션의 픽셀 세트만의 제2 값을 예측할 수 있다.
다른 양태에 따르면, 제1 예측 및 제2 예측 중 적어도 하나는 커런트 픽처 내의 인코딩된 참조 파티션에 기초하여 제1 값 및 제2 값을 예측하는 인트라 예측 프로세스이다.
다른 양태에 따르면, 이미지 디코더가 제공되며, 동작시, 양자화된 변환 계수를 획득하기 위하여 인코딩된 비트스트림을 수신 및 디코딩하는 엔트로피 디코더; 동작시, 변환 계수를 획득하기 위하여 양자화된 변환 계수를 역 양자화하고 잔차를 획득하기 위하여 변환 계수를 역변환하는 역 양자화기 및 변환기; 동작시, 역 양자화기 및 변환기로부터 출력된 잔차 및 예측 컨트롤러로부터 출력된 예측을 가산하여 블록을 재구성하는 가산기; 인터 예측기, 인트라 예측기 및 메모리에 결합된 예측 컨트롤러를 포함하며, 인터 예측기는 동작시 디코딩된 참조 픽처의 참조 블록에 기초하여 커런트 블록의 예측을 생성하고, 인트라 예측기는 동작시 커런트 픽처 내의 디코드된 참조 블록에 기초하여 커런트 블록의 예측을 생성한다. 예측 컨트롤러는 동작시에 이미지 블록으로부터 분할된 비직사각형 형상을 갖는 제1 파티션과 제2 파티션 사이의 경계를 따라 경계 평활화 동작을 수행한다. 경계 평활화 동작은: 제1 파티션의 정보를 이용하여, 경계를 따라 제1 파티션의 픽셀 세트의 제1 값을 제1 예측하는 단계; 상기 제2 파티션의 정보를 이용하여 상기 경계를 따라 상기 제1 파티션의 픽셀 세트의 제2 값을 제2 예측하는 단계; 제1 값과 제2 값을 가중시키는 단계; 및 가중된 제1 값 및 가중된 제2 값을 사용하여 제1 파티션을 디코딩하는 단계를 포함한다.
다른 양태에 따르면, 이미지 블록으로부터 분할된 비직사각형 형상을 갖는 제1 파티션과 제2 파티션 사이의 경계를 따라 경계 평활화 동작을 수행하기 위해 이미지 디코딩 방법이 제공된다. 이 방법은 일반적으로 4 개의 단계: 제1 파티션의 정보를 이용하여 경계를 따라 제1 파티션의 픽셀 세트의 제1 값을 제1 예측하는 단계; 상기 제2 파티션의 정보를 이용하여 상기 경계를 따라 상기 제1 파티션의 픽셀 세트의 제2 값을 제2 예측하는 단계; 제1 값과 제2 값을 가중시키는 단계; 및 가중된 제1 값 및 가중된 제2 값을 사용하여 제1 파티션을 디코딩하는 단계를 포함한다.
일 양태에 따르면, 회로 및 회로에 연결된 메모리를 포함하는 이미지 인코더가 제공된다. 회로는 동작시에, 이미지 블록을 분할을 나타내는 파티션 파라미터에 기초하여 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 단계; 제1 파티션 및 제2 파티션을 인코딩하는 단계; 및 상기 파티션 파라미터를 포함하는 하나 이상의 파라미터를 비트스트림에 기록하는 단계를 포함한다.
다른 양태에 따르면, 파티션 파라미터는 제1 파티션이 삼각형 형상임을 나타낸다.
다른 양태에 따르면, 파티션 파라미터는 제2 파티션이 비직사각형 형상을 갖는 것을 나타낸다.
다른 양태에 따르면, 파티션 파라미터는 비직사각형 형상이 삼각형, 사다리꼴, 및 적어도 5 개의 변 및 각을 갖는 다각형 중 하나임을 나타낸다.
다른 양태에 따르면, 파티션 파라미터는 이미지 블록을 복수의 파티션으로 분할하기 위해 적용된 분할 방향을 공동으로 인코딩한다. 예를 들어, 분할 방향은 이미지 블록의 좌상 코너에서 우하 코너로, 이미지 블록의 우상 코너에서 좌하 코너로를 포함할 수 있다. 파티션 파라미터는 제1 파티션의 적어도 제1 모션 벡터를 공동으로 인코딩할 수 있다.
다른 양태에 따르면, 파티션 파라미터 이외의 하나 이상의 파라미터는 이미지 블록을 복수의 파티션으로 분할하기 위해 적용된 분할 방향을 인코딩한다. 분할 방향을 인코딩하는 파라미터는 제1 파티션의 적어도 제1 모션 벡터를 공동으로 인코딩할 수 있다.
다른 양태에 따르면, 파티션 파라미터는 제1 파티션의 적어도 제1 모션 벡터를 공동으로 인코딩할 수 있다. 파티션 파라미터는 제2 파티션의 제2 모션 벡터를 공동으로 인코딩할 수 있다.
다른 양태에 따르면, 파티션 파라미터 이외의 하나 이상의 파라미터는 제1 파티션의 적어도 제1 모션 벡터를 인코딩할 수 있다.
다른 양태에 따르면, 하나 이상의 파라미터는 하나 이상의 파라미터 중 적어도 하나의 값에 따라 선택되는 이진화 방식에 따라 이진화된다.
다른 양태에 따르면, 이미지 인코더가 제공되며, 이미지 인코더는 동작시, 오리지널 픽처를 수신하여 블록들로 분할하는 스플리터; 동작시, 스플리터로부터 블록 및 예측 컨트롤러로부터 예측을 수신하고, 대응하는 블록으로부터 각각의 예측을 감산하여 잔차를 출력하는 가산기; 동작시에, 가산기로부터 출력된 잔차에 대해 변환을 수행하여 변환 계수를 출력하는 변환기; 동작시에, 변환 계수를 양자화하여 양자화된 변환 계수를 생성하는 양자화기; 동작시, 양자화된 변환 계수를 인코딩하여 비트스트림을 생성하는 엔트로피 인코더; 및 인터 예측기, 인트라 예측기 및 메모리에 결합된 예측 컨트롤러를 포함하며, 인터 예측기는 동작시 인코딩된 참조 픽처의 참조 블록에 기초하여 커런트 블록의 예측을 생성하고, 인트라 예측기는 동작시 커런트 픽처에서 인코딩된 참조 블록에 기초하여 커런트 블록의 예측을 생성한다. 예측 컨트롤러는 동작시에 분할을 나타내는 파티션 파라미터에 기초하여 이미지 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하고, 제1 파티션 및 제2 파티션을 인코딩한다. 엔트로피 인코더는 동작시, 파티션 파라미터를 포함하는 하나 이상의 파라미터를 비트스트림에 기록한다.
다른 양태에 따르면, 파티션 신택스 동작을 포함하는 이미지 인코딩 방법이 제공된다. 이 방법은 일반적으로 3 개의 단계: 이미지 블록을 분할을 나타내는 파티션 파라미터에 기초하여 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 단계; 제1 파티션 및 제2 파티션을 인코딩하는 단계; 및 상기 파티션 파라미터를 포함하는 하나 이상의 파라미터를 비트스트림에 기록하는 단계를 포함한다.
다른 양태에 따르면, 회로 및 회로에 연결된 메모리를 포함하는 이미지 디코더가 제공된다. 회로는 동작시, 비트스트림으로부터 하나 이상의 파라미터를 파싱하는 단계 - 여기서 하나 이상의 파라미터는 이미지 블록의 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로의 분할을 나타내는 파티션 파라미터를 포함함 - ; 파티션 파라미터에 기초하여 이미지 블록을 복수의 파티션으로 분할하는 단계; 및 제1 파티션 및 제2 파티션을 디코딩하는 단계를 포함하는 파티션 신택스 동작을 수행한다.
다른 양태에 따르면, 파티션 파라미터는 제1 파티션이 삼각형 형상을 갖는 것을 나타낸다.
다른 양태에 따르면, 파티션 파라미터는 제2 파티션이 비직사각형 형상을 갖는 것을 나타낸다.
다른 양태에 따르면, 파티션 파라미터는 비직사각형 형상이 삼각형, 사다리꼴, 및 적어도 5 개의 변 및 각을 갖는 다각형 중 하나임을 나타낸다.
다른 양태에 따르면, 파티션 파라미터는 이미지 블록을 복수의 파티션으로 분할하기 위해 적용된 분할 방향을 공동으로 인코딩한다. 예를 들어, 분할 방향은 이미지 블록의 좌상 코너에서 우하 코너로, 및 이미지 블록의 우상 코너에서 좌하 코너로를 포함한다. 파티션 파라미터는 적어도 제1 파티션의 제1 모션 벡터를 공동으로 인코딩할 수 있다.
다른 양태에 따르면, 파티션 파라미터 이외의 하나 이상의 파라미터는 이미지 블록을 복수의 파티션으로 분할하기 위해 적용된 분할 방향을 인코딩한다. 분할 방향을 인코딩하는 파라미터는 적어도 제1 파티션의 제1 모션 벡터를 공동으로 인코딩할 수 있다.
다른 양태에 따르면, 파티션 파라미터는 제1 파티션의 적어도 제1 모션 벡터를 공동으로 인코딩할 수 있다. 파티션 파라미터는 제2 파티션의 제2 모션 벡터를 공동으로 인코딩할 수 있다.
다른 양태에 따르면, 파티션 파라미터 이외의 하나 이상의 파라미터는 적어도 제1 파티션의 제1 모션 벡터를 인코딩할 수 있다.
다른 양태에 따르면, 하나 이상의 파라미터는 하나 이상의 파라미터 중 적어도 하나의 값에 따라 선택되는 이진화 방식에 따라 이진화된다.
다른 양태에 따르면, 이미지 디코더가 제공되며, 이미지 디코더는: 동작시, 양자화된 변환 계수를 획득하기 위하여 인코딩된 비트스트림을 수신 및 디코딩하는 엔트로피 디코더; 동작시, 변환 계수를 획득하기 위하여 양자화된 변환 계수를 역 양자화하고, 잔차를 획득하기 위하여 변환 계수를 역변환하는 역 양자화기 및 변환기; 동작시, 역 양자화기 및 변환기로부터 출력된 잔차 및 예측 컨트롤러로부터 출력된 예측을 가산하여 블록을 재구성하는 가산기; 인터 예측기, 인트라 예측기 및 메모리에 결합된 예측 컨트롤러를 포함하며, 인터 예측기는 동작시 디코딩된 참조 픽처의 참조 블록에 기초하여 커런트 블록의 예측을 생성하고, 또한 인트라 예측기는 커런트 픽처에서 디코딩된 참조 블록에 기초하여 커런트 블록의 예측을 생성한다. 엔트로피 디코더는 동작시, 비트스트림으로부터 하나 이상의 파라미터를 파싱 - 여기서 하나 이상의 파라미터는 이미지 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 것을 나타내는 파티션 파라미터를 포함함 - 하며, 이미지 블록을 파티션 파라미터에 기초하여 복수의 파티션으로 분할하고, 또한 제1 파티션 및 제2 파티션을 디코딩한다.
다른 양태에 따르면, 파티션 신택스 동작을 포함하는 이미지 디코딩 방법이 제공된다. 이 방법은 일반적으로 3 개의 단계: 비트스트림으로부터 하나 이상의 파라미터를 파싱하는 단계 - 여기서, 하나 이상의 파라미터는 이미지 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 것을 나타내는 파티션 파라미터를 포함함 - ; 파티션 파라미터에 기초하여 이미지 블록을 복수의 파티션으로 분할하는 단계; 및 제1 파티션 및 제2 파티션을 디코딩하는 단계를 포함한다.
도면에서, 동일한 참조 번호는 유사한 요소를 식별한다. 도면에서 요소의 크기 및 상대 위치는 반드시 축척대로 그려지는 것은 아니다.
이하, 도면을 참조하여 실시예를 설명한다. 아래에 설명된 실시예(들)은 각각 일반적인 또는 특정 예를 도시한다는 점에 유의한다. 이하의 실시예(들)에 도시된 수치, 형상, 재료, 구성 요소, 구성 요소의 배열 및 연결, 단계, 단계의 관계 및 순서 등은 단순한 예이며, 청구 범위를 제한하려는 것이 아니다. 따라서, 이하의 실시예(들)에 개시되어 있지만 가장 넓은 발명 개념을 정의하는 임의의 독립 청구항에 언급되지 않은 구성 요소는 선택적 구성 요소로 이해될 수 있다.
인코더 및 디코더의 실시예들이 아래에 설명될 것이다. 실시예는 본 개시의 양태의 설명에서 제시된 프로세스 및/또는 구성이 적용 가능한 인코더 및 디코더의 예이다. 프로세스 및/또는 구성은 또한 실시예에 따른 것과 상이한 인코더 및 디코더에서 구현될 수 있다. 예를 들어, 실시예들에 적용되는 프로세스들 및/또는 구성들에 관하여, 다음 중 임의의 것이 구현될 수 있다:
(1) 본 개시의 양태의 설명에서 제시된 실시 형태에 따른 인코더 또는 디코더의 임의의 컴포넌트는 본 개시의 양태의 설명에서 임의의 곳에 제시된 다른 컴포넌트와 대체되거나 조합될 수 있다.
(2) 실시예에 따른 인코더 또는 디코더에서, 인코더 또는 디코더의 하나 이상의 구성 요소에 의해 수행되는 기능 또는 프로세스의 추가, 대체, 제거 등과 같은 기능 또는 프로세스에 대한 임의의 변경이 이루어질 수 있다. 예를 들어, 임의의 기능 또는 프로세스는 본 개시의 양태의 설명에서 임의의 곳에 제시된 다른 기능 또는 프로세스로 대체되거나 조합될 수 있다.
(3) 실시예들에 따른 인코더 또는 디코더에 의해 구현되는 방법에서, 방법에 포함된 하나 이상의 프로세스의 추가, 대체 및 제거와 같은 임의의 변경이 이루어질 수 있다. 예를 들어, 방법의 임의의 프로세스는 본 개시의 양태의 설명에서 임의의 곳에 제시된 다른 프로세스와 대체되거나 조합될 수 있다.
(4) 실시예에 따른 인코더 또는 디코더에 포함된 하나 이상의 컴포넌트는 본 개시의 양태의 설명의 임의의 위치에 제시된 컴포넌트와 조합될 수 있고, 임의의 위치에 제시된 하나 이상의 기능을 포함하는 컴포넌트와 조합될 수 있다. 본 개시의 양태의 설명은, 본 개시의 양태의 설명에 제시된 컴포넌트에 의해 구현된 하나 이상의 프로세스를 구현하는 컴포넌트와 조합될 수 있다.
(5) 실시예에 따른 인코더 또는 디코더의 하나 이상의 기능을 포함하는 컴포넌트, 또는 실시예에 따른 인코더 또는 디코더의 하나 이상의 프로세스를 구현하는 컴포넌트는 본 개시의 양태의 설명 중 임의의 부분에 제시된 컴포넌트와, 본 개시의 양태의 설명 중 임의의 부분에 제시된 하나 이상의 기능을 포함하는 컴포넌트와, 또는 본 개시의 양태의 설명 중 임의의 부분에 제시된 하나 이상의 프로세스를 구현하는 컴포넌트와 결합 또는 대체될 수 있다.
(6) 실시예들에 따른 인코더 또는 디코더에 의해 구현되는 방법에서, 방법에 포함된 프로세스들 중 임의의 프로세스는 본 개시의 양태들의 설명 중 임의의 부분에 제시된 프로세스 또는 임의의 대응하는 또는 동등한 프로세스와 결합 또는 대체될 수 있다.
(7) 실시예들에 따른 인코더 또는 디코더에 의해 구현된 방법에 포함된 하나 이상의 프로세스들은 본 개시의 양태들의 설명 중 임의의 부분에 제시된 프로세스와 결합될 수 있다.
(8) 본 개시의 양태의 설명에서 제시된 프로세스 및/또는 구성의 구현은 실시예에 따른 인코더 또는 디코더로 제한되지 않는다. 예를 들어, 프로세스 및/또는 구성은 실시예에 개시된 동영상 인코더 또는 동영상 디코더와 다른 목적으로 사용되는 장치에서 구현될 수 있다.
(인코더)
먼저, 일 실시예에 따른 인코더가 설명될 것이다. 도 1은 실시예에 따른 인코더(100)의 기능적 구성을 나타내는 블록도이다. 인코더(100)는 블록별로 동영상을 인코딩하는 동영상 인코더이다.
도 1에 도시된 바와 같이, 인코더(100)는 블록 단위로 픽처를 인코딩하는 장치이며, 스플리터(102), 감산기(104), 변환기(106), 양자화기(108), 엔트로피 인코더(110), 역 양자화기(112), 역 변환기(114), 가산기(116), 블록 메모리(118), 루프 필터(120), 프레임 메모리(122), 인트라 예측기(124), 인터 예측기(126) 및 예측 컨트롤러(128)를 포함한다.
인코더(100)는 예를 들어 일반 프로세서 및 메모리로서 실현된다. 이 경우, 메모리에 저장된 소프트웨어 프로그램이 프로세서에 의해 실행될 때, 프로세서는 스플리터(102), 감산기(104), 변환기(106), 양자화기(108), 엔트로피 인코더(110), 역 양자화기(112), 역 변환기(114), 가산기(116), 루프로서 기능한다. 대안적으로, 인코더(100)는 스플리터(102), 감산기(104), 변환기(106), 양자화기(108), 엔트로피 인코더(110), 역 양자화기(112), 역 변환기(114), 가산기(116), 루프 필터(120), 인트라 예측기(124), 인터 예측기(126) 및 예측 컨트롤러(128)에 대응하는 하나 이상의 전용 전자 회로로서 실현될 수 있다.
이하, 인코더(100)에 포함된 각 구성 요소에 대하여 설명한다.
(스플리터)
스플리터(102)는 입력된 동영상에 포함된 각각의 픽처를 블록으로 분할하고, 각 블록을 감산기(104)에 출력한다. 예를 들어, 스플리터(102)는 먼저 픽처를 고정된 크기의 블록(예를 들어, 128 × 128)으로 분할한다. 고정된 크기 블록은 또한 코딩 트리 유닛(CTU)으로 지칭될 수 있다. 스플리터(102)는 예를 들어 재귀 쿼드 트리 및/또는 이진 트리 블록 분할에 기초하여 각각의 고정 크기 블록을 가변 크기(예를 들어, 64x64 또는 그 이하)의 블록으로 분할한다. 가변 크기 블록은 코딩 유닛(CU), 예측 유닛(PU) 또는 변환 유닛(TU)으로 지칭될 수도 있다. 다양한 구현에서 CU, PU 및 TU를 구별할 필요가 없을 수 있다; 픽처 내의 블록의 전부 또는 일부는 CU, PU 또는 TU마다 처리될 수 있다.
도 2는 일 실시예에 따른 블록 분할의 일례를 도시한다. 도 2에서, 실선은 쿼드 트리 블록 분할에 의해 분할된 블록의 블록 경계를 나타내고, 점선은 이진 트리 블록 분할에 의해 분할된 블록의 블록 경계를 나타낸다.
여기서, 블록(10)은 정사각형 128 × 128 픽셀 블록(128 × 128 블록)이다. 이 128 × 128 블록(10)은 먼저 4 개의 정사각형 64 × 64 블록(쿼드 트리 블록 분할)으로 분할된다.
상단 좌측 64 × 64 블록은 2 개의 직사각형 32 × 64 블록으로 더욱 수직으로 분할되고, 좌측 32 × 64 블록은 2 개의 직사각형 16 × 64 블록(이진 트리 블록 분할)으로 더욱 수직으로 분할된다. 결과적으로, 좌상 64 × 64 블록은 2 개의 16 × 64 블록(11 및 12) 및 하나의 32 × 64 블록(13)으로 분할된다.
우상 64 × 64 블록은 2 개의 직사각형 64 × 32 블록(14 및 15)(이진 트리 블록 분할)으로 수평으로 분할된다.
좌하 64 × 64 블록은 먼저 4 개의 정사각형 32 × 32 블록(쿼드 트리 블록 분할)으로 분할된다. 4 개의 32 × 32 블록 중 좌상 블록 및 우하 블록이 더 분할된다. 좌상 32 × 32 블록은 2 개의 직사각형 16 × 32 블록으로 수직으로 분할되고, 우측 16 × 32 블록은 2 개의 16 × 16 블록으로 더 수평으로 분할된다(이진 트리 블록 분할). 우하 32 × 32 블록은 2 개의 32 × 16 블록(이진 트리 블록 분할)으로 수평으로 분할된다. 결과적으로, 좌하 64 × 64 블록은 16 × 32 블록(16), 2 개의 16 × 16 블록(17 및 18), 2 개의 32 × 32 블록(19 및 20), 및 2 개의 32 × 16 블록(21 및 22)으로 분할된다.
우하 64 × 64 블록(23)은 분할되지 않는다.
전술한 바와 같이, 도 2에서, 블록(10)은 재귀 쿼드 트리 및 이진 트리 블록 분할에 기초하여 13 개의 가변 크기 블록(11 내지 23)으로 분할된다. 이 유형의 분할을 쿼드 트리 + 이진 트리(QTBT) 분할이라고도 한다.
도 2에서 하나의 블록이 4개 또는 2개의 블록(쿼드 트리 또는 이진 트리 블록 분할)으로 분할되지만, 분할은 이 예들로 제한되지 않는다. 예를 들어, 하나의 블록은 3 개의 블록으로 분할될 수 있다(삼진 블록 분할). 이러한 3진 블록 분할을 포함하는 분할을 멀티 타입 트리(MBT) 분할이라고도 한다.
(감산기)
감산기(104)는 스플리터(102)에 의해 분할되고 입력된 블록 당 오리지널 신호(원래 샘플)로부터 예측 신호(후술하는 예측 컨트롤러(128)로부터 입력될 예측 샘플)를 감산한다. 다시말하면, 감산기(104)는 인코딩될 블록(이하 "커런트 블록"이라 함)의 예측 에러(또한 "잔차"로 지칭된다)를 계산한다. 감산기(104)는 계산된 예측 에러(잔차)를 변환기(106)에 출력한다.
오리지널 신호는 인코더(100)에 입력되는 신호이며, 동화상에 포함되는 각 픽처의 이미지를 나타내는 신호(예를 들어, 루마 신호 및 2 개의 크로마 신호)이다. 이하, 이미지를 나타내는 신호를 샘플이라고도 한다.
(변환기)
변환기(106)는 공간 도메인 예측 에러를 주파수 도메인 변환 계수로 변환하고, 변환 계수를 양자화기(108)로 출력한다. 보다 구체적으로, 변환기(106)는 예를 들어, 미리 정의된 이산 코사인 변환(DCT) 또는 이산 사인 변환(DST)을 공간 도메인 예측 에러에 적용한다.
변환기(106)는 복수의 변환 유형 중에서 변환 유형을 적응적으로 선택하고, 선택된 변환 유형에 대응하는 변환 기저 함수를 사용하여 예측 오차를 변환 계수로 변환할 수 있음에 유의한다. 이러한 종류의 변환은 명시적 다중 코어 변환(EMT) 또는 적응형 다중 변환(AMT)이라고도 한다.
변환 유형은 예를 들어 DCT-II, DCT-V, DCT-VIII, DST-I 및 DST-VII를 포함한다. 도 3은 각 변환 타입에 대한 변환 기저 함수를 나타내는 차트이다. 도 3에서, N은 입력 픽셀의 수를 나타낸다. 예를 들어, 복수의 변환 유형 중에서 변환 유형의 선택은 인트라 예측 모드뿐만 아니라 예측 유형(인트라 예측 및 인터 예측)에 의존할 수 있다.
EMT 또는 AMT를 적용할지를 나타내는 정보(예를 들어, EMT 플래그 또는 AMT 플래그로 지칭됨) 및 선택된 변환 타입을 나타내는 정보는 일반적으로 CU 레벨에서 시그널링된다. 그러한 정보의 시그널링은 CU 레벨에서 수행될 필요가 없고, 다른 레벨(예를 들어, 비트 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨, 타일 레벨 또는 CTU 레벨)에서 수행될 수 있음을 주목한다.
또한, 변환기(106)는 2 차 변환을 변환 계수에 적용할 수 있다(변환 결과). 이러한 이차 변환은 또한 적응형 이차 변환(AST) 또는 비 분리형 이차 변환(NSST)으로 지칭된다. 예를 들어, 변환기(106)는 인트라 예측 에러에 대응하는 변환 계수의 블록에 포함된 각각의 서브 블록(예를 들어, 각각의 4 × 4 서브 블록)에 2 차 변환을 적용한다. NSST 적용 여부를 나타내는 정보 및 NSST에서 사용되는 변환 매트릭스와 관련된 정보는 일반적으로 CU 레벨에서 시그널링된다. 그러한 정보의 시그널링은 CU 레벨에서 수행될 필요는 없으며, 다른 레벨(예를 들어, 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨, 타일 레벨 또는 CTU 레벨)에서 수행될 수 있다.
분리형 변환 또는 비분리형 변환이 변환기(106)에 적용될 수 있다. 개별 변환은 입력된 차원의 수에 따라 각 방향에 대해 변환을 개별적으로 수행함으로써 변환이 복수 회 수행되는 방법이다. 비분리형 변환은 다차원 입력에서 2 개 이상의 차원이 집합적으로 단일 차원으로 간주되는 집합 변환을 수행하는 방법이다.
비분리형 변환의 일례에서, 입력이 4 × 4 블록 인 경우, 4 × 4 블록은 16 개의 성분을 포함하는 단일 어레이로 간주되고, 변환은 16 × 16 변환 매트릭스를 어레이에 적용한다.
비분리형 변환의 다른 예에서, 입력 4x4 블록이 16 개의 컴포넌트를 포함하는 단일 어레이로 간주된 후, 복수의 기븐스 회전(예를 들어, 하이퍼큐브-기븐 변환)을 수행하는 변환이 어레이 상에서 적용될 수 있다.
(양자화기)
양자화기(108)는 변환기(106)로부터 출력된 변환 계수를 양자화한다. 보다 구체적으로, 양자화기(108)는 커런트 블록의 변환 계수를 미리 결정된 스캐닝 순서로 스캔하고, 변환 계수에 대응하는 양자화 파라미터(QP)에 기초하여 스캔된 변환 계수를 양자화한다. 양자화기(108)는 커런트 블록의 양자화된 변환 계수(이하 양자화된 계수로 지칭됨)를 엔트로피 인코더(110) 및 역 양자화기(112)로 출력한다.
미리 정해진 스캐닝 순서는 변환 계수를 양자화/역 양자화하기 위한 순서이다. 예를 들어, 미리 정해진 스캐닝 순서는 주파수의 오름차순(낮은 주파수에서 높은 주파수로) 또는 주파수의 내림차순(높은 주파수에서 낮은 주파수로)으로 정의된다.
양자화 파라미터(QP)는 양자화 스텝 크기(양자화 폭)를 정의하는 파라미터이다. 예를 들어, 양자화 파라미터의 값이 증가하면, 양자화 스텝 크기도 증가한다. 즉, 양자화 파라미터의 값이 증가하면 양자화 에러가 증가한다.
(엔트로피 인코더)
엔트로피 인코더(110)는 양자화기(108)로부터 입력된 양자화된 계수에 기초하여 인코딩된 신호(인코딩된 비트스트림)를 생성한다. 보다 구체적으로, 예를 들어, 엔트로피 인코더(110)는 양자화된 계수를 이진화하고 이진 신호를 산술 인코딩하여 압축된 비트스트림 또는 시퀀스를 출력한다.
(역 양자화기)
역 양자화기(112)는 양자화기(108)로부터 입력된 양자화된 계수를 역 양자화한다. 보다 구체적으로, 역 양자화기(112)는 커런트 블록의 양자화된 계수를 미리 정해진 스캐닝 순서로 역 양자화한다. 역 양자화기(112)는 커런트 블록의 역 양자화된 변환 계수를 역 변환기(114)에 출력한다.
(역 변환기)
역 변환기(114)는 역 양자화기(112)로부터 입력된 변환 계수를 역 변환함으로써 예측 에러(잔차)를 복원한다. 보다 구체적으로, 역 변환기(114)는 변환기(106)에 의해 적용된 변환에 대응하는 역 변환을 적용함으로써 커런트 블록의 예측 에러를 복원한다. 다음으로, 역 변환기(114)는 복원된 예측 에러를 가산기(116)에 출력한다.
일반적으로, 정보는 양자화에서 손실되므로, 복원된 예측 에러는 감산기(104)에 의해 계산된 예측 에러와 일치하지 않는다. 즉, 복원된 예측 에러는 전형적으로 양자화 에러를 포함한다.
(가산기)
가산기(116)는 역 변환기(114)로부터 입력된 예측 에러들 및 예측 컨트롤러(128)로부터 입력된 예측 샘플들을 합산함으로써 커런트 블록을 재구성한다. 가산기(116)는 재구성된 블록을 블록 메모리(118) 및 루프 필터(120)에 출력한다. 재구성된 블록은 로컬 디코딩된 블록이라고도 한다.
(블록 메모리)
블록 메모리(118)는 예를 들어 인트라 예측에서의 참조를 위해 인코딩될 화상("커런트 픽처"으로 지칭됨)에 블록을 저장하기 위한 저장 장치이다. 보다 구체적으로, 블록 메모리(118)는 가산기(116)로부터 출력된 재구성된 블록을 저장한다.
(루프 필터)
루프 필터(120)는 가산기(116)에 의해 재구성된 블록에 루프 필터를 적용하고, 필터링된 재구성 블록을 프레임 메모리(122)에 출력한다. 루프 필터는 인코딩 루프(인-루프 필터)에 사용되는 필터이며, 예를 들어 디블록킹 필터(DF), 샘플 적응형 오프셋(SAO) 및 적응형 루프 필터(ALF)를 포함한다.
ALF에서는 압축 아티팩트를 제거하기 위한 최소 제곱 오류 필터가 적용된다. 예를 들어, 복수의 필터들 중 하나의 필터가 로컬 그라디언트의 방향 및 활동에 기초하여 커런트 블록에서 2x2 서브 블록마다 선택되어 적용된다.
보다 구체적으로, 먼저, 각각의 서브-블록(예를 들어, 각각의 2x2 서브-블록)은 복수의 클래스(예를 들어, 15 또는 25 클래스) 중 하나로 분류된다. 서브 블록의 분류는 그라디언트 방향성 및 활동에 기초한다. 예를 들어, 분류 지수 C는 그라디언트 방향도 D(예를 들어, 0 내지 2 또는 0 내지 4) 및 그라디언트 활동 A(예를 들어, 0 내지 4)에 기초하여 도출된다(예를 들어, C = 5D + A). 그리고, 분류 인덱스 C에 기초하여, 각 서브 블록은 복수의 클래스 중 하나로 분류된다.
예를 들어, 그라디언트 방향(D)은 복수의 방향(예를 들어, 수평, 수직 및 2 개의 대각선 방향)의 그라디언트를 비교함으로써 계산된다. 또한, 예를 들어, 그라디언트 활동 A는 복수 방향의 그라디언트를 합산하고 합계를 양자화함으로써 계산된다.
각 서브 블록에 사용될 필터는 이러한 분류의 결과에 기초하여 복수의 필터 중에서 결정된다.
ALF에 사용되는 필터 형상은 예를 들어 원형 대칭 필터 형상이다. 도 4a, 4b 및 4c는 ALF에서 사용되는 필터 형상의 예를 도시한다. 도 4a는 5 × 5 다이아몬드 형상 필터를 도시하고, 도 4b는 7 × 7 다이아몬드 형상 필터를 도시하고, 도 4c는 9 × 9 다이아몬드 형상 필터를 도시한다. 필터 형태를 나타내는 정보는 일반적으로 픽처 레벨에서 시그널링된다. 필터 형상을 나타내는 정보의 시그널링은 픽처 레벨에서 수행될 필요가 없고, 다른 레벨(예를 들어, 시퀀스 레벨, 슬라이스 레벨, 타일 레벨, CTU 레벨 또는 CU 레벨)에서 수행될 수 있다.
ALF의 인에블링 또는 디스에이블링은 픽처 레벨 또는 CU 레벨에서 결정될 수 있다. 예를 들어, 루마의 경우, ALF의 적용 여부는 CU 레벨에서 수행될 수 있고, 크로마의 경우, ALF의 적용 여부는 픽처 레벨에서 수행될 수 있다. ALF의 활성화 또는 비활성화 여부를 나타내는 정보는 일반적으로 픽처 레벨 또는 CU 레벨에서 시그널링 된다. ALF의 인에이블 또는 디스에이블 여부를 나타내는 정보의 시그널링은 픽처 레벨 또는 CU 레벨에서 수행될 필요가 없고, 다른 레벨(예를 들어, 시퀀스 레벨, 슬라이스 레벨, 타일 레벨 또는 CTU 레벨)에서 수행될 수 있음에 유의한다.
복수의 선택 가능한 필터들(예를 들어, 15 또는 25 개의 필터들)에 대해 설정된 계수들은 전형적으로 픽처 레벨에서 시그널링된다. 계수 세트의 시그널링은 픽처 레벨에서 수행될 필요가 없고, 다른 레벨(예를 들어, 시퀀스 레벨, 슬라이스 레벨, 타일 레벨, CTU 레벨, CU 레벨 또는 서브 블록 레벨)에서 수행될 수 있음에 유의한다.
(프레임 메모리)
프레임 메모리(122)는 예를 들어 인터 예측에 사용된 참조 픽처를 저장하기위한 저장 장치이며, 프레임 버퍼라고도 한다. 보다 구체적으로, 프레임 메모리(122)는 루프 필터(120)에 의해 필터링된 재구성된 블록을 저장한다.
(내부 예측기)
인트라 예측기(124)는 블록 메모리(118)에 저장된 바와 같이 커런트 픽처에있는 블록 또는 블록들을 참조하여 커런트 블록을 인트라 예측(인트라 프레임 예측이라고도 함)함으로써 예측 신호(인트라 예측 신호)를 생성한다. 보다 구체적으로, 인트라 예측기(124)는 커런트 블록에 인접한 블록 또는 블록들의 샘플들(예를 들어, 루마 및/또는 크로마 값들)을 참조하여 인트라 예측에 의해 인트라 예측 신호를 생성한 다음, 인트라 예측 신호를 예측 컨트롤러(128)에 출력한다.
예를 들어, 인트라 예측기(124)는 복수의 미리 정의된 인트라 예측 모드 중 하나의 모드를 이용하여 인트라 예측을 수행한다. 인트라 예측 모드는 전형적으로 하나 이상의 비 방향성 예측 모드 및 복수의 방향성 예측 모드를 포함한다.
하나 이상의 비 방향성 예측 모드는 예를 들어 H.265/HEVC 표준에 정의된 평면 예측 모드 및 DC 예측 모드를 포함한다.
복수의 방향성 예측 모드는 예를 들어 H.265/HEVC 표준에 정의된 33 개의 방향성 예측 모드를 포함한다. 복수의 방향성 예측 모드는 33 개의 방향성 예측 모드에 더하여 32 개의 방향성 예측 모드를 더 포함할 수 있다(총 65 개의 방향성 예측 모드).
도 5a는 인트라 예측에 사용된 총 67 개의 인트라 예측 모드(2 개의 비 방향성 예측 모드 및 65 개의 방향성 예측 모드)를 도시한다. 실선 화살표는 H.265/HEVC 표준에 정의된 33 개의 방향을 나타내고, 점선 화살표는 추가 32 방향을 나타낸다(두 개의 "비 방향성" 예측 모드는 도 5a에 도시되지 않음).
다양한 구현들에서, 루마 블록은 크로마 블록 인트라 예측에서 참조될 수도있다. 즉, 커런트 블록의 크로마 성분은 커런트 블록의 루마 성분에 기초하여 예측될 수 있다. 이러한 인트라 예측은 CCLM(Cross-Component Linear Model) 예측이라고도 한다. 크로마 블록 인트라 예측 모드 중 하나로서 루마 블록을 참조하는 크로마 블록 인트라 예측 모드(예를 들어, CCLM 모드로 지칭 됨)가 추가될 수 있다.
인트라 예측기(124)는 수평/수직 기준 픽셀 그라디언트에 기초하여 인트라 예측 후 픽셀 값을 보정할 수도 있다. 이러한 종류의 보정을 수반하는 인트라 예측은 또한 위치 의존적 인트라 예측 조합(PDPC)으로 지칭된다. PDPC의 적용 여부를 나타내는 정보(예를 들어, PDPC 플래그로 지칭됨)는 일반적으로 CU 레벨에서 시그널링된다. 이 정보의 시그널링은 CU 레벨에서 수행될 필요는 없으며, 다른 레벨(예를 들어, 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨, 타일 레벨 또는 CTU 레벨)에서 수행될 수 있다.
(인터 예측기)
인터 예측기(126)는 커런트 픽처와 다르고 프레임 메모리(122)에 저장되는 참조 픽처의 블록(들)을 참조하여 커런트 블록을 인터 예측(또한 인터 프레임 예측으로 지칭됨)함으로써 예측 신호(인터 예측 신호)를 생성한다. 인터 예측은 커런트 블록에서 커런트 블록 또는 커런트 서브 블록(예를 들어, 4 × 4 블록)마다 수행된다. 예를 들어, 인터 예측기(126)는 커런트 블록 또는 커런트 서브 블록에 대한 참조 픽처에서 모션 추정을 수행하여, 커런트 블록 또는 서브 블록과 가장 일치하는 참조 픽처에서 참조 블록 또는 서브 블록을 찾아, 참조 블록 또는 서브 블록으로부터 커런트 블록 또는 서브 블록으로의 이동 또는 변화를 보상(또는 예측)하는 모션 정보(예를 들어, 모션 벡터)를 획득한다. 인터 예측기(126)는 모션 정보에 기초하여 모션 보상(또는 모션 예측)을 수행하고, 모션 정보에 기초하여 커런트 블록 또는 서브 블록의 인터 예측 신호를 생성한다. 인터 예측기(126)는 생성된 인터 예측 신호를 예측 컨트롤러(128)에 출력한다.
모션 보상에 사용되는 모션 정보는 인터 예측 신호로서 다양한 형태로 시그널링될 수 있다. 예를 들어, 모션 벡터가 시그널링될 수 있다. 다른 예로서, 모션 벡터와 모션 벡터 예측기 사이의 차이가 시그널링될 수 있다.
인터 예측 신호는 모션 추정으로부터 획득된 커런트 블록에 대한 모션 정보 외에 인접한 블록에 대한 모션 정보를 이용하여 생성될 수도 있다. 보다 구체적으로, 인터 예측 신호는 (참조 픽처에서의) 모션 추정으로부터 획득된 모션 정보를 기초로 하는 예측 신호와 (커런트 픽처에서의) 인접한 블록의 모션 정보를 기초로 하는 예측 신호의 가중된 합을 계산함에 의해 커런트 블록 내의 서브 블록마다 생성될 수 있다. 이러한 인터 예측(모션 보상)은 중첩 블록 모션 보상(OBMC)이라고도 한다.
OBMC 모드에서, OBMC에 대한 서브 블록 크기를 나타내는 정보(예를 들어, OBMC 블록 크기로 지칭됨)가 시퀀스 레벨에서 시그널링될 수 있다. 또한, OBMC 모드의 적용 여부를 나타내는 정보(예를 들어, OBMC 플래그라고 함)가 CU 레벨에서 시그널링될 수 있다. 이러한 정보의 시그널링은 시퀀스 레벨 및 CU 레벨에서 수행될 필요가 없고, 다른 레벨(예를 들어, 픽처 레벨, 슬라이스 레벨, 타일 레벨, CTU 레벨 또는 서브 블록 레벨)에서 수행될 수 있음에 유의한다.
이하, OBMC 모드에 대하여 보다 상세하게 설명한다. 도 5b는 흐름도이며; 도 5c는 OBMC 처리에 의해 수행되는 예측 이미지 보정 처리를 나타내는 개념도이다.
도 5c를 참조하면, 먼저, 타겟(커런트) 블록에 할당된 모션 벡터(MV)를 이용하여 전형적인 모션 보상을 통해 예측 이미지(Pred)를 얻는다. 도 5c에서, 화살표 "MV"는 예측 이미지를 얻기 위해 커런트 픽처의 커런트 블록이 참조하는 것을 나타 내기 위해 참조 픽처를 지시한다.
다음으로, 커런트 블록으로부터 기원하며 예측 이미지(Pred_L)를 획득하기 위하여 참조 픽처를 지시하는 화살표 "MV_L"로 표시된 바와 같이, 인코딩된 인접한 좌측 블록에 대해 이미 도출된 모션 벡터(MV_L)를 타겟(커런트) 블록에 적용(재사용)함으로써 예측 이미지(Pred_L)가 획득된다. 다음으로, 2 개의 예측 이미지(Pred 및 Pred_L)는 예측 이미지의 보정의 제1 패스를 수행하기 위해 중첩되며, 일 양태에서 인접한 블록들 사이의 경계를 블렌딩하는 효과를 갖는다.
유사하게, 커런트 블록으로부터 기원하며 예측 이미지(Pred_U)를 획득하기 위하여 참조 픽처를 지시하는 화살표 "MV_U"로 표시된 바와 같이, 인코딩된 인접 상위 블록에 대해 이미 도출된 모션 벡터(MV_U)를 타겟(커런트) 블록에 적용(재사용)함으로써 예측 이미지(Pred_U)가 획득된다. 다음으로, 예측 이미지(Pred_U)는 제1 패스(즉, Pred 및 Pred_L)에 기인한 예측 이미지와 중첩되어 예측 이미지의 보정의 제2 패스를 수행하며, 일 양태에서, 인접한 블록들 사이의 경계를 블렌딩하는 효과를 갖는다. 제2 패스의 결과는 인접한 블록들과 블랜드된(평활화된) 경계를 갖는 커런트 블록에 대한 최종 예측 이미지이다.
상기 예는 인접한 좌측 및 상부 블록을 사용하는 2 패스 보정 방법이지만,이 방법은 인접한 우측 및/또는 하부 블록을 사용하는 3 패스 또는 그 이상 패스 보정 방법일 수도 있다.
중첩되는 영역은 블록의 전체 픽셀 영역일 수도 있고, 대안적으로 부분 블록 경계 영역일 수도 있다.
여기서, OBMC의 예측 이미지 보정 프로세스는 단일 예측 이미지(Pred)를 도출하기 위해 단일 참조 픽처에 기초하는 것으로 기술되며, 여기에 추가 예측 이미지(Pred_L 및 Pred_U)가 중첩되지만, 예측 이미지가 복수의 참조 픽처에 기초하여 보정되는 경우 동일한 프로세스가 복수의 참조 픽처 각각에 적용될 수 있다. 이 경우, 복수의 참조 픽처에 기초하여 OBMC의 화상 보정을 수행함으로써 복수의 보정된 예측 이미지가 획득된 후, 획득된 복수의 보정된 예측 이미지가 추가로 중첩되어 최종 예측 이미지를 얻는다.
OBMC에서, 타겟 블록의 단위는 예측 블록일 수도 있고, 대안적으로 예측 블록을 더 분할함으로써 획득된 서브 블록일 수도 있다.
OBMC 처리를 구현할지 여부를 결정하는 방법의 한 예는 OBMC 처리를 구현할지 여부를 나타내는 신호인 obmc_flag를 사용하는 것이다. 하나의 구체적인 예로서, 인코더는 타겟 블록이 복잡한 모션을 포함하는 영역에 속하는지 여부를 결정할 수 있다. 인코더는 블록이 복잡한 모션을 포함하는 영역에 속하는 경우 obmc_flag를 "1"의 값으로 설정하고, 인코딩하는 동안 OBMC 처리를 구현하고, 블록이 복잡한 모션을 포함하는 영역에 속하지 않을 경우 obmc_flag를 "0"의 값으로 설정하고, OBMC 처리를 구현하지 않고 블록을 인코딩한다. 디코더는 스트림에 기록된 obmc_flag(즉, 압축된 시퀀스)를 디코딩하고 플래그 값에 따라 디코딩을 수행함으로써 OBMC 처리를 구현하거나 구현하지 않는 것을 전환한다.
모션 정보는 인코더 측으로부터 신호를 받지 않고 디코더 측에서 도출될 수 있음에 유의한다. 예를 들어, H.265/HEVC 표준에서 규정된 머지 모드가 사용될 수 있다. 또한, 예를 들어, 모션 정보는 디코더 측에서 모션 추정을 수행함으로써 도출될 수 있다. 이 경우, 디코더 측은 커런트 블록의 픽셀 값을 사용하지 않고 모션 추정을 수행할 수 있다.
여기서, 디코더 측에서 모션 추정을 수행하기 위한 모드가 설명될 것이다. 디코더 측에서 모션 추정을 수행하기 위한 모드는 PMMVD(Pattern Matched Motion Vector Derivation) 모드 또는 FRUC(Frame Rate Up-Conversion) 모드라고도한다.
FRUC 처리의 일례가 도 5d에 도시되어있다. 먼저, 예측 모션 벡터(MV)를 각각 포함하는 후보들의 후보 리스트(후보 리스트는 머지 리스트일 수 있다)는 커런트 블록에 공간적으로 또는 시간적으로 인접한 인코딩된 블록의 모션 벡터를 참조하여 생성된다. 다음으로, 후보 리스트에 등록된 복수의 후보 MV 중에서, 최고의 후보 MV가 선택된다. 예를 들어, 후보 리스트에 포함된 후보 MV에 대한 평가값이 계산되고, 계산된 평가값에 기초하여 하나의 후보 MV가 선택된다.
다음으로, 커런트 블록에 대한 모션 벡터가 선택된 후보의 모션 벡터로부터 도출된다. 보다 구체적으로, 예를 들어, 커런트 블록에 대한 모션 벡터는 선택된 후보(최고의 후보 MV)의 모션 벡터로서 있는 그대로 계산된다. 대안적으로, 커런트 블록에 대한 모션 벡터는 선택된 후보의 모션 벡터에 대응하는 참조 픽처에서의 위치 부근에서 수행된 패턴 매칭에 의해 도출될 수 있다. 즉, 참조 픽쳐에서의 패턴 매칭 및 평가값을 이용하여 최고의 후보 MV의 주변을 검색하고, 평가값이 우수한 MV를 찾은 경우, 최고의 후보 MV를 더 나은 평가값을 갖는 MV로 갱신할 수 있으며, 커런트 블록에 대한 최종 MV로서 더 나은 평가값을 갖는 MV가 사용될 수 있다. 더 나은 평가값을 갖는 MV를 업데이트하기 위한 처리가 구현되지 않는 구성도 수용 가능하다.
프로세싱이 서브 블록 단위로 수행되는 경우 동일한 프로세스가 수행될 수 있다.
평가값은 다양한 방식으로 계산될 수 있다. 예를 들어, 모션 벡터에 대응하는 참조 픽처에서의 영역의 재구성된 이미지는 (예를 들어, 후술하는 것처럼, 다른 참조 픽처에 있거나 커런트 픽처의 인접한 블록에 있을 수 있는) 미리 결정된 영역의 재구성된 이미지와 비교되거, 2 개의 재구성된 이미지들 사이의 픽셀 값의 차이가 모션 벡터의 평가값으로서 계산되어 사용될 수 있다. 평가값은 차이 외에 다른 정보를 사용하여 계산될 수 있다.
다음에, 패턴 매칭에 대하여 상세하게 설명한다. 먼저, 후보 리스트(예를 들어, 머지 리스트)에 포함된 하나의 후보 MV가 패턴 매칭에 의한 검색의 시작점으로 선택된다. 사용된 패턴 매칭은 제1 패턴 매칭 또는 제2 패턴 매칭이다. 제1 패턴 매칭 및 제2 패턴 매칭은 각각 양자 매칭 및 템플릿 매칭으로 지칭된다.
제1 패턴 매칭에서, 패턴 매칭은 커런트 블록의 모션 궤적을 따르는 두 개의 서로 다른 참조 픽처에서 두 블록 사이에서 수행된다. 따라서, 제1 패턴 매칭에서, 참조 픽처의 영역에 대해, 커런트 블록의 모션 궤적에 부합하는 다른 참조 픽처에서의 영역이 상술된 후보 평가값의 계산을 위한 미리 결정된 영역으로서 사용된다.
도 6은 모션 궤적을 따라 2 개의 참조 픽처에서 2 개의 블록 사이의 제1 패턴 매칭(양방향 매칭)의 일례를 도시한다. 도 6에 도시된 바와 같이, 제1 패턴 매칭에서, 커런트 블록(Cur block)의 모션 궤적을 따라 2 개의 상이한 참조 픽처(Ref0, Ref1)에서 2 개의 블록 사이의 최고의 매칭을 발견함으로써 2 개의 모션 벡터(MV0, MV1)가 도출된다. 보다 구체적으로,(i) 제1 인코딩된 참조 픽처(Ref0)에서의 후보 MV에 의해 지정된 위치에서의 재구성된 이미지와, (ii) 제2 인코딩된 참조 픽처(Ref1)에서의, 디스플레이 시간 간격마다 대칭적으로 스케일링된, 후보 MV에 의해 지정된 위치에서의 재구성된 이미지 사이의 차이가 얻어 질 수 있다. 다음으로, 그 차이는 커런트 블록에 대한 평가값을 도출하는데 사용될 수 있다. 복수의 후보 MV중 최고의 평가값을 갖는 후보 MV가 최종 MV로서 선택될 수 있다.
연속 모션 궤적을 가정할 때, 2 개의 참조 블록을 가리키는 모션 벡터(MV0, MV1)는 커런트 픽처(Cur Pic)과 2 개의 참조 픽처(Ref0, Ref1) 사이의 시간 거리(TD0, TD1)에 비례한다. 예를 들어, 커런트 픽처가 2 개의 참조 픽처들 사이에 시간적으로 존재하고, 커런트 픽처로부터 2 개의 참조 픽처까지의 시간 거리가 동일할 때, 제1 패턴 매칭은 2 개의 미러링 양방향 모션 벡터를 도출한다.
제2 패턴 매칭(템플릿 매칭)에서, 커런트 픽쳐의 템플릿(커런트 픽쳐 내의 커런트 블록에 인접한 블록들, 예를 들어, 상단 및/또는 좌측 인접한 블록들)과 참조 픽쳐의 블록 사이에서 패턴 매칭이 수행된다. 그러므로, 제2 패턴 매칭에서, 커런트 픽처에서 커런트 블록에 인접한 블록은 전술한 후보 평가값의 계산을 위한 미리 결정된 영역으로 사용된다.
도 7은 커런트 픽처의 템플릿과 참조 픽처의 블록 사이의 패턴 매칭(템플릿 매칭)의 일례를 도시한다. 도 7에 도시된 바와 같이, 제2 패턴 매칭에서, 커런트 블록의 모션 벡터는 참조 픽처(Ref0)을 검색하여 커런트 픽처(Cur Pic)에서 커런트 블록(Cur block)의 인접 블록(들)과 가장 일치하는 블록을 찾는 것에 의해 도출된다. 보다 구체적으로, (i) 커런트 블록에 대한 인코딩된 인접한 상부 및 좌측 영역 중 하나 또는 둘 다의 재구성된 이미지와, (ii) 인코딩된 참조 픽처(Ref0)에서의 후보 MV에 의해 지정된 블록 위치에 대한 동일한 영역의 재구성된 이미지 사이에서 차이가 얻어질 수 있다. 그리고, 그 차이는 커런트 블록에 대한 평가값을 도출하는데 사용될 수 있다. 복수의 후보 MV 중에서 최고의 평가값을 갖는 후보 MV가 최고의 후보 MV로서 선택될 수 있다.
FRUC 모드의 적용 여부를 나타내는 정보(예를 들어, FRUC 플래그라 칭함)가 CU 레벨에서 시그널링될 수 있다. 또한, FRUC 모드가 적용되는 경우(예를 들어, FRUC 플래그가 true로 설정된 경우), 패턴 적용 가능한 매칭 방법(예를 들어, 제1 패턴 매칭 또는 제2 패턴 매칭)을 나타내는 정보가 CU 레벨에서 시그널링될 수 있다. 그러한 정보의 시그널링은 CU 레벨에서 수행될 필요는 없으며, 다른 레벨(예를 들어, 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨, 타일 레벨, CTU 레벨 또는 서브 블록 레벨)에서 수행될 수 있음에 유의한다.
다음으로, 모션 벡터를 도출하는 방법이 설명된다. 먼저, 균일한 선형 모션을 가정하는 모델에 기초하여 모션 벡터를 도출하는 모드에 대해 설명한다. 이 모드는 양방향 광학 흐름(BIO) 모드라고도 한다.
도 8은 균일한 선형 모션을 가정하는 모델을 도시한다. 도 8에서,(vx, vy)는 속도 벡터를 나타내고, τ0 및 τ1 은 각각 커런트 픽처(Cur Pic)와 2 개의 참조 픽처(Ref0, Ref1) 사이의 시간적 거리를 나타낸다. (MVx0, MVy0)은 참조 픽처 Ref0에 대응하는 모션 벡터를 나타내고,(MVx1, MVy1)은 참조 픽처 Ref1에 대응하는 모션 벡터를 나타낸다.
여기서, 속도 벡터(vx, vy), (MVx0, MVy0) 및 (MVx1, MVy1)에 의해 나타나는 균일한 선형 모션을 가정하면 (vxτ0, vyτ0) 및 (-vxτ1, -vyτ1) 및 하기 광학 흐름 방정식(수학식 1)이 주어진다.
Figure pct00001
여기서, I(k) 는 모션 보상 후의 참조 픽처 k(k = 0, 1)로부터의 루마 값을 나타낸다. 광학 흐름 방정식은 (i) 루마 값의 시간 도함수,(ii) 수평 속도와 참조 픽처의 공간 구배의 수평 성분의 곱, 및 (iii) 수직 속도와 참조 픽처의 공간 구배의 수직 성분의 곱의 합이 0과 같다는 것을 보이는 것이다. 예를 들어, 머지 리스트로부터 획득된 각각의 블록의 모션 벡터는 광학 흐름 방정식과 에르미트 보간의 조합에 기초하여 픽셀 단위로 보정될 수 있다.
균일한 선형 모션을 가정하는 모델에 기초하여 모션 벡터를 도출하는 것 이외의 방법을 사용하여 모션 벡터가 디코더 측에서 도출될 수 있음에 유의한다. 예를 들어, 인접한 블록의 모션 벡터에 기초하여 각각의 서브 블록에 대해 모션 벡터가 도출될 수 있다.
다음에, 인접한 블록의 모션 벡터에 기초하여 각 서브 블록마다 모션 벡터를 도출하는 모드에 대하여 설명한다. 이 모드는 또한 아핀 모션 보상 예측 모드라고도 한다.
도 9a는 인접한 블록의 모션 벡터에 기초하여 각 서브 블록의 모션 벡터를 도출하는 일례를 도시한 것이다. 도 9a에 도시된 바와 같이, 커런트 블록은 16 개의 4x4 서브 블록을 포함한다. 여기서, 커런트 블록에서의 좌상 코너 제어 포인트의 모션 벡터 V0는 인접한 서브 블록의 모션 벡터에 기초하여 도출된다. 유사하게, 커런트 블록에서의 우상 코너 제어 포인트의 모션 벡터 v1은 인접한 블록의 모션 벡터에 기초하여 도출된다. 그리고, 2 개의 모션 벡터 v0 및 v1을 이용하여, 커런트 블록에서의 각 서브 블록의 모션 벡터(vx, vy)는 아래의 수학식 2를 이용하여 도출된다.
Figure pct00002
여기서, x 및 y는 각각 서브 블록의 수평 및 수직 위치들이고, w는 소정의 가중 계수이다.
아핀 모션 보상 예측 모드는 좌상 및 우상 제어 포인트의 모션 벡터를 도출하는 상이한 방법의 다수의 모드를 포함할 수 있다. 아핀 모션 보상 예측 모드를 나타내는 정보(예를 들어, 아핀 플래그라고 함)는 CU 레벨에서 시그널링될 수 있다. 아핀 모션 보상 예측 모드를 나타내는 정보의 시그널링은 CU 레벨에서 수행될 필요가 없으며, 다른 레벨(예를 들어, 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨, 타일 레벨, CTU 레벨, 또는 서브-블록 레벨)에서 수행될 수 있다.
(예측 컨트롤러)
예측 컨트롤러(128)는 인트라 예측 신호(인트라 예측기(124)로부터 출력됨) 또는 인터 예측 신호(인터 예측기(126)로부터 출력됨)를 선택하고, 선택된 예측 신호를 감산기(104) 및 가산기(116)에 출력한다.
도 1에 도시된 바와 같이, 다양한 구현에서, 예측 컨트롤러(128)는 엔트로피 인코더(110)에 입력된 예측 파라미터를 출력할 수 있다. 엔트로피 인코더(110)는 예측 컨트롤러(128)로부터 입력된 예측 파라미터 및 양자화기(108)로부터 입력된 양자화된 계수에 기초하여 인코딩된 비트스트림(또는 시퀀스)을 생성할 수 있다. 예측 파라미터는 인트라 예측기(124), 인터 예측기(126) 및 예측 컨트롤러(128)에서 수행된 것과 동일한 예측 처리를 수행하기 위해 인코딩된 비트스트림을 수신 및 디코딩하는 디코더에 의해 사용될 수 있다. 예측 파라미터는 선택된 예측 신호(예를 들어, 인트라 예측기(124) 또는 인터 예측기(126)에서 채용되는 모션 벡터, 예측 유형 또는 예측 모드), 또는 임의의 인덱스, 플래그, 또는 인트라 예측기(124), 인터 예측기(126) 및 예측 컨트롤러(128)에서 수행된 예측 처리에 기초하거나 또는 이들을 나타내는 값을 포함할 수 있다.
도 9b는 머지 모드에서 커런트 픽처에서 모션 벡터를 도출하기 위한 프로세스의 일례를 도시한다.
먼저, 예측 MV 후보가 등록되는 예측 MV 리스트가 생성된다. 예측 MV 후보의 예는, 타겟 블록의 공간 부근에 위치한 인코딩된 블록의 MV인 공간적으로 인접한 예측 MV; 타겟 블록과 동일한 위치에서 블록에 인접하는 인코딩된 참조 픽처에서 블록의 MV인 시간적으로 인접한 예측 MV; 공간적으로 인접한 예측 MV와 시간적으로 인접한 예측 MV의 MV 값들을 결합함으로써 생성된 MV인 결합된 예측 MV; 및 값이 0 인 MV인 제로 예측 MV를 포함한다.
다음으로, 예측 MV 리스트에 등록된 복수의 예측 MV 중 하나의 예측 MV를 선택함으로써 타겟 블록의 MV가 결정된다.
또한, 가변 길이 인코더에서, 어느 예측 MV가 선택되는지를 나타내는 신호 인 merge_idx가 스트림에 기록 및 인코딩된다.
또한, 도 9b에 도시한 예측 MV 리스트에 등록된 예측 MV가 일례를 구성함에 주목한다. 예측 MV 리스트에 등록된 예측 MV의 수는 도 9b에 도시된 수와 다를 수 있으며, 예측 MV 리스트에 등록된 예측 MV는 도 9b의 예에서 주어진 예측 MV의 유형 중 하나 이상을 생략할 수 있으며, 예측 MV 리스트에 등록된 예측 MV는 도 9b의 예에서 주어진 유형에 추가하여 및 주어진 유형과는 상이한 하나 이상의 유형의 예측 MV를 포함할 수 있다.
최종 MV는 머지 모드에서 도출된 타겟 블록의 MV 를 이용하여 (나중에 설명될) DMVR(dynamic motion vector refreshing) 처리를 수행함으로써 결정될 수 있다.
도 9c는 MV를 결정하기 위한 DMVR 처리의 예를 나타내는 개념도이다.
먼저, 커런트 블록에 대해 설정되는 (예를 들어, 머지 모드에서) 가장 적합한 MV는 후보 MV인 것으로 간주된다. 그리고, 후보 MV(L0)에 따르면, L0 방향의 인코딩된 픽처인 제1 참조 픽처(L0)에서 참조 픽셀이 식별된다. 마찬가지로, 후보 MV(L1)에 따르면, L1 방향의 인코딩된 픽처인 제2 참조 픽처(L1)에서 참조 픽셀이 식별된다. 그런 다음 참조 픽셀을 평균화하여 템플릿을 형성한다.
다음으로, 템플릿을 사용하여, 제1 및 제2 참조 픽처(L0) 및 (L1)의 후보 MV의 주변 영역이 검색되고, 가장 저렴한 비용의 MV가 최종 MV인 것으로 결정된다. 비용 값은, 예를 들어, 템플릿의 각 픽셀 값과 검색된 영역의 각 픽셀 값 사이의 차이, 후보 MV, 등을 사용하여 계산될 수 있다.
여기에 설명된 프로세스의 구성 및 동작은 후술될 인코더 측 및 디코더 측 모두에서 기본적으로 동일하다.
처리가 후보 MV의 주변을 검색함으로써 최종 MV를 도출할 수 있는 한, 전술한 처리 이외의 임의의 처리가 사용될 수 있다.
다음으로, LIC(Local Illumination Compensation) 처리를 이용하여 예측 이미지(예측)를 생성하는 모드의 일례에 대하여 설명한다.
도 9d는 LIC 처리에 의해 수행되는 휘도 보정 처리를 이용하는 예측 이미지 생성 방법의 일례를 도시한다.
먼저, 인코딩된 참조 픽처으로부터, 커런트 블록에 대응하는 참조 이미지를 얻기 위해 MV가 도출된다.
다음으로, 커런트 블록에 대해, 커런트 픽처에서 인코딩된 인접한 좌측 참조 영역 및 인코딩된 인접한 상위 참조 영역의 휘도 픽셀 값에 기초하여 및 MV에 의해 지정된 바와 같은 참조 픽처 내의 동일한 위치에서의 휘도 픽셀 값에 기초하여 참조 픽처와 커런트 픽처 사이에서 휘도값이 어떻게 변화했는지를 나타내는 정보가 획득된다. 휘도값이 어떻게 변화했는지를 나타내는 정보는 휘도 보정 파라미터를 계산하는데 사용된다.
커런트 블록에 대한 예측 이미지는 휘도 보정 프로세스를 수행함으로써 생성되며, 이는 MV에 의해 지정된 참조 픽처에서 참조 이미지에 대한 휘도 보정 파라미터를 적용한다.
도 9d에 도시된 주변 기준 영역(들)의 형상이 단지 하나의 예이며; 주변 참조 영역은 다른 형상을 가질 수 있다.
또한, 이 예에서는 단일 참조 픽처로부터 예측 이미지가 생성되지만, 복수의 참조 픽처로부터 예측 이미지가 생성되는 경우, 전술한 바와 같이 참조 픽처로부터 획득된 참조 이미지에 대한 휘도 보정 처리를 수행한 후에 예측 이미지가 생성될 수 있다.
LIC 처리를 구현할지 여부를 결정하는 방법의 일례는 LIC 처리를 구현할지 여부를 나타내는 신호인 lic_flag를 사용하는 것이다. 하나의 특정 예로서, 인코더는 커런트 블록이 휘도 변화 영역에 속하는지 여부를 결정한다. 인코더는 블록이 휘도 변화 영역에 속할 때 lic_flag를 "1"의 값으로 설정하고, 인코딩할 때 LIC 처리를 구현한다. 인코더는 블록이 휘도 변화 영역에 속하지 않을 때 lic_flag를 "0"의 값으로 설정하고, LIC 처리를 구현하는 인코딩을 수행한다. 디코더는 스트림에 기록된 lic_flag를 디코딩하고 플래그 값에 따라 디코딩을 수행함으로써 LIC 처리를 구현하거나 구현하지 않는 것 사이에서 전환할 수 있다.
LIC 처리를 구현할지 여부를 결정하는 상이한 방법의 한 예는 LIC 처리가 인접한 블록에 대해 구현되도록 결정되었는지를 식별하는 것을 포함한다. 하나의 특정 예에서, 커런트 블록에 대해 머지 모드가 사용되는 경우, LIC 처리가 주변 인코딩된 블록의 인코딩에 적용되었는지 여부가 결정되며, 이는 머지 모드에서 MV를 도출할 때 선택된다. 그리고, 결정은 커런트 블록에 대한 LIC 처리를 구현할 것인지 아닌지를 추가로 결정하기 위해 사용된다. 이 예에서도, 디코더 측에서 수행되는 처리에도 동일하게 적용된다.
(디코더)
다음으로, 인코더(100)로부터 출력된 인코딩된 신호(인코딩된 비트스트림)를 디코딩할 수 있는 디코더가 설명될 것이다. 도 10은 일 실시예에 따른 디코더(200)의 기능적 구성을 나타내는 블록도이다. 디코더(200)는 블록 단위로 동화상을 디코딩하는 동화상 디코더이다.
도 10에 도시된 바와 같이, 디코더(200)는 엔트로피 디코더(202), 역 양자화기(204), 역 변환기(206), 가산기(208), 블록 메모리(210), 루프 필터(212), 프레임 메모리(214), 인트라 예측기(216), 인터 예측기(218) 및 예측 컨트롤러(220)를 포함한다.
디코더(200)는 예를 들어 일반적인 프로세서 및 메모리로서 실현된다. 이 경우, 메모리에 저장된 소프트웨어 프로그램이 프로세서에 의해 실행될 때, 프로세서는 엔트로피 디코더(202), 역 양자화기(204), 역 변환기(206), 가산기(208), 루프 필터(212), 인트라 예측기(216), 인터 예측기(218) 및 예측 컨트롤러(220)로 기능한다. 대안적으로, 디코더(200)는 엔트로피 디코더(202), 역 양자화기(204), 역 변환기(206), 가산기(208), 루프 필터(212), 인트라 예측기(216), 인터 예측기(218) 및 예측 컨트롤러(220)에 대응하는 하나 이상의 전용 전자 회로로서 실현될 수 있다.
이하, 디코더(200)에 포함된 각 구성 요소에 대하여 설명한다.
(엔트로피 디코더)
엔트로피 디코더(202)는 인코딩된 비트스트림을 엔트로피 디코딩한다. 보다 구체적으로, 예를 들어, 엔트로피 디코더(202) 인코딩된 비트스트림을 이진 신호로 산술 디코딩한다. 엔트로피 디코더(202)는 이진 신호를 이진화한다. 엔트로피 디코더(202)는 역 양자화기(204)에 각 블록의 양자화된 계수를 출력한다. 엔트로피 디코더(202)는 또한 인코딩된 비트스트림(도 1 참조)에 포함될 수 있는 예측 파라미터를 인트라 예측기(216), 인터 예측기(218) 및 예측 컨트롤러(220)에 출력할 수 있어서, 이들은 인코더 측에서의 인트라 예측기(124), 인터 예측기(126) 및 예측 컨트롤러(128)에서 수행되는 것과 동일한 예측 처리를 수행할 수 있다.
(역 양자화기)
역 양자화기(204)는 엔트로피 디코더(202)로부터 입력되는, 디코딩될 블록(이하, 커런트 블록이라 칭함)의 양자화된 계수를 역 양자화한다. 보다 구체적으로, 역 양자화기(204)는 양자화된 계수에 대응하는 양자화 파라미터에 기초하여 커런트 블록의 양자화된 계수를 역 양자화한다. 역 양자화기(204)는 커런트 블록의 역 양자화된 계수(즉, 변환 계수)를 역 변환기(206)에 출력한다.
(역 변환기)
역 변환기(206)는 역 양자화기(204)로부터 입력된 변환 계수들을 역 변환함에 의해 예측 에러(잔차)를 복원한다.
예를 들어, 인코딩된 비트스트림으로부터 파싱된 정보가 EMT 또는 AMT의 적용을 나타내는 경우(예를 들어, AMT 플래그가 참으로 설정될 때), 역 변환기(206)는 파싱된 변환 유형을 나타내는 정보에 기초하여 커런트 블록의 변환 계수를 역변환한다.
또한, 예를 들어, 인코딩된 비트스트림으로부터 파싱된 정보가 NSST의 적용을 나타내는 경우, 역 변환기(206)는 2차 역변환을 변환 계수에 적용한다.
(가산기)
가산기(208)는 역 변환기(206)로부터 입력된 예측 에러들 및 예측 컨트롤러(220)로부터 입력된 예측 샘플들을 합산함으로써 커런트 블록을 재구성한다. 가산기(208)는 재구성된 블록을 블록 메모리(210) 및 루프 필터(212)에 출력한다.
(블록 메모리)
블록 메모리(210)는 인트라 예측에서 참조하기 위해 디코딩될 픽처(이하, 커런트 픽처라고 함)에 블록을 저장하기 위한 저장 장치이다. 보다 구체적으로, 블록 메모리(210)는 가산기(208)로부터 출력된 재구성된 블록을 저장한다.
(루프 필터)
루프 필터(212)는 가산기(208)에 의해 재구성된 블록에 루프 필터를 적용하고, 필터링된 재구성 블록을 프레임 메모리(214) 및 예를 들어 디스플레이 장치에 출력한다.
인코딩된 비트스트림으로부터 파싱된 ALF의 인에이블 또는 디스에이블을 나타내는 정보가 인에이블됨을 나타내는 경우, 로컬 그라디언트의 방향 및 활동에 기초하여 복수의 필터 중 하나의 필터가 선택되고, 선택된 필터가 재구성된 블록에 적용된다.
(프레임 메모리)
프레임 메모리(214)는 인터 예측에 사용되는 참조 픽처를 저장하기 위한 저장 장치이며, 프레임 버퍼라고도 한다. 보다 구체적으로, 프레임 메모리(214)는 루프 필터(212)에 의해 필터링된 재구성된 블록을 저장한다.
(인트라 예측기)
인트라 예측기(216)는 블록 메모리(210)에 저장된 바와 같이 커런트 픽처의 블록 또는 블록들을 참조하여 인트라 예측에 의해 예측 신호(인트라 예측 신호)를 생성한다. 보다 구체적으로, 인트라 예측기(216)는 커런트 블럭과 인접한 블록 또는 블록들의 샘플(예를 들어, 루마 및/또는 크로마 값들)을 참조하여 인트라 예측에 의해 인트라 예측 신호를 생성하고, 다음으로 인트라 예측 신호를 예측 컨트롤러(220)에 출력한다.
크로마 블록이 루마 블록으로부터 인트라 예측되는 인트라 예측 모드가 선택될 때, 인트라 예측기(216)는 커런트 블록의 루마 성분에 기초하여 커런트 블록의 크로마 성분을 예측할 수 있다.
또한, PDPC의 적용을 나타내는 정보가 인코딩된 비트스트림으로부터(예를 들어, 엔트로피 디코더(202)로부터 출력된 예측 파라미터에서) 파싱될 때, 인트라 예측기(216)는 수평/수직 참조 픽셀 그라디언트에 기초하여 인트라 예측 후 픽셀 값을 보정한다.
(인터 예측기)
인터 예측기(218)는 프레임 메모리(214)에 저장된 참조 픽처를 참조하여 커런트 블록을 예측한다. 인터 예측은 커런트 블록에서 커런트 블록마다 또는 서브 블록마다(예를 들어, 4x4 블록 당) 수행된다. 예를 들어, 인터 예측기(218)는 (예를 들면, 엔트로피 디코더(202)로부터 출력된 예측 파라미터 내의) 인코딩된 비트스트림으로부터 파싱된 모션 정보(예를 들면, 모션 벡터)를 이용한 모션 보상에 기초하여 커런트 블록 또는 서브 블록의 인터 예측 신호를 생성하고, 인터 예측 신호를 예측 컨트롤러(22)에 출력한다.
인코딩된 비트스트림으로부터 파싱된 정보가 OBMC 모드의 적용을 나타내는 경우, 인터 예측기(218)는 모션 추정으로부터 획득된 커런트 블록에 대한 모션 정보 외에 인접한 블록에 대한 모션 정보를 이용하여 인터 예측 신호를 생성한다.
또한, 인코딩된 비트스트림으로부터 파싱된 정보가 FRUC 모드의 적용을 나타낼 때, 인터 예측기(218)는 인코딩된 비트스트림으로부터 파싱된 패턴 매칭 방법(양방향 매칭 또는 템플릿 매칭)에 따라 모션 추정을 수행함으로써 모션 정보를 도출한다. 인터 예측기(218)는 그 후 도출된 모션 정보를 사용하여 모션 보상(예측)을 수행한다.
또한, BIO 모드가 적용될 때, 인터 예측기(218)는 균일한 선형 모션을 가정하는 모델에 기초하여 모션 벡터를 도출한다. 또한, 인코딩된 비트스트림으로부터 파싱된 정보가 아핀 모션 보상 예측 모드가 적용되는 것을 나타낼 때, 인터 예측기(218)는 인접한 블록의 모션 벡터에 기초하여 각각의 서브 블록의 모션 벡터를 도출한다.
(예측 컨트롤러)
예측 컨트롤러(220)는 인트라 예측 신호 또는 인터 예측 신호를 선택하고, 선택된 예측 신호를 가산기(208)에 출력한다. 일반적으로, 디코더 측의 예측 컨트롤러(220), 인터 예측기(218) 및 인트라 예측기(216)의 구성, 기능 및 동작은 인코더 측에서의 예측 컨트롤러(128), 인터 예측기(126) 및 인트라 예측기(124)의 구성, 기능 및 동작에 대응할 수 있다.
(비직사각형 파티셔닝)
인코더 측(도 1 참조)의 인트라 예측기(124) 및 인터 예측기(126)에 결합된 예측 컨트롤러(128)뿐만 아니라, 디코더 측(도 10 참조)의 인트라 예측기(216) 및 인터 예측기(218)에 결합된 예측 컨트롤러(220)에서, 전술한 바와 같이, 모션 정보(예를 들어, 모션 벡터)가 획득되는 각각의 블록을 분할함으로써 획득된 파티션(또는 가변 크기 블록 또는 서브 블록)은 도 2에 도시된 바와 같이 변함없이 직사각형이다. 본 발명자들은 삼각 형상과 같은 비직사각 형상을 갖는 파티션을 생성하는 것이 다양한 구현에서 픽처 내의 이미지의 내용에 따라 이미지 품질 및 인코딩 효율을 개선시킨다는 것을 발견했다. 이하, 예측을 위해 이미지 블록으로부터 분할된 적어도 하나의 파티션이 비직사각형 형상을 갖는 다양한 실시예들이 설명될 것이다. 이들 실시예는 인코더 측(인트라 예측기(124) 및 인터 예측기(126)에 연결된 예측 컨트롤러(128)) 및 디코더 측(인트라 예측기(216) 및 인터 예측기(218)에 연결된 예측 컨트롤러(220))에 동일하게 적용 가능하며, 도 1의 인코더 등에서 또는 도 10의 디코더 등에서 구현될 수 있다.
도 11은 이미지 블록을 비직사각형 형상(예를 들어, 삼각형)을 갖는 제1 파티션 및 제2 파티션을 적어도 포함하는 파티션으로 분할하고 제1 및 제2 파티션의 재구성된 조합으로서의 이미지 블록을 인코딩(또는 디코딩)하는 것을 포함하는 추가 처리를 수행하는 프로세스의 일례를 나타내는 흐름도이다.
단계 S1001에서, 이미지 블록은 비직사각형 형상을 갖는 제1 파티션 및 비직사각형 형상을 가질 수도 있고 그렇지 않을 수도 있는 제2 파티션을 포함하는 파티션들로 분할된다. 예를 들어, 도 12에 도시된 바와 같이, 이미지 블록은 이미지 블록의 좌상 코너에서 이미지 블록의 우하 코너로 분할되어 비직사각형 형상(예를 들어, 삼각형)을 갖는 제1 파티션 및 제2 파티션을 생성할 수 있거나 또는 이미지 블록은 이미지 블록의 우상 코너에서 이미지 블록의 좌하 코너로 분할되어 비직사각형 모양(예: 삼각형)을 갖는 제1 파티션 및 제2 파티션을 생성할 수 있다. 비직사각형 파티션의 다양한 예는 도 12 및 도 17 내지 도 19를 참조하여 후술될 것이다.
단계 S1002에서, 프로세스는 제1 파티션에 대한 제1 모션 벡터를 예측하고 제2 파티션에 대한 제2 모션 벡터를 예측한다. 예를 들어, 제1 및 제2 모션 벡터의 예측은 제1 세트의 모션 벡터 후보로부터 제1 모션 벡터를 선택하는 단계 및 제2 세트의 모션 벡터 후보로부터 제2 모션 벡터를 선택하는 단계를 포함할 수 있다.
단계 S1003에서는, 상기 단계 S1002에서 도출된 제1 모션 벡터를 이용하여 제1 파티션을 획득하고, 상기 단계 S1002에서 도출된 제2 모션 벡터를 이용하여 제2 파티션을 획득하기 위하여 모션 보상 프로세스가 수행된다.
단계 S1004에서, 제1 파티션과 제2 파티션의 (재구성된) 조합으로서 이미지 블록에 대한 예측 프로세스가 수행된다. 예측 프로세스는 제1 파티션과 제2 파티션 사이의 경계를 평활화하기 위해 경계 평활화 프로세스를 포함할 수 있다. 예를 들어, 경계 평활화 프로세스는 제1 파티션에 기초하여 예측된 경계 픽셀의 제1 값 및 제2 파티션에 기초하여 예측된 경계 픽셀의 제2 값을 가중하는 것을 포함할 수 있다. 경계 평활화 프로세스의 다양한 구현이 도 13, 도 14, 도 20 및 도 21a 내지도 21d를 참조하여 아래에서 설명될 것이다.
단계 S1005에서, 프로세스는 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션으로의 이미지 블록의 분할을 나타내는 파티션 파라미터를 포함하는 하나 이상의 파라미터를 사용하여 이미지 블록을 인코딩 또는 디코딩한다. 도 15의 표에 요약된 바와 같이, 예를 들어, 파티션 파라미터("제1 인덱스 값")는 예를 들어, 분할에 적용된 분할 방향(예를 들어, 도 12에 도시된 바와 같이, 좌상에서 우하로 또는 우상에서 좌하로) 및 상기 단계 S1002에서 도출된 제1 및 제2 모션 벡터를 공동으로 인코딩할 수 있다. 파티션 파라미터를 포함하는 하나 이상의 파라미터를 포함하는 이러한 파티션 신택스 동작의 세부 사항은 도 15, 도 16, 및 도 22 내지 도 25를 참조하여 아래에서 상세하게 설명될 것이다.
도 17은 이미지 블록을 분할하는 프로세스(2000)를 나타내는 흐름도이다. 단계 S2001에서, 프로세스는 비직사각형을 갖는 제1 파티션 및 비직사각형을 가지거나 가지지 않을 수 있는 제2 파티션을 포함하는 복수의 파티션으로 이미지를 분할한다. 도 12에 도시된 바와 같이, 이미지 블록은 삼각형 형태의 제1 파티션과 삼각형 형태의 제2 파티션으로 분할될 수 있다. 이미지 블록이 제1 파티션이 비직사각형 형상을 갖는 제1 파티션 및 적어도 제2 파티션을 포함하는 복수의 파티션으로 분할되는 수많은 다른 예가 있다. 비직사각형 형상은 삼각형, 사다리꼴, 및 적어도 5 개의 변 및 각을 갖는 다각형 일 수 있다.
예를 들어, 도 18에 도시된 바와 같이, 이미지 블록은 2 개의 삼각형 형상 파티션으로 분할될 수 있으며; 이미지 블록은 2 개 이상의 삼각형 형상 파티션(예를 들어, 3 개의 삼각형 형상 파티션)으로 분할될 수 있고; 이미지 블록은 삼각형 형상 파티션(들)과 직사각형 형상 파티션(들)의 조합으로 분할될 수 있고; 또는 이미지 블록은 삼각형 형상 파티션(들)과 다각형 형상 파티션(들)의 조합으로 분할될 수 있다.
도 19에 도시된 바와 같이, 이미지 블록은 L 자형(다각형) 파티션과 직사각형 형상 파티션으로 분할될 수 있으며; 이미지 블록은 오각형(polygon) 형상 파티션 및 삼각형 형상 파티션으로 분할될 수 있고; 이미지 블록은 육각형(다각형) 형상 파티션 및 오각형(다각형) 형상 파티션으로 분할될 수 있고; 또는 이미지 블록은 다수의 다각형 형상 파티션으로 분할될 수 있다.
다시 도 17을 참조하여, 단계(S2002)에서, 프로세스는 예를 들어 제1 세트의 모션 벡터 후보들로부터 제1 파티션을 선택함으로써 제1 파티션에 대한 제1 모션 벡터를 예측하고, 예를 들어 제2 세트의 모션 벡터 후보들로부터의 제2 파티션을 선택함으로써 제2 파티션에 대한 제2 모션 벡터를 예측한다. 예를 들어, 제1 세트의 모션 벡터 후보는 제1 파티션에 인접한 파티션의 모션 벡터를 포함할 수 있고, 제2 세트의 모션 벡터 후보는 제2 파티션에 인접한 파티션의 모션 벡터를 포함할 수 있다. 인접한 파티션은 공간적으로 인접한 파티션 및 시간적으로 인접한 파티션 중 하나 또는 둘 모두 일 수 있다. 공간적으로 인접한 파티션의 일부 예는 처리중인 파티션의 왼쪽, 좌하, 아래쪽, 우하, 오른쪽, 우상, 위쪽 또는 좌상에 위치한 파티션을 포함한다. 시간적으로 인접하는 파티션의 예는 이미지 블록의 참조 픽처에서 공존되는 파티션이다.
다양한 구현들에서, 제1 파티션에 인접한 파티션들 및 제2 파티션에 인접한 파티션들은 제1 파티션 및 제2 파티션이 분할되는 이미지 블록의 외부에 있을 수 있다. 제1 세트의 모션 벡터 후보는 제2 세트의 모션 벡터 후보와 동일하거나 상이할 수 있다. 또한, 제1 세트의 모션 벡터 후보 및 제2 세트의 모션 벡터 후보 중 적어도 하나는 이미지 블록을 위해 준비된 다른 제3 세트의 모션 벡터 후보와 동일할 수도 있다.
일부 구현들에서, 단계 S2002에서, 제1 파티션과 유사한 제2 파티션이 또한 비직사각형 형상(예를 들어, 삼각형)을 갖는다는 결정에 응답하여, 프로세스(2000)는 제2 세트의 모션 벡터 후보들을 제1 파티션을 제외하고(즉, 제1 파티션의 모션 벡터를 제외하고) 제2 파티션에 인접한 파티션의 모션 벡터를 포함하는 (비직사각형 형상 제2 파티션을 위한) 제2 세트의 모션 벡터 후보를 생성한다. 한편, 제2 파티션이 제1 파티션과 달리 직사각형 형상을 갖는다는 결정에 응답하여, 프로세스(2000)는 제1 파티션을 포함하는 제2 파티션에 인접한 파티션의 모션 벡터를 포함하는 (직사각형 제2 파티션에 대한) 제2 세트의 모션 벡터 후보를 생성한다.
단계 S2003에서, 프로세스는 상기 단계 S2002에서 도출된 제1 모션 벡터를 사용하여 제1 파티션을 인코딩 또는 디코딩하고, 상기 단계 S2002에서 도출된 제2 모션 벡터를 사용하여 제2 파티션을 인코딩 또는 디코딩한다.
도 17의 프로세스(2000)와 같은 이미지 블록 분할 프로세스는 회로 및 회로에 연결된 메모리를 포함하는 예를 들면 도 1에 도시된 바와 같이 이미지 인코더에 의해 수행될 수 있다. 회로는 동작시에, 이미지 블록을 비직사각형 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하고(단계 S2001); 상기 제1 파티션에 대한 제1 모션 벡터 및 상기 제2 파티션에 대한 제2 모션 벡터를 예측하는 단계(단계 S2002); 및 제1 모션 벡터를 이용하여 제1 파티션을 인코딩하고 제2 모션 벡터를 이용하여 제2 파티션을 인코딩하는 단계(단계 S2003)를 수행한다.
다른 실시예에 따르면, 도 1에 도시된 바와 같이, 이미지 인코더가 제공되며, 이미지 인코더는 동작 중에 오리지널 픽처를 수신하여 블록들로 분할하는 스플리터(102); 동작시, 스플리터로부터 블록 및 예측 컨트롤러(128)로부터 예측을 수신하고, 대응하는 블록으로부터 각각의 예측을 감산하여 잔차를 출력하는 가산기(104); 동작시, 가산기(104)로부터 출력된 잔차에 대해 변환을 수행하여 변환 계수를 출력하는 변환기(106); 동작시, 변환 계수를 양자화하여 양자화된 변환 계수를 생성하는 양자화기(108); 동작시, 양자화된 변환 계수를 인코딩하여 비트스트림을 생성하는 엔트로피 인코더(110); 인터 예측기(126), 인트라 예측기(124) 및 메모리(118, 122)에 연결된 예측 컨트롤러(128)를 포함하며, 인터 예측기(126)는 동작시, 인코딩된 참조 픽처의 참조 블록에 기초하여 커런트 블록의 예측을 생성하고, 인트라 예측기(124)는 동작시, 커런트 픽처에서 인코딩된 참조 블록에 기초하여 커런트 블록의 예측을 생성한다. 예측 컨트롤러(128)는 동작시에 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하고(도 17, 단계 S2001); 제1 파티션에 대한 제1 모션 벡터 및 제2 파티션에 대한 제2 모션 벡터를 예측하고(단계 S2002); 제1 모션 벡터를 이용하여 제1 파티션을 인코딩하고 제2 모션 벡터를 이용하여 제2 파티션을 인코딩한다(단계 S2003).
다른 실시예에 따르면, 예를 들어 도 10에 도시된 바와 같이 회로 및 회로에 연결된 메모리를 포함하는 이미지 디코더가 제공된다. 회로는 동작시에, 이미지 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하고(도 17, 단계 S2001); 상기 제1 파티션에 대한 제1 모션 벡터 및 상기 제2 파티션에 대한 제2 모션 벡터를 예측하는 단계(단계 S2002); 및 상기 제1 모션 벡터를 이용하여 상기 제1 파티션 및 상기 제2 모션 벡터를 이용하여 상기 제2 파티션을 디코딩하는 단계(단계 S2003)를 포함한다.
다른 실시예에 따르면, 도 10에 도시된 바와 같은 이미지 디코더는 동작시에, 양자화된 변환 계수를 획득하기 위하여 인코딩된 비트스트림을 수신 및 디코딩하는 엔트로피 디코더(202); 동작시, 변환 계수를 획득하기 위하여 양자화된 변환 계수를 역 양자화하고, 잔차를 획득하기 위하여 변환 계수를 역변환하는 역 양자화기(204) 및 변환기(206); 동작시, 역 양자화기(204) 및 변환기(206)로부터 출력된 잔차 및 예측 컨트롤러(220)로부터 출력된 예측을 가산하여 블록을 재구성하는 가산기(208); 및 인터 예측기(218), 인트라 예측기(216) 및 메모리(210, 214)에 연결된 예측 컨트롤러(220)를 포함하며, 인터 예측기(218)는 동작시 디코딩된 참조 픽처의 참조 블록에 기초하여 커런트 블록의 예측을 생성하고, 인트라 예측기(216)는 동작시 커런트 픽처에서 디코딩된 참조 블록에 기초하여 커런트 블록의 예측을 생성한다. 예측 컨트롤러(220)는 동작시에 이미지 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하고(도 17, 단계 S2001); 제1 파티션에 대한 제1 모션 벡터 및 제2 파티션에 대한 제2 모션 벡터를 예측하고(단계 S2002); 제1 모션 벡터를 이용하여 제1 파티션을 디코딩하고, 제2 모션 벡터를 이용하여 제2 파티션을 디코딩한다(단계 S2003).
(경계 평활화)
도 11에서 전술한 바와 같이, 단계 S1004는 다양한 실시예에 따라, 비직사각형 형상을 갖는 제1 파티션과 제2 파티션의 (재구성된) 조합으로서 이미지 블록에 대한 예측 프로세스를 수행하는 것은 제1 파티션과 제2 파티션 사이의 경계를 따라 경계 평활화 프로세스의 적용하는 것을 포함할 수 있다.
예를 들어, 도 21b는 제1 파티션에 기초하여 제1 예측되는 경계 픽셀의 제1 값 및 제2 파티션에 기초하여 제2 예측되는 경계 픽셀의 제2 값을 가중하는 것을 포함하는 경계 평활화 프로세스의 일례를 도시한다.
도 20은 일 실시예에 따른, 제1 파티션에 기초하여 제1 예측된 경계 픽셀의 제1 값 및 제2 파티션에 기초하여 제2 예측된 경계 픽셀의 제2 값을 가중하는 단계를 포함하는 전체 경계 평활화 프로세스(3000)를 도시하는 흐름도이다. 단계 S3001에서, 이미지 블록은 도 21a 또는 전술한 도 12, 도 18 및 도 19에 도시된 바와 같이, 적어도 제1 파티션이 비직사각형 형상을 갖는 경계를 따라 제1 파티션과 제2 파티션으로 분할된다.
단계 S3002에서, 경계를 따라 제1 파티션의 픽셀 세트(도 21a에서 "경계 픽셀")의 제1 값(예를 들어, 컬러, 휘도, 투명도 등)이 먼저 예측되고, 여기서 제1 값은 제1 파티션의 정보를 사용하여 제1 예측된다. 단계 S3003에서, 경계를 따라 제1 파티션의(동일한) 픽셀 세트의 제2 값이 제2 예측되고, 제2 값은 제2 파티션의 정보를 사용하여 제2 예측된다. 일부 구현에서, 제1 예측 및 제2 예측 중 적어도 하나는 인코딩된 참조 픽처에서의 참조 파티션에 기초하여 제1 값 및 제2 값을 예측하는 인터 예측 프로세스이다. 도 21d를 참조하면, 일부 구현들에서, 예측 프로세스는 제1 파티션과 제2 파티션이 중첩되는 픽셀 세트를 포함하는 제1 파티션의 모든 픽셀("제1 샘플 세트")의 제1 값을 예측하고, 제1 및 제2 파티션이 중첩되는 픽셀 세트("제2 샘플 세트") 만의 제2 값을 예측한다. 다른 구현에서, 제1 예측 및 제2 예측 중 적어도 하나는 커런트 픽처에서의 인코딩된 참조 파티션에 기초하여 제1 값 및 제2 값을 예측하는 인트라 예측 프로세스이다. 일부 구현들에서, 제1 예측에 사용된 예측 방법은 제2 예측에 사용된 예측 방법과 상이하다. 예를 들어, 제1 예측은 인터 예측 프로세스를 포함할 수 있고, 제2 예측은 인트라 예측 프로세스를 포함할 수 있다. 제1 값을 제1 예측하거나 제2 값을 제2 예측하기 위해 사용된 정보는 제1 또는 제2 파티션의 모션 벡터, 인트라 예측 방향 등일 수 있다.
단계 S3004에서, 제1 파티션을 사용하여 예측된 제1 값 및 제2 파티션을 사용하여 예측된 제2 값이 가중된다. 단계 S3005에서, 제1 파티션은 가중된 제1 및 제2 값을 사용하여 인코딩 또는 디코딩된다.
도 21b는 제1 파티션 및 제2 파티션이 각 행 또는 각 열의 5 개 픽셀(최대)에 걸쳐 중첩되는 경계 평활화 동작의 예를 도시한다. 즉, 제1 파티션에 기초하여 제1 값이 예측되고 제2 파티션에 기초하여 제2 값이 예측되는 각 행 또는 각 열의 픽셀 세트의 수는 최대 5이다. 도 21c는 제1 파티션 및 제2 파티션이 각 행 또는 각 열의 3 개의 픽셀(최대)에 걸쳐 중첩되는 경계 평활화 동작의 다른 예를 도시한다. 즉, 제1 파티션에 기초하여 제1 값이 예측되고 제2 파티션에 기초하여 제2 값이 예측되는 각 행 또는 각 열의 픽셀 세트의 수는 최대 3이다.
도 13은 제1 파티션 및 제2 파티션이 각 행 또는 각 열의 4 개의 픽셀(최대)에 걸쳐 중첩되는 경계 평활화 동작의 다른 예를 도시한다. 즉, 제1 파티션에 기초하여 제1 값이 예측되고 제2 파티션에 기초하여 제2 값이 예측되는 각 행 또는 각 열의 픽셀 세트의 수는 최대 4이다. 도시된 예에서, 1/8, 1/4, 3/4 및 7/8의 가중치는 각각 세트 내의 4 개의 픽셀의 제1 값에 적용될 수 있고, 7/8, 3/4, 1/4 및 1/8 의 가중치는 각각 세트 내의 4개의 픽셀의 제2 값에 적용될 수 있다.
도 14는 제1 파티션 및 제2 파티션이 각각의 행 또는 각각의 열의 0 픽셀에 걸쳐 중첩하고(즉, 이들이 중첩하지 않음), 각각의 행 또는 각각의 열의 1 픽셀(최대)에 걸쳐 중첩하고, 각각의 행 또는 각각의 열의 2 픽셀(최대)에 걸쳐 중첩하는 경계 평활화 동작의 다른 예를 도시한다. 제1 및 제2 파티션이 겹치지 않는 예에서, 0의 가중치가 적용된다. 제1 및 제2 파티션이 각각의 행 또는 각 열의 하나의 픽셀에 걸쳐 중첩되는 예에서, 1/2의 가중치는 제1 파티션에 기초하여 예측된 세트 내의 픽셀의 제1 값에 적용될 수 있고, 1/2의 가중치는 제2 파티션에 기초하여 예측된 세트 내의 픽셀의 제2 값에 적용될 수 있다. 제1 및 제2 파티션이 각각의 행 또는 각 열의 2 개의 픽셀에 걸쳐 중첩되는 예에서, 1/3 및 2/3의 가중치가 제1 파티션에 기초하여 예측된 세트 내의 2 개의 픽셀의 제1 값에 적용될 수 있고, 2/3 및 1/3의 가중치가 제2 파티션에 기초하여 예측된 세트 내의 2 개의 픽셀의 제2 값에 각각 적용될 수 있다.
상술한 실시예에 따르면, 제1 파티션과 제2 파티션이 중첩되는 세트내의 픽셀의 수는 정수이다. 다른 구현들에서, 세트 내의 중첩 픽셀들의 수는 예를 들어 정수가 아닐 수 있고 분수일 수 있다. 또한, 픽셀 세트의 제1 및 제2 값에 적용되는 가중치는 각각의 애플리케이션에 따라 분수 또는 정수일 수 있다.
도 20의 프로세스(3000)와 같은 경계 평활화 프로세스는 예를 들어, 회로 및 회로에 연결된 메모리를 포함하는 도 1에 도시된 바와 같은 이미지 인코더에 의해 수행될 수 있다. 회로는 동작시에, 비직사각형 형상을 갖는 제1 파티션과 이미지 블록으로부터 분할된 제2 파티션 사이의 경계를 따라 경계 평활화 동작을 수행한다(도 20, 단계 S3001). 경계 평활화 동작 단계는, 제1 파티션의 정보를 이용하여, 경계를 따라 제1 파티션의 픽셀 세트의 제1 값을 제1 예측하는 단계(단계 S3002); 상기 제2 파티션의 정보를 이용하여 상기 경계를 따라 상기 제1 파티션의 픽셀 세트의 제2 값을 제2 예측하는 단계(단계 S3003); 제1 값과 제2 값을 가중하는 단계(단계 S3004); 및 가중된 제1 값 및 가중된 제2 값을 사용하여 제1 파티션을 인코딩하는 단계(단계 S3005)를 포함한다.
다른 실시예에 따르면, 도 1에 도시된 바와 같이, 이미지 인코더가 제공되며, 동작 중에 오리지널 픽처를 수신하여 블록들로 분할하는 스플리터(102); 동작시, 스플리터로부터 블록 및 예측 컨트롤러(128)로부터 예측을 수신하고, 대응하는 블록으로부터 각각의 예측을 감산하여 잔차를 출력하는 가산기(104); 동작시, 가산기(104)로부터 출력된 잔차에 대해 변환을 수행하여 변환 계수를 출력하는 변환기(106); 동작시, 변환 계수를 양자화하여 양자화된 변환 계수를 생성하는 양자화기(108); 동작시, 양자화된 변환 계수를 인코딩하여 비트스트림을 생성하는 엔트로피 인코더(110); 및 인터 예측기(126), 인트라 예측기(124) 및 메모리(118, 122)에 연결된 예측 컨트롤러(128)를 포함하며, 인터 예측기(126)는 동작시, 인코딩된 참조 픽처의 참조 블록에 기초하여 커런트 블록의 예측을 생성하고, 인트라 예측기(124)는 동작시 커런트 픽처에서 인코딩된 참조 블록에 기초하여 커런트 블록의 예측을 생성한다. 예측 컨트롤러(128)는, 비직사각 형상을 갖는 제1 파티션과 이미지 블록으로부터 분할된 제2 파티션의 경계를 따라 경계 평활화 동작을 수행한다(도 20, 단계 S3001). 경계 평활화 동작은: 제1 파티션의 정보를 이용하여, 경계를 따라 제1 파티션의 픽셀 세트의 제1 값을 제1 예측하는 단계(단계 S3002); 상기 제2 파티션의 정보를 이용하여 상기 경계를 따라 상기 제1 파티션의 픽셀 세트의 제2 값을 제2 예측하는 단계(단계 S3003); 제1 값과 제2 값을 가중하는 단계(단계 S3004); 및 가중된 제1 값 및 가중된 제2 값을 사용하여 제1 파티션을 인코딩하는 단계(단계 S3005)를 포함한다.
다른 실시예에 따르면, 이미지 디코더가 도 10에 도시된 바와 같이 제공되며, 예를 들어, 회로 및 회로에 연결된 메모리를 포함한다. 회로는 동작시에, 비직사각형 형상을 갖는 제1 파티션과 이미지 블록으로부터 분리된 제2 파티션 사이의 경계를 따라 경계 평활화 동작을 수행한다(도 20, 단계 S3001). 경계 평활화 동작은, 제1 파티션의 정보를 이용하여, 경계를 따라 제1 파티션의 픽셀 세트의 제1 값을 제1 예측하는 단계(단계 S3002); 상기 제2 파티션의 정보를 이용하여 상기 경계를 따라 상기 제1 파티션의 픽셀 세트의 제2 값을 제2 예측하는 단계(단계 S3003); 제1 값과 제2 값을 가중하는 단계(단계 S3004); 및 가중된 제1 값 및 가중된 제2 값을 사용하여 제1 파티션을 디코딩하는 단계(단계 S3005)를 포함한다.
다른 실시예에 따르면, 도 10에 도시된 이미지 디코더가 제공되며, 이는 동작시, 양자화된 변환 계수를 획득하기 위하여 인코딩된 비트스트림을 수신 및 디코딩하는 엔트로피 디코더(202); 동작시, 변환 계수를 획득하기 위하여 양자화된 변환 계수를 역 양자화하고, 잔차를 획득하기 위하여 변환 계수를 역변환하는 역 양자화기(204) 및 변환기(206); 동작시, 역 양자화기(204) 및 변환기(206)로부터 출력된 잔차 및 예측 컨트롤러(220)로부터 출력된 예측을 가산하여 블록을 재구성하는 가산기(208); 및 인터 예측기(218), 인트라 예측기(216) 및 메모리(210, 214)에 연결된 예측 컨트롤러(220)를 포함하며, 인터 예측기(218)는 동작시 디코딩된 참조 픽처의 참조 블록에 기초하여 커런트 블록의 예측을 생성하고, 인트라 예측기(216)는 동작시 커런트 픽처에서 디코딩된 참조 블록에 기초하여 커런트 블록의 예측을 생성한다. 예측 컨트롤러(220)는 비직사각형의 제1 파티션과 이미지 블록에서 분리된 제2 파티션 사이의 경계를 따라 경계 평활화 동작을 수행한다(도 20, 단계 S3001). 경계 평활화 동작은, 제1 파티션의 정보를 이용하여, 경계를 따라 제1 파티션의 픽셀 세트의 제1 값을 제1 예측하는 단계(단계 S3002); 상기 제2 파티션의 정보를 이용하여 상기 경계를 따라 상기 제1 파티션의 픽셀 세트의 제2 값을 제2 예측하는 단계(단계 S3003); 제1 값과 제2 값을 가중하는 단계(단계 S3004); 및 가중된 제1 값 및 가중된 제2 값을 사용하여 제1 파티션을 디코딩하는 단계(단계 S3005)를 포함한다.
(파티션 파라미터 신택스를 사용한 엔트로피 인코딩 및 디코딩)
도 11에 도시된 바와 같이, 단계 S1005에서, 다양한 실시예에 따르면, 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션으로 분할되는 이미지 블록은 이미지 블록의 비직사각형 분할을 나타내는 파티션 파라미터를 포함하는 하나 이상의 파라미터를 이용하여 인코딩되거나 디코딩될 수 있다. 다양한 실시예들에서, 이러한 파티션 파라미터는 예를 들어, 분할에 적용되는 분할 방향(예를 들어, 좌상에서 우하로 또는 우상에서 좌하로, 도 12 참조)과 이하에서보다 상세히 설명될 단계 S1002에서 예측된 제1 및 제2 모션 벡터를 공동으로 인코딩할 수 있다.
도 15는 샘플 파티션 파라미터("제1 인덱스 값") 및 파티션 파라미터에 의해 공동으로 인코딩된 정보 세트의 테이블이다. 파티션 파라미터들("제1 인덱스 값들")은 0 내지 6의 범위이고, 이미지 블록을 둘다 삼각형(도 12 참조)인 제1 파티션 및 제2 파티션으로 분할하는 방향, 제1 파티션에 대해 예측된 제1 모션 벡터(도 11, 단계 S1002) 및 제2 파티션에 대해 예측된 제2 모션 벡터(도 11, 단계 S1002)를 공동으로 인코딩한다. 구체적으로, 파티션 파라미터 0은 분할 방향이 좌상 코너에서 우하 코너로 이고, 제1 모션 벡터는 제1 파티션에 대한 제1 모션 벡터 후보 세트에 나열된 "제2" 모션 벡터이며, 제2 모션 벡터는 제2 파티션에 대한 제2 모션 벡터 후보 세트에 나열된 "제1" 모션 벡터인 것을 인코딩한다.
파티션 파라미터 1은 분할 방향이 우상 코너에서 좌하 코너이고, 제1 모션 벡터가 제1 파티션에 대한 제1 모션 벡터 후보 세트에 나열된 "제1" 모션 벡터이며, 제2 모션 벡터는 제2 파티션에 대한 제2 모션 벡터 후보 세트에 나열된 "제2" 모션 벡터인 것을 인코딩한다. 파티션 파라미터 2는 분할 방향이 우상에서 좌하이고, 제1 모션 벡터는 제1 파티션에 대한 제1 모션 벡터 후보 세트에 나열된 "제2" 모션 벡터이며, 제2 모션 벡터는 제2 파티션에 대한 제2 모션 벡터 후보 세트에 나열된 "제1" 모션 벡터인 것을 인코딩한다. 파티션 파라미터 3은 분할 방향이 좌상 코너에서 우하 코너로 이고, 제1 모션 벡터는 제1 파티션에 대한 제1 모션 벡터 후보 세트에 나열된 "제2" 모션 벡터이며, 제2 모션 벡터는 제2 파티션에 대한 제2 모션 벡터 후보 세트에 나열된 "제2" 모션 벡터인 것을 인코딩한다. 파티션 파라미터 4는 분할 방향이 우상 코너에서 좌하 코너이고, 제1 모션 벡터는 제1 파티션에 대한 제1 모션 벡터 후보 세트에 나열된 "제2" 모션 벡터이며, 제2 모션 벡터는 제2 파티션에 대한 제2 모션 벡터 후보 세트에 나열된 "제3" 모션 벡터인 것을 인코딩한다. 파티션 파라미터 5는 분할 방향이 좌상 코너에서 우하 코너로이고, 제1 모션 벡터는 제1 파티션에 대한 제1 모션 벡터 후보 세트에 나열된 "제3" 모션 벡터이며, 제2 모션 벡터는 제2 파티션에 대한 제2 모션 벡터 후보 세트에 나열된 "제1" 모션 벡터인 것을 인코딩한다. 파티션 파라미터 6는 분할 방향이 좌상 코너에서 우하 코너로이고, 제1 모션 벡터는 제1 파티션에 대한 제1 모션 벡터 후보 세트에 나열된 "제4" 모션 벡터이며, 제2 모션 벡터는 제2 파티션에 대한 제2 모션 벡터 후보 세트에 나열된 "제1" 모션 벡터이다.
도 22는 인코더 측에서 수행되는 방법(4000)을 나타내는 흐름도이다. 단계 S4001에서, 프로세스는 분할을 나타내는 파티션 파라미터에 기초하여 이미지 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할한다. 예를 들어, 도 15에 도시된 바와 같이, 파티션 파라미터는 이미지 블록을 분할하는 방향을 나타낼 수 있다(예를 들어, 우상 코너에서 좌하 코너로 또는 좌상 코너에서 우하 코너로). 단계 S4002에서, 프로세스는 제1 파티션 및 제2 파티션을 인코딩한다. 단계 S4003에서, 프로세스는 파티션 파라미터를 포함하는 하나 이상의 파라미터를 비트스트림에 기록하고, 디코더 측은 이를 수신하여 (인코더 측에서 수행된 바와 같이) 디코더 측에서의 제1 및 제2 파티션에 대한 (인코더 측에서 수행된 것과) 동일한 예측 공정을 수행하기 위하여 하나 이상의 파라미터를 획득하기 위하여 디코드할 수 있다. 파티션 파라미터를 포함하는 하나 이상의 파라미터는 제1 파티션의 비직사각형 형상, 제2 파티션의 형상, 이미지 블록을 분할하여 제1 및 제2 파티션을 획득하기 위하여 사용되는 분할 방향, 제1 파티션의 제1 모션 벡터, 제2 파티션의 제2 모션 벡터 등과 같은 다양한 정보를 공동으로 또는 별도로 인코딩할 수 있다.
도 23은 디코더 측에서 수행되는 방법(5000)을 예시하는 흐름도이다. 단계 S5001에서, 프로세스는 비트스트림으로부터 하나 이상의 파라미터를 파싱하고, 여기서 하나 이상의 파라미터는 이미지 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 것을 나타내는 파티션 파라미터를 포함한다. 비트스트림으로부터 파싱된 파티션 파라미터를 포함하는 하나 이상의 파라미터는 제1 파티션의 비직사각형 형상, 제2 파티션의 형상, 제1 및 제2 파티션을 획득하기 위하여 이미지 블록을 분할하는데 이용되는 분할 방향, 제1 파티션의 제1 모션 벡터, 제2 파티션의 제2 모션 벡터 등과 같이 인코더 측에서 수행되는 것과 동일한 예측 공정을 수행하기 위해서 디코더 측에서 필요한 다양한 조각의 정보를 공동으로 또는 별도로 인코딩할 수 있다. 단계 S5002에서 프로세스(5000)는 비트스트림으로부터 파싱된 파티션 파라미터에 기초하여 이미지 블록을 복수의 파티션으로 분할한다. 단계 S5003에서, 프로세스는 이미지 블록으로부터 분할된 바와 같이 제1 파티션 및 제2 파티션을 디코딩한다.
도 24는 본질적으로 도 15에서 상술한 샘플 테이블과 유사한 샘플 파티션 파라미터("제1 인덱스 값") 및 파티션 파라미터에 의해 공동으로 인코딩된 정보 세트의 테이블이다. 도 24에서, 파티션 파라미터("제1 인덱스 값")는 0 내지 6의 범위이며, 이미지 블록으로부터 분할된 제1 및 제2 파티션의 형상, 이미지 블록을 제1 및 제2 파티션으로 분할하는 방향, 제1 파티션에 대해 예측된 제1 모션 벡터(도 11, 단계 S1002) 및 제2 파티션에 대해 예측된 제2 모션 벡터(도 11, 단계 S1002)를 공동으로 인코딩한다. 구체적으로, 파티션 파라미터 0은 제1 및 제2 파티션 중 어느 것도 삼각형 형상을 갖지 않으므로, 분할 방향 정보는 "N/A"이고, 제1 모션 벡터 정보는 "N/A"이며, 제2 모션 벡터 정보는 "N/A" 인 것으로 인코딩한다.
파티션 파라미터 1은 제1 파티션과 제2 파티션이 삼각형이고, 분할 방향은 좌상 코너에서 우하 코너로 이고, 제1 모션 벡터는 제1 파티션에 대한 제1 모션 벡터 후보 세트에 나열된 "제2" 모션 벡터이고, 또한 제2 모션 벡터는 제2 파티션에 대한 제2 모션 벡터 후보 세트에 나열된 "제1" 모션 벡터인 것으로 인코딩한다. 파티션 파라미터 2는 제1 파티션과 제2 파티션이 삼각형이고, 분할 방향은 우상에서 좌하로이고, 제1 모션 벡터는 제1 파티션에 대한 제1 모션 벡터 후보 세트에 나열된 "제1" 모션 벡터이고, 또한 제2 모션 벡터는 제2 파티션에 대한 제2 모션 벡터 후보 세트에 나열된 "제2" 모션 벡터이다. 파티션 파라미터 3은 제1 과 제2 파티션이 삼각형이고, 분할 방향은 우상에서 좌하로 이고, 제1 모션 벡터는 제1 파티션에 대한 제1 모션 벡터 후보 세트에 나열된 "제2" 모션 벡터이고, 제2 모션 벡터는 제2 파티션에 대한 제2 모션 벡터 후보 세트에 나열된 "제1" 모션 벡터인 것으로 인코딩한다. 파티션 파라미터 4는 제1 파티션과 제2 파티션이 삼각형이고, 분할 방향은 좌상 코너에서 우하 코너로 이고, 제1 모션 벡터는 제1 파티션에 대한 제1 모션 벡터 후보 세트에 나열된 "제2" 모션 벡터이고, 제2 모션 벡터는 제2 파티션에 대한 제2 모션 벡터 후보 세트에 나열된 "제2" 모션 벡터인 것으로 인코딩한다. 파티션 파라미터 5는 제1 및 제2 파티션이 삼각형이고, 분할 방향은 우상에서 좌하로 이고, 제1 모션 벡터는 제1 파티션에 대한 제1 모션 벡터 후보 세트에 나열된 "제2" 모션 벡터이고, 제2 모션 벡터는 제2 파티션에 대한 제2 모션 벡터 후보 세트에 나열된 "제3" 모션 벡터인 것으로 인코딩한다. 파티션 파라미터 6은 제1 및 제2 파티션이 삼각형이고, 분할 방향은 좌상 코너에서 우하 코너로 이고, 제1 모션 벡터는 제1 파티션에 대한 제1 모션 벡터 후보 세트에 나열된 "제3" 모션 벡터이고, 제2 모션 벡터는 제2 파티션에 대한 제2 모션 벡터 후보 세트에 나열된 "제1" 모션 벡터인 것으로 인코딩한다.
일부 구현들에 따르면, 파티션 파라미터들(인덱스 값들)은 이진화 방식에 따라 이진화될 수 있으며, 이진화 방식은 적어도 하나 또는 하나 이상의 파라미터들의 값에 따라 선택된다. 도 16은 인덱스 값(파티션 파라미터 값)을 이진화하는 샘플 이진화 방식을 도시한다.
도 25는 제1 파라미터 및 제2 파라미터의 샘플 조합의 테이블이며, 그 중 하나는 이미지 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 것을 나타내는 파티션 파라미터이다. 이 예에서, 파티션 파라미터는 다른 파라미터들 중 하나 이상에 의해 인코딩된 다른 정보를 공동으로 인코딩하지 않고 이미지 블록의 분할을 나타내는 데 사용될 수 있다.
도 25의 제1 예에서, 제1 파라미터는 이미지 블록 크기를 나타내는 데 사용되고, 제2 파라미터는 이미지 블록으로부터 분할된 복수의 파티션 중 적어도 하나가 삼각형 형상을 갖는 것을 나타내기 위한 파티션 파라미터(플래그)로서 사용된다. 이러한 제1 및 제2 파라미터의 조합은, 예를 들어, 1) 이미지 블록 크기가 64 x 64보다 클 때, 삼각형 형상 파티션이 없거나, 2) 이미지 블록의 폭과 높이의 비율이 4 보다 크면(예: 64 x 4), 삼각형 모양 파티션이 없음을 나타낼 때 사용될 수 있다.
도 25의 제2 예에서, 제1 파라미터는 예측 모드를 나타내기 위해 사용되고, 제2 파라미터는 이미지 블록으로부터 분할된 복수의 파티션 중 적어도 하나가 삼각형 형상을 갖는 것을 나타내기 위한 파티션 파라미터(플래그)로서 사용된다. 제1 및 제2 파라미터의 이러한 조합은, 예를 들어, 1) 이미지 블록이 인트라 모드로 코딩될 때, 삼각 파티션이 없음을 나타내기 위해 사용될 수 있다.
도 25의 제3 예에서, 제1 파라미터는 이미지 블록으로부터 분할된 복수의 파티션 중 적어도 하나가 삼각형 모양을 갖는 것을 나타내기 위한 파티션 파라미터(플래그)로서 사용되고, 제2 파라미터는 예측 모드를 나타내는데 이용된다. 제1 및 제2 파라미터의 이러한 조합은, 예를 들어, 1) 이미지 블록으로부터 분할된 복수의 파티션 중 적어도 하나가 삼각형 형상을 가질 때, 이미지 블록이 인터 코딩되어야 함을 나타내기 위해 사용될 수 있다.
도 25의 제4 예에서, 제1 파라미터는 인접한 블록의 모션 벡터를 나타내고, 제2 파라미터는 이미지 블록을 2 개의 삼각형으로 분할하는 방향을 나타내는 파티션 파라미터로서 사용된다. 제1 및 제2 파라미터의 이러한 조합은 예를 들어 1) 인접한 블록의 모션 벡터가 대각선 방향 일 때, 이미지 블록을 2 개의 삼각형으로 분할하는 방향이 좌상 코너에서 우하 코너로임을 나타내는데 사용될 수 있다.
도 25의 제5 예에서, 제1 파라미터는 인접한 블록의 인트라 예측 방향을 나타내고, 제2 파라미터는 이미지 블록을 2 개의 삼각형으로 분할하는 방향을 나타내는 파티션 파라미터로서 사용된다. 제1 및 제2 파라미터의 이러한 조합은, 예를 들어, 1) 인접한 블록의 인트라 예측 방향이 역 대각선 방향일 때, 이미지 블록을 2개의 삼각형으로 분할하는 방향이 우상 코너에서 좌하 코너로임을 나타내는데 사용될 수 있다.
파티션 파라미터를 포함하는 하나 이상의 파라미터의 테이블 및 도 15, 도 24 및 도 25에 도시된 바와 같이 어떤 정보가 공동으로 또는 별도로 인코딩되는지가 단지 예로서만 제공되며, 전술한 파티션 신택스 동작의 일부로서 다양한 정보를 공동으로 또는 별도로 인코딩하는 수개의 다른 방식이 본 발명의 범위 내에 있음을 이해해야 한다. 예를 들어, 파티션 파라미터는 제1 파티션이 삼각형, 사다리꼴, 또는 적어도 5 개의 변 및 각을 갖는 다각형임을 나타낼 수 있다. 파티션 파라미터는 제2 파티션이 삼각형, 사다리꼴, 및 적어도 5 개의 변 및 각을 갖는 다각형과 같은 비직사각형 형상을 가질 수 있음을 나타낼 수 있다. 파티션 파라미터는 제1 파티션의 비직사각형 형상, (비직사각형 또는 직사각형 일 수있는) 제2 파티션의 형상, 이미지 블록을 복수의 파티션으로 분할하는데 적용되는 분할 방향(예를 들어, 이미지 블록의 좌상 코너에서 우하 코너로, 및 이미지 블록의 우상 코너에서 좌하 코너로)과 같은 분할에 관한 하나 이상의 정보를 나타낼 수 있다. 파티션 파라미터는 제1 파티션의 제1 모션 벡터, 제2 파티션의 제2 모션 벡터, 이미지 블록 크기, 예측 모드, 인접한 블록의 모션 벡터, 인접 블록의 인트라 예측 방향 등과 같은 추가 정보를 공동으로 인코딩할 수 있다. 대안적으로, 임의의 추가 정보는 파티션 파라미터 이외의 하나 이상의 파라미터에 의해 개별적으로 인코딩될 수 있다.
도 22의 프로세스(4000)와 같은 파티션 신택스 동작은 예를 들어 도 1에 도시된 것과 같은 이미지 인코더에 의해 수행될 수 있으며, 이는 회로 및 회로에 연결된 메모리를 포함한다. 회로는 동작시에, 이미지 블록을 분할을 나타내는 파티션 파라미터에 기초하여 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 단계(도 22, 단계 S4001); 제1 파티션 및 제2 파티션을 인코딩하는 단계(S4002); 및 상기 파티션 파라미터를 포함하는 하나 이상의 파라미터를 비트스트림에 기록하는 단계(S4003)를 포함하는 파티션 신택스 동작을 수행한다.
다른 실시예에 따르면, 도 1에 도시된 바와 같이. 이미지 인코더가 제공되며, 이는 동작 중에 오리지널 픽처를 수신하여 블록들로 분할하는 스플리터(102); 동작시, 스플리터로부터 블록 및 예측 컨트롤러(128)로부터 예측을 수신하고, 대응하는 블록으로부터 각각의 예측을 감산하여 잔차를 출력하는 가산기(104); 동작시, 가산기(104)로부터 출력된 잔차에 대해 변환을 수행하여 변환 계수를 출력하는 변환기(106); 동작시, 변환 계수를 양자화하여 양자화된 변환 계수를 생성하는 양자화기(108); 동작시, 양자화된 변환 계수를 인코딩하여 비트스트림을 생성하는 엔트로피 인코더(110); 및 인터 예측기(126), 인트라 예측기(124) 및 메모리(118, 122)에 연결된 예측 컨트롤러(128)를 포함하며, 인터 예측기(126)는 동작시, 인코딩된 참조 픽처의 참조 블록에 기초하여 커런트 블록의 예측을 생성하고, 인트라 예측기(124)는 동작시 커런트 블록의 인코딩된 참조 블록을 기초로 커런트 블록의 예측을 생성한다. 예측 컨트롤러(128)는 동작시에 분할을 나타내는 파티션 파라미터에 기초하여 이미지 블록을 비직사각형 형상을 갖는 제1파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하고(도 22, 단계 S4001), 제1 파티션 및 제2 파티션을 인코딩한다(단계 S4002). 엔트로피 인코더(110)는 동작시, 파티션 파라미터를 포함하는 하나 이상의 파라미터를 비트스트림에 기록한다(단계 S4003).
다른 실시예에 따르면, 이미지 디코더는 예를 들어 도 10에 도시된 바와 같이 제공되며, 이는 회로 및 회로에 연결된 메모리를 포함한다. 회로는 동작시, 비트스트림으로부터 하나 이상의 파라미터를 파싱하는 단계로서, 하나 이상의 파라미터는 이미지 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 것을 나타내는 파티션 파라미터를 포함하는 단계(도 23, 단계 S5001); 파티션 파라미터를 기초로 이미지 블록을 복수의 파티션으로 분할하는 단계(S5002); 및 제1 파티션 및 제2 파티션을 디코딩하는 단계(S5003)을 포함하는 파티션 신택스 동작을 수행한다.
다른 실시예에 따르면, 도 10에 도시된 바와 같은 이미지 디코더가 제공되며, 이는 동작시, 양자화된 변환 계수를 획득하기 위하여 인코딩된 비트스트림을 수신 및 디코딩하는 엔트로피 디코더(202); 동작시, 변환 계수를 획득하기 위하여 양자화된 변환 계수를 역 양자화하고, 잔차를 획득하기 위하여 변환 계수를 역변환하는 역 양자화기(204) 및 변환기(206); 동작시, 역 양자화기(204) 및 변환기(206)로부터 출력된 잔차 및 예측 컨트롤러(220)로부터 출력된 예측을 가산하여 블록을 재구성하는 가산기(208); 인터 예측기(218), 인트라 예측기(216) 및 메모리(210, 214)에 연결된 예측 컨트롤러(220)를 포함하며, 인터 예측기(218)는 동작시 디코딩된 참조 픽처의 참조 블록에 기초하여 커런트 블록의 예측을 생성하고, 인트라 예측기(216)는 동작시 커런트 픽처에서 디코딩된 참조 블록에 기초하여 커런트 블록의 예측을 생성한다. 엔트로피 디코더(202)는 동작시: 비트스트림으로부터 하나 이상의 파라미터를 파싱하고, 여기서 하나 이상의 파라미터는 이미지 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 것을 나타내는 파티션 파라미터를 포함하고(도 23, 단계 S5001); 파티션 파라미터에 기초하여 이미지 블록을 복수의 파티션으로 분할하고(S5002); 일부 구현들에서, 예측 컨트롤러(220)와 협력하여 제1 파티션 및 제2 파티션을 디코딩한다(S5003).
(구현 및 응용)
상기 각 실시예에서 설명된 바와 같이, 각각의 기능 또는 동작 블록은 예를 들어 MPU(마이크로 프로세싱 유닛) 및 메모리로서 실현될 수 있다. 또한, 기능 블록들 각각에 의해 수행되는 프로세스들은 ROM과 같은 기록 매체 상에 기록된 소프트웨어(프로그램)를 판독 및 실행하는 프로세서와 같은 프로그램 실행 유닛으로서 실현될 수 있다. 소프트웨어가 배포될 수 있다. 소프트웨어는 반도체 메모리와 같은 다양한 기록 매체에 기록될 수 있다. 각 기능 블록은 하드웨어(전용 회로)로 구현될 수도 있다.
각각의 실시예에서 설명된 처리는 단일 장치(시스템)를 사용하는 통합 처리를 통해 실현될 수 있고, 대안적으로 복수의 장치를 사용하는 분산 처리를 통해 실현될 수 있다. 또한, 상술한 프로그램을 실행하는 프로세서는 단일 프로세서 또는 복수의 프로세서 일 수 있다. 다시 말해, 통합 처리가 수행될 수 있고, 대안적으로 분산 처리가 수행될 수 있다.
본 개시의 실시예는 상기 예시적인 실시예에 한정되지 않으며; 예시적인 실시예들에 대한 다양한 수정들이 이루어질 수 있으며, 그 결과는 또한 본 발명의 실시예들의 범위 내에 포함된다.
다음에, 상기 각 실시 형태에서 설명한 동화상 인코딩 방법(이미지 인코딩 방법) 및 동화상 디코딩 방법(이미지 디코딩 방법)의 응용예 및 응용예를 실현하는 각종 시스템에 대하여 설명한다. 이러한 시스템은 이미지 인코딩 방법을 사용하는 이미지 인코더, 이미지 디코딩 방법을 사용하는 이미지 디코더, 또는 이미지 인코더 및 이미지 디코더를 모두 포함하는 이미지 인코더 디코더를 포함하는 것을 특징으로 할 수 있다. 그러한 시스템의 다른 구성은 경우에 따라 수정될 수 있다.
(사용 예)
도 26은 컨텐츠 배포 서비스를 구현하기에 적합한 컨텐츠 제공 시스템(ex100)의 전체 구성을 도시한다. 통신 서비스가 제공되는 영역은 원하는 크기의 셀로 분할되고, 도시된 예에서 고정 무선국인 기지국(ex106, ex107, ex108, ex109, ex110)은 각각의 셀에 위치된다.
컨텐츠 제공 시스템(ex100)에서, 컴퓨터(ex111), 게임 장치(ex112), 카메라(ex113), 가전 기기(ex114) 및 스마트폰(ex115)을 포함하는 장치는 인터넷 서비스 제공자(ex102) 또는 통신 네트워크(ex104) 및 기지국(ex106 내지 ex110)을 통해 인터넷(ex101)에 연결된다. 컨텐츠 제공 시스템(ex100)은 상기 장치들의 임의의 조합을 결합하고 연결할 수 있다. 다양한 구현들에서, 디바이스들은 기지국들(ex106 내지 ex110)을 통하기 보다는 전화 네트워크 또는 근거리 통신을 통해 직접적으로 또는 간접적으로 함께 연결될 수 있다. 또한, 스트리밍 서버(ex103)는 예를 들어 인터넷(ex101)을 통해 컴퓨터(ex111), 게임 장치(ex112), 카메라(ex113), 가전 기기(ex114) 및 스마트폰(ex115)을 포함하는 장치에 연결될 수 있다. 스트리밍 서버(ex103)는 또한 위성(ex116)을 통해 비행기(ex117)의 핫스팟(hotspot)에 있는 단말에 연결될 수 있다.
기지국(ex106 내지 ex110) 대신에, 무선 액세스 포인트 또는 핫스팟이 사용될 수 있다. 스트리밍 서버(ex103)는 인터넷(ex101) 또는 인터넷 서비스 제공자(ex102)를 통하는 대신에 통신 네트워크(ex104)에 직접 연결될 수 있고, 위성(ex116)을 통하는 대신에 비행기(ex117)에 직접 연결될 수 있다.
카메라(ex113)는 디지털 카메라와 같은 스틸 이미지와 비디오를 캡처할 수 있는 장치이다. 스마트폰(ex115)은 차세대 5G 시스템뿐만 아니라 2G, 3G, 3.9G 및 4G 시스템의 이동 통신 시스템 표준에 따라 작동할 수있는 스마트폰 장치, 휴대폰 또는 개인 휴대 전화 시스템(PHS) 전화이다.
가전 기기(ex114)는 예를 들어 냉장고 또는 가정용 연료 전지 열병합 시스템에 포함된 장치이다.
컨텐츠 제공 시스템(ex100)에서, 이미지 및/또는 비디오 캡처 기능을 포함하는 단말은 예를 들어 기지국(ex106)을 통해 스트리밍 서버(ex103)에 연결함으로써 라이브 스트리밍이 가능하다. 라이브 스트리밍인 경우, 단말(예를 들어, 컴퓨터(ex111), 게임 장치(ex112), 카메라(ex113), 가전 기기(ex114), 스마트폰(ex115) 또는 비행기(ex117))는 단말을 통해 사용자에 의해 캡쳐된 정지 이미지 또는 비디오 콘텐츠에 대해 상기 실시예에서 설명된 인코딩 처리를 수행할 수 있고, 인코딩을 통해 획득된 비디오 데이터와 비디오에 대응하는 오디오를 인코딩하여 얻어진 오디오 데이터를 멀티플렉스할 수 있고, 획득된 데이터를 스트리밍 서버(ex103)에 전송할 수 있다. 다시 말해, 단말은 본 개시의 일 양태에 따른 이미지 인코더로서 기능한다.
스트리밍 서버(ex103)는 전송된 컨텐츠 데이터를 스트림을 요청하는 클라이언트에게 스트리밍한다. 클라이언트 예는 전술한 인코딩된 데이터를 디코딩할 수있는 컴퓨터(ex111), 게임 장치(ex112), 카메라(ex113), 가전 기기(ex114), 스마트폰(ex115) 및 비행기(ex117) 내부의 단말을 포함한다. 스트리밍된 데이터를 수신하는 장치는 수신된 데이터를 디코딩 및 재생한다. 다시 말해서, 장치는 본 개시의 일 양태에 따라 각각 이미지 디코더로서 기능할 수 있다.
(분산 처리)
스트리밍 서버(ex103)는 데이터의 프로세싱, 기록 및 스트리밍과 같은 태스크가 분할되는 복수의 서버 또는 컴퓨터로서 실현될 수 있다. 예를 들어, 스트리밍 서버(ex103)는 전세계에 위치한 다수의 에지 서버를 연결하는 네트워크를 통해 콘텐츠를 스트리밍하는 CDN(Content Delivery Network)으로 실현될 수 있다. CDN에서 클라이언트 물리적으로 근처에 있는 에지 서버는 클라이언트에 동적으로 할당된다. 로드 시간을 줄이기 위해 콘텐츠가 캐시되고 에지 서버로 스트리밍된다. 예를 들어, 트래픽 급증으로 인한 일부 유형의 오류 또는 연결 변경시, 예를 들어, 프로세싱을 복수의 에지 서버들 사이에서 분할하거나, 스트리밍 듀티를 다른 에지 서버로 전환하고 스트리밍을 계속함에 의해 네트워크의 영향을 받는 부분을 피할 수 있으므로 고속으로 안정적으로 데이터를 스트리밍할 수 있다.
분산화는 스트리밍 처리 부문에만 국한되지 않으며; 캡처된 데이터의 인코딩은 서버 측 상의 단말들 사이에서 분할되어 이들에 의해 수행되거나, 모두에서 수행될 수 있다. 일례에서, 전형적인 인코딩에서, 프로세싱은 2 개의 루프에서 수행된다. 제1 루프는 이미지가 프레임 단위 또는 장면 단위로 얼마나 복잡한지를 감지하거나 인코딩 로드를 감지하기 위한 것이다. 제2 루프는 이미지 품질을 유지하고 인코딩 효율성을 향상시키는 처리를 하기 위한 것이다. 예를 들어, 단말이 인코딩의 제1 루프를 수행하도록 하고 콘텐츠를 수신한 서버측이 제2 루프를 수행하도록 함으로써 단말의 처리 부하를 감소시키고 콘텐츠의 품질 및 인코딩 효율을 향상시킬 수 있다. 그러한 경우에, 디코딩 요청을 수신하면, 하나의 단말에 의해 수행된 제1 루프로 인해 초래된 인코딩된 데이터가 대략 실시간으로 다른 단말 상에서 수신되고 재생되도록 하는 것이 가능하다. 이를 통해 원활한 실시간 스트리밍을 실현할 수 있다.
다른 예에서, 카메라(ex113) 등은 이미지로부터 특징량을 추출하고, 특징량과 관련된 데이터를 메타데이터로서 압축하고, 압축된 메타데이터를 서버로 전송한다. 예를 들어, 서버는 특징량에 기초하여 객체의 중요도를 결정하고, 이미지의 의미(또는 콘텐츠 중요도)에 적합한 압축을 수행하도록 양자화 정확도를 그에 따라 변경한다. 특징량 데이터는 서버에 의해 수행된 제2 압축 패스 동안 모션 벡터 예측의 정밀도 및 효율을 개선하는데 특히 효과적이다. 또한, 가변 길이 코딩(VLC)과 같은 비교적 낮은 프로세싱 로드를 갖는 인코딩은 단말에 의해 처리될 수 있고, 컨텍스트 적응적 이진 산술 코딩(CABAC)과 같이 비교적 높은 프로세싱 로드를 갖는 인코딩은 서버에 의해 처리될 수 있다.
또 다른 예에서, 대략 동일한 장면의 복수의 비디오가 예를 들어 경기장, 쇼핑몰 또는 공장에서 복수의 단말에 의해 캡처되는 경우가 있다. 이러한 경우, 예를 들어, 비디오를 캡처한 복수의 단말과, 필요에 따라 비디오를 캡처하지 않은 다른 단말과 서버 사이에서 처리 작업을 유닛 단위로 나누어 인코딩이 분산될 수 있다. 유닛들은 예를 들어, 픽처들의 그룹(groups of picture)(GOP), 픽처들, 또는 픽처 분할에 기인한 타일일 수 있다. 따라서 로드 시간을 줄이고 실시간에 가까운 스트리밍을 달성할 수 있다.
비디오는 거의 동일한 장면에 있기 때문에, 단말에 의해 캡처된 비디오가 상호 참조될 수 있도록 서버에 의해 관리 및/또는 지시가 수행될 수 있다. 또한, 서버는 단말들로부터 인코딩된 데이터를 수신하고, 데이터 항목들 사이의 참조 관계를 변경하거나, 픽처 자체를 보정 또는 교체한 다음, 인코딩을 수행할 수 있다. 따라서 개별 데이터 항목에 대한 품질과 효율성이 향상된 스트림을 생성할 수 있다.
또한, 서버는 트랜스 코딩을 수행한 후 비디오 데이터의 인코딩 포맷을 변환하여 비디오 데이터를 스트리밍할 수 있다. 예를 들어, 서버는 인코딩 형식을 MPEG에서 VP(예를 들어, VP9)로 변환하고, H.264를 H.265로 변환할 수 있다.
이러한 방식으로, 인코딩은 단말 또는 하나 이상의 서버에 의해 수행될 수 있다. 따라서, 이하의 설명에서 인코딩을 수행하는 장치를 "서버"또는 "단말"이라 칭하지만, 서버에 의해 수행되는 프로세스의 일부 또는 전부는 단말에 의해 수행될 수 있고, 마찬가지로 단말에 의해 수행되는 프로세스의 일부 또는 전부는 서버에 의해 수행될 수 있다. 이는 디코딩 프로세스에도 적용된다.
(3D, 멀티 앵글)
카메라(ex113) 및/또는 스마트폰(ex115)과 같은 복수의 단말에 의해, 동시에 캡처된 다른 장면 또는 다른 각도에서 캡처된 동일한 장면의 이미지 또는 비디오로부터 결합된 이미지 또는 비디오의 사용이 증가하고있다. 단말들에 의해 캡처된 비디오들은, 예를 들어, 단말들 사이에서 별도로 획득된 상대적 위치 관계, 또는 일치하는 특징점을 갖는 비디오의 영역들에 기초하여 결합된다.
서버는 2 차원 동영상의 인코딩에 부가하여, 동영상의 장면 분석에 기초하여 정지 영상을 자동으로 또는 사용자가 지정한 시점에 인코딩하고, 인코딩된 정지 영상을 수신 단말로 전송할 수 있다. 또한, 서버가 2 차원 동영상에 더하여 비디오 캡처 단말들 사이의 상대적인 위치 관계를 얻을 수 있는 경우, 서버는 상이한 각도로부터 캡처된 동일한 장면의 비디오에 기초하여 장면의 3 차원 지오메트리를 생성할 수 있다. 서버는, 예를 들어 포인트 클라우드(point cloud)에서 생성된 3 차원 데이터를 별도로 인코딩하고, 3 차원 데이터를 이용하여 사람 또는 물체를 인식 또는 추적한 결과에 기초하여 수신 단말에 전송할 비디오를 복수의 단말에 의해 캡처된 비디오로부터 선택 또는 재구성 및 생성할 수 있다.
이로써, 사용자는 비디오 캡처 단말에 대응하는 비디오를 자유롭게 선택함으로써 장면을 즐길 수 있고, 사용자는 복수의 이미지 또는 비디오로부터의 재구성된 3 차원 데이터로부터 선택된 시점에서 비디오를 추출함으로써 획득된 컨텐츠를 즐길 수 있다. 또한, 비디오와 같이, 사운드는 상대적으로 다른 각도에서 기록될 수 있으며, 서버는 특정 각도 또는 공간으로부터 오디오를 대응하는 비디오와 멀티플렉스된 비디오 및 오디오를 전송할 수 있다.
최근에는, 가상 현실(VR) 및 증강 현실(AR) 컨텐츠와 같이 현실 세계와 가상 세계의 복합 콘텐츠가 대중화되었다. VR 이미지의 경우, 서버는 좌안 및 우안 모두의 시점으로부터 이미지를 생성할 수 있고, 멀티-뷰 코딩(MVC)과 같은 2 개의 시점 이미지 사이의 참조를 허용하는 인코딩을 수행할 수 있고, 대안적으로, 참조하지 않고 이미지를 별도의 스트림으로 인코딩할 수 있다. 이미지들이 별개의 스트림들로 디코딩될 때, 스트림들은 재생될 때 동기화되어, 사용자의 관점에 따라 가상의 3 차원 공간을 재생성할 수 있다.
AR 이미지의 경우, 서버는 사용자의 관점에서 3 차원 위치 또는 이동에 기초하여 가상 공간에 존재하는 가상 객체 정보를 실제 공간을 나타내는 카메라 정보에 중첩시킨다. 디코더는 가상 객체 정보 및 3 차원 데이터를 획득 또는 저장하고, 사용자의 관점에서의 이동에 기초하여 2 차원 이미지를 생성한 다음, 이미지들을 매끄럽게 연결함으로써 중첩된 데이터를 생성할 수 있다. 대안적으로, 디코더는 가상 객체 정보에 대한 요청에 추가하여 사용자의 관점으로부터 모션을 서버로 전송할 수 있다. 서버는 수신된 모션에 따라 서버에 저장된 3 차원 데이터에 기초하여 중첩된 데이터를 생성하고, 생성된 중첩된 데이터를 디코더로 인코딩 및 스트리밍할 수 있다. 중첩된 데이터는 RGB 값 외에, 투명도를 나타내는 α 값을 포함하고, 서버는 3 차원 데이터로부터 생성된 객체 이외의 섹션에 대한 α 값을 예를 들어 0으로 설정하고, 이들 섹션이 투명한 동안 인코딩을 수행할 수 있음에 주목해야 한다. 다르게는, 서버는 배경을 크로마 키와 같은 미리 결정된 RGB 값으로 설정하고, 객체 이외의 영역이 배경으로 설정되는 데이터를 생성할 수 있다.
유사하게 스트리밍된 데이터의 디코딩은 클라이언트(즉, 단말)에 의해, 서버 측에서 수행될 수 있거나 또는 그들 사이에서 분할될 수 있다. 일례에서, 하나의 단말은 수신 요청을 서버로 전송할 수 있고, 요청된 콘텐츠는 다른 단말에 의해 수신 및 디코딩될 수 있고, 디코딩된 신호는 디스플레이를 갖는 장치로 전송될 수 있다. 통신 단말 자체의 처리 능력에 관계없이 처리를 분산시키고 콘텐츠를 적절히 선택함으로써 고화질 데이터를 재생하는 것이 가능하다. 또 다른 예에서, 예를 들어, TV가 크기가 큰 이미지 데이터를 수신하는 동안, 픽처를 분할함으로써 획득된 타일과 같은 픽처의 영역은 TV의 시청자 또는 시청자들의 개인용 단말 또는 단말들에서 디코딩되고 디스플레이될 수 있다. 이를 통해 시청자는 큰 그림보기를 공유할 수 있을 뿐만 아니라 각 시청자가 자신의 할당된 영역을 확인하거나 더 자세히 지역을 검사할 수 있다.
근거리, 중거리 및 원거리, 실내 또는 실외에서 복수의 무선 연결이 가능한 상황에서는, MPEG-DASH와 같은 스트리밍 시스템 표준을 사용하여 컨텐츠를 매끄럽게 수신할 수 있다. 사용자는 사용자 단말을 포함하는 디코더 또는 디스플레이 장치, 실내 또는 실외에 배치된 디스플레이 등을 자유롭게 선택하면서 실시간으로 데이터를 전환할 수 있다. 또한, 예를 들어, 사용자의 위치 정보를 이용하여 어떤 단말이 디코딩을 처리하고 어떤 단말이 콘텐츠의 디스플레이를 처리하는지를 전환하는 동안 디코딩이 수행될 수 있다. 이것은 사용자가 목적지로 이동하는 동안, 컨텐츠를 표시할 수 있는 장치가 내장된 근처의 건물의 벽 또는 지상의 일부에 정보를 매핑하고 표시하는 것을 가능하게 한다. 더욱이, 인코딩된 데이터가 수신 단말로부터 빠르게 액세스 가능한 서버에 캐시될 때, 또는 인코딩된 데이터가 콘텐츠 전송 서비스의 에지 서버로 복사될 때와 같이, 네트워크상의 인코딩된 데이터에 대한 접근성에 기초하여 수신된 데이터의 비트 레이트를 전환하는 것이 또한 가능하다.
(스케일러블 인코딩)
컨텐츠의 전환은 도 27에 도시된 스케일러블 스트림을 참조하여 설명될 것이며, 이는 전술한 실시예에서 설명된 동영상 인코딩 방법의 구현을 통해 압축 코딩된다. 서버는 스트림의 시간적 및/또는 공간적 확장성을 이용하면서 컨텐츠가 전환되는 구성을 가질 수 있으며, 이는 도 27에 도시된 바와 같이 계층으로 분할 및 인코딩함으로써 달성된다. 동일한 콘텐츠이지만 품질이 다른 복수의 개별 스트림이 있을 수 있음에 유의한다. 즉, 디코더 측의 처리 능력과 같은 내부 요소 및 통신 대역폭과 같은 외부 요소에 기초하여 디코딩할 계층을 결정함으로써, 디코더 측은 디코딩하는 동안 저해상도 콘텐츠와 고해상도 콘텐츠 사이를 자유롭게 전환할 수 있다. 예를 들어, 사용자가 가정에서 인터넷에 연결된 TV와 같은 장치에서 사용자가 이동 중에 스마트폰(ex115)에서 이전에 보고 있었던 비디오를 계속 보고 싶어하는 경우, 장치는 동일한 스트림을 다른 계층에 간단히 디코딩할 수 있으며, 이는 서버 측 부하를 줄인다.
또한, 향상 계층(enhancement layer)이 기본 계층 위에 있는 상태에서, 픽처들이 계층 당 인코딩된 결과로 확장성이 달성되는 상술된 구성에 부가하여, 향상 계층은 예를 들어 이미지에 대한 통계 정보에 기초한 메타데이터를 포함할 수 있다. 디코더 측은 메타데이터에 기초하여 기본 계층의 픽처에 대해 초 고해상도 이미징을 수행함으로써 고화질 컨텐츠를 생성할 수 있다. 초 고해상도 이미징은 해상도를 유지 및/또는 해상도를 높이면서 SN 비율을 향상시킬 수 있다. 메타데이터는 초 고해상도 처리에 사용되는 선형 또는 비선형 필터 계수를 식별하기 위한 정보, 또는 초 고해상도 처리에 사용되는 필터 처리, 기계 학습 또는 최소 제곱 법에서 파라미터 값을 식별하는 정보를 포함한다.
대안적으로, 예를 들어 이미지 내의 객체의 의미에 따라 픽처가 예를 들어 타일들로 분할되는 구성이 제공될 수 있다. 디코더 측에서, 디코딩할 타일을 선택함으로써 부분 영역만이 디코딩된다. 또한, 객체(사람, 자동차, 공 등)의 속성 및 비디오에서의 객체의 위치(동일한 이미지의 좌표)를 메타데이터로서 저장함으로써, 디코더 측은 원하는 객체의 위치를 메타데이터를 기초로 식별할 수 있고, 객체를 포함하는 타일 또는 타일들을 결정할 수 있다. 예를 들어, 도 28에 도시된 바와 같이, 메타데이터는 HEVC의 SEI(Supplemental Enhancement Information) 메시지와 같은 픽셀 데이터와 다른 데이터 저장 구조를 사용하여 저장될 수 있다. 이 메타데이터는 예를 들어 주 객체의 위치, 크기 또는 색상을 나타낸다.
메타데이터는 스트림, 시퀀스 또는 랜덤 액세스 유닛과 같은 복수의 픽처의 유닛으로 저장될 수 있다. 디코더 측은, 예를 들어, 특정 인물이 비디오에 등장하는 시간을 획득할 수 있고, 시간 정보를 픽처 유닛 정보와 피팅함으로써, 객체가 존재하는 픽처를 식별할 수 있고, 픽처 내의 객체의 위치를 결정할 수 있다.
(웹 페이지 최적화)
도 29는 예를 들어 컴퓨터(ex111)상의 웹 페이지의 디스플레이 스크린의 예를 도시한다. 도 30은 예를 들어 스마트폰(ex115)상의 웹 페이지의 디스플레이 스크린의 예를 도시한다. 도 29 및 도 30에 도시된 바와 같이, 웹 페이지는 이미지 컨텐츠에 대한 링크인 복수의 이미지 링크를 포함할 수 있으며, 웹 페이지를 보는 데 사용되는 장치에 따라 웹 페이지의 외관이 상이하다. 복수의 이미지 링크가 스크린상에서 보여질 때, 사용자가 이미지 링크를 명시적으로 선택할 때까지, 또는 이미지 링크가 스크린의 대략 중앙에 있거나 전체 이미지 링크가 스크린에 맞을 때까지, 디스플레이 장치(디코더)는 컨텐츠 또는 I 픽처에 포함된 정지 이미지를 이미지 링크로서 디스플레이할 수 있고; 복수의 스틸 이미지 또는 I 픽처를 사용하여 애니메이션 gif와 같은 비디오를 디스플레이할 수 있고; 또는 기본 계층만을 수신하고 비디오를 디코딩 및 디스플레이 할 수 있다.
사용자에 의해 이미지 링크가 선택되면, 디스플레이 장치는 기본 계층에 가장 높은 우선 순위를 부여하면서 디코딩을 수행한다. 웹 페이지의 HTML 코드에 컨텐츠가 스케일 가능하다는 것을 나타내는 정보가 있는 경우, 디스플레이 장치는 향상 계층까지 디코딩할 수 있음에 유의한다. 또한, 실시간 재생을 보장하기 위해, 선택이 이루어지기 전에 또는 대역폭이 심각하게 제한될 때, 순방향 참조 픽쳐(I 픽쳐, P 픽쳐, 순방향 참조 B 픽쳐)만을 디코딩 및 디스플레이함으로써, 디스플레이 장치는 리딩 픽처가 디코딩되는 시점과 디코딩된 픽처가 디스플레이되는 시점 사이의 지연(즉, 콘텐츠의 디코딩 시작과 콘텐츠의 표시까지 사이의 지연)을 감소시킬 수 있다. 또한, 디스플레이 장치는 픽처들 간의 참조 관계를 의도적으로 무시하고, 모든 B 및 P 픽처들을 순방향 참조 픽처들로서 대략 디코딩한 다음, 시간에 따라 수신된 픽처들의 수가 증가함에 따라 정규 디코딩을 수행할 수도 있다.
(자율 주행)
자동차의 자율 주행 또는 보조 운전을 위한 2 차원 또는 3 차원지도 정보와 같은 정지 이미지 또는 비디오 데이터를 송수신할 때, 수신 단말은 하나 이상의 레이어에 속하는 이미지 데이터 외에, 예를 들어, 날씨 또는 도로 구성은 메타데이터로서 수신하고, 그리고 메타데이터를 디코딩시 이미지 데이터와 연관시킬 수 있다. 메타데이터는 계층 마다 할당될 수 있고, 대안적으로 이미지 데이터와 간단히 다중화될 수 있음에 유의한다.
이 경우, 수신 단말을 포함하는 자동차, 드론, 비행기 등이 이동형이기 때문에, 수신 단말은 기지국(ex106 내지 ex110) 중의 기지국 사이를 전환하면서 수신 단말의 위치를 나타내는 정보를 전송함으로써 원활하게 수신 및 디코딩을 수행할 수 있다. 또한, 사용자에 의한 선택, 사용자의 상황 및/또는 접속의 대역폭에 따라, 수신 단말은 메타데이터가 어느 정도 수신되는지 또는 어느 정도까지 맵 정보가 업데이트되는지를 동적으로 선택할 수 있다.
컨텐츠 제공 시스템(ex100)에서, 클라이언트는 사용자에 의해 전송된 인코딩된 정보를 실시간으로 수신, 디코딩 및 재생할 수 있다.
(개별 콘텐츠 스트리밍)
컨텐츠 제공 시스템(ex100)에서, 고화질 이외에, 비디오 분배 엔티티에 의해 분배된 긴 컨텐츠, 낮은 화질의 유니 캐스트 또는 멀티 캐스트 스트리밍, 및 개인으로부터의 짧은 컨텐츠가 또한 가능하다. 개인의 이러한 콘텐츠는 인기가 더욱 높아질 것 같다. 서버는 먼저 개별 컨텐츠를 세분화하기 위해 인코딩 처리 전에 컨텐츠에 대한 편집 처리를 수행할 수 있다. 이것은 예를 들어 다음 구성을 사용하여 달성될 수 있다.
비디오 또는 이미지 컨텐츠를 캡처하는 동안 실시간으로 또는 컨텐츠가 캡처되고 축적된 후, 서버는 로우 데이터(raw data) 또는 인코딩된 데이터를 기반으로 하는 캡처 오류 처리, 장면 검색 처리, 의미 분석 및/또는 객체 검출 처리와 같은 인식 처리를 수행한다. 그 후, 인식 처리의 결과에 기초하여, 서버는 프롬프트될 때 또는 자동적으로 컨텐츠를 편집하며, 그 예는: 포커스 및/또는 모션 블러 보정과 같은 보정; 다른 픽처에 비해 밝기가 낮거나 초점이 맞지 않는 장면과 같은 우선 순위가 낮은 장면 제거; 객체 가장자리 조정; 및 색조 조정을 포함한다. 서버는 편집 결과에 기초하여 편집된 데이터를 인코딩한다. 비디오가 너무 길면 조회수가 줄어드는 것으로 알려져 있다. 따라서, 원본 비디오의 길이에 비례하여 특정 길이 내에서 컨텐츠를 유지하기 위해, 서버는 전술한 우선 순위가 낮은 장면 외에 이미지 처리 결과에 기초하여 움직임이 적은 장면을 자동으로 잘라낼 수 있다. 대안적으로, 서버는 장면의 의미에 대한 분석 결과에 기초하여 비디오 다이제스트를 생성 및 인코딩할 수 있다.
개별 콘텐츠가 저작권, 도덕적 권리, 초상권 등을 침해하는 콘텐츠를 포함할 수 있는 경우가 있을 수 있다. 이러한 인스턴스는 콘텐츠가 크리에이터가 의도한 범위를 넘어 공유되는 경우와 같이 크리에이터에게 불리한 상황을 초래할 수 있다. 따라서, 인코딩 전에, 서버는 예를 들어 스크린 주변에서 사람들의 얼굴을 흐리게 하거나 집안을 흐리게 하기 위해 이미지를 편집할 수 있다. 또한, 서버는 인코딩될 이미지에서 등록된 사람 이외의 사람들의 얼굴을 인식하도록 구성될 수 있고, 그러한 얼굴이 이미지에 나타날 때, 예를 들어, 사람의 얼굴에 모자이크 필터를 적용할 수 있다. 대안적으로, 인코딩을 위한 전처리 또는 후처리로서, 사용자는 저작권상의 이유로, 사람을 포함하는 이미지의 영역 또는 처리될 배경의 영역을 지정할 수 있다. 서버는 예를 들어, 영역을 다른 이미지로 교체하거나 영역을 흐리게함으로써 특정 영역을 처리할 수 있다. 영역이 사람을 포함하는 경우, 사람은 동영상에서 추적될 수 있고, 사람이 이동함에 따라 사람의 머리 영역이 다른 이미지로 대체될 수 있다.
데이터 크기가 작은 경향이 있는, 개인에 의해 생성된 콘텐츠의 실시간 시청에 대한 요구가 있기 때문에, 디코더는 먼저 기본 계층을 가장 높은 우선 순위로 수신하고, 디코딩 및 재생을 수행하지만, 대역폭에 따라 다를 수 있다. 디코더가 기본 계층의 디코딩 및 재생 동안 향상 계층을 수신하고 재생을 루프링하는 경우와 같이 콘텐츠가 2 회 이상 재생되는 경우, 디코더는 향상 계층을 포함하는 고화질 비디오를 재생할 수 있다. 스트림이 그러한 스케일러블 인코딩을 사용하여 인코딩되면, 비디오는 선택되지 않은 상태 또는 비디오의 시작시에 품질이 낮을 수 있지만, 스트림의 이미지 품질이 지능적 방식으로 점진적으로 증가하는 경험을 제공할 수 있다. 이것은 스케일러블 인코딩에만 국한되지 않으며; 처음으로 재생된 저품질 스트림으로부터의 단일 스트림 및 제1 스트림을 기준으로 이용하여 인코딩된 제2 스트림을 구성함으로써 동일한 경험이 제공될 수 있다.
(다른 구현 및 응용예)
인코딩 및 디코딩은 LSI(대규모 집적 회로)(ex500)(도 26 참조)에 의해 수행될 수 있으며, 이는 일반적으로 각 단말에 포함된다. LSI(ex500)는 단일 칩 또는 복수의 칩으로 구성될 수 있다. 동화상을 인코딩 및 디코딩하기 위한 소프트웨어는 예를 들어 컴퓨터(ex111)에 의해 판독 가능한 일부 유형의 기록 매체(예를 들어, CD-ROM,가요성 디스크 또는 하드 디스크)에 통합될 수 있고, 인코딩 및 디코딩이 이 소프트웨어를 이용하여 수행될 수 있다. 또한, 스마트폰(ex115)에 카메라가 장착된 경우, 카메라에 의해 획득된 비디오 데이터가 전송될 수 있다. 이 경우, 비디오 데이터는 스마트폰(ex115)에 포함된 LSI(ex500)에 의해 코딩된다.
LSI(ex500)은 응용 프로그램을 다운로드하고 활성화하도록 구성될 수 있다. 이러한 경우에, 단말은 먼저 콘텐츠를 인코딩하는데 사용된 방식과 호환되는지 또는 특정 서비스를 실행할 수 있는지를 결정한다. 단말이 콘텐츠의 인코딩 방식과 호환되지 않거나 단말이 특정 서비스를 실행할 수 없는 경우, 단말은 먼저 코덱 또는 애플리케이션 소프트웨어를 다운로드한 후 콘텐츠를 획득 및 재생한다.
인터넷(ex101)을 사용하는 컨텐츠 제공 시스템(ex100)의 예를 제외하고, 상기 실시예들에서 설명된 적어도 동화상 인코더(이미지 인코더) 또는 동화상 디코더(이미지 디코더)는 디지털 방송 시스템에서 구현될 수 있다. 동일한 인코딩 처리 및 디코딩 처리가 예를 들어 위성을 사용하여 다중화된 오디오 및 비디오 데이터와 중첩된 방송 무선 전파를 송신 및 수신하기 위해 적용될 수 있으며, 이것이 비록 멀티 캐스트에 적합하더라도, 컨텐츠 제공 시스템(ex100)으로 유니 캐스트가 더 용이하다.
(하드웨어 구성)
도 31은 도 26에 도시된 스마트폰(ex115)의 추가 세부 사항을 도시한다. 도 32는 스마트폰(ex115)의 구성예를 도시하고있다. 스마트폰(ex115)은 기지국(ex110)과 무선 전파를 송수신하기 위한 안테나(ex450), 비디오 및 스틸 이미지를 캡처할 수 있는 카메라(ex465), 및 카메라(ex465)에 의해 캡처된 비디오 및 안테나(ex450)에 의해 수신된 비디오와 같은 디코딩된 데이터를 디스플레이하는 디스플레이(ex458)를 포함한다. 스마트폰(ex115)은 터치 패널과 같은 사용자 인터페이스(ex466), 음성 또는 다른 오디오를 출력하기 위한 스피커와 같은 오디오 출력 유닛(ex457), 오디오 입력을 위한 마이크로폰과 같은 오디오 입력 유닛(ex456), 캡처된 비디오 또는 스틸 이미지, 녹음된 오디오, 수신된 비디오 또는 스틸 이미지와 같은 디코딩된 데이터 및 디코딩된 데이터 외의 메일을 저장할 수 있는 메모리(ex467), 및 네트워크 및 다양한 데이터에 대한 액세스 권한을 부여하기 위한 SIM(ex468)의 인터페이스인 슬롯(ex464)을 더 포함한다. 메모리(ex467) 대신 외부 메모리를 사용할 수 있다.
디스플레이(ex458) 및 사용자 인터페이스(ex466)을 포괄적으로 제어하는 메인 컨트롤러(ex460), 전원 공급 회로(ex461), 사용자 인터페이스 입력 컨트롤러(ex462), 비디오 신호 프로세서(ex455), 카메라 인터페이스(ex463), 디스플레이 컨트롤러(ex459), 변조기/복조기(ex452), 멀티플렉서/디멀티플렉서(ex453), 오디오 신호 프로세서(ex454), 슬롯(ex464) 및 메모리(ex467)가 버스(ex470)를 통해 연결된다.
사용자가 전원 공급 회로(ex461)의 전원 버튼을 켜면, 스마트폰(ex115)은 작동 가능한 상태로 켜지고, 각 구성 요소는 배터리 팩으로부터 전원을 공급 받는다.
스마트폰(ex115)은 CPU, ROM 및 RAM을 포함하는 메인 컨트롤러(ex460)에 의해 수행된 제어에 기초하여, 예를 들어 통화 및 데이터 전송을 위한 처리를 수행한다. 전화를 걸 때, 오디오 입력 유닛(ex456)에 의해 기록된 오디오 신호는 오디오 신호 프로세서(ex454)에 의해 디지털 오디오 신호로 변환되고, 확산 스펙트럼 처리는 변조기/복조기(ex452) 및 디지털 아날로그 변환에 의해 적용되고, 송신기/수신기(ex451)에 의해 주파수 변환 처리가 적용되고, 결과 신호는 안테나(ex450)를 통해 전송된다. 수신된 데이터는 증폭, 주파수 변환 및 아날로그-디지털 변환, 변조기/복조기(ex452)에 의해 역 확산 스펙트럼 처리되고, 오디오 신호 프로세서(ex454)에 의해 아날로그 오디오 신호로 변환된 다음, 오디오 출력 유닛(ex457)으로부터 출력된다. 데이터 전송 모드에서, 텍스트, 정지 이미지 또는 비디오 데이터는 예를 들어 본체의 사용자 인터페이스 입력 컨트롤러(ex466)의 동작에 기초하여 사용자 인터페이스 입력 컨트롤러(ex462)를 통해 메인 컨트롤러(ex460)에 의해 전송된다. 유사한 송수신 처리가 수행된다. 데이터 전송 모드에서, 비디오, 정지 이미지 또는 비디오 및 오디오를 전송할 때, 비디오 신호 프로세서(ex455)는 상기 실시예에서 설명된 동화상 인코딩 방법을 통해 메모리(ex467)에 저장된 비디오 신호 또는 카메라(ex465)로부터 입력된 비디오 신호를 인코딩하고, 인코딩된 비디오 데이터를 멀티플렉서/디멀티플렉서(ex453)로 전송한다. 오디오 신호 프로세서(ex454)는 카메라(ex465)가 비디오 또는 정지 이미지를 캡처하는 동안 오디오 입력 유닛(ex456)에 의해 기록된 오디오 신호를 인코딩하고, 인코딩된 오디오 데이터를 멀티플렉서/디멀티플렉서(ex453)에 전송한다. 멀티플렉서/디멀티플렉서(ex453)는 인코딩된 비디오 데이터 및 인코딩된 오디오 데이터를 미리 결정된 방식을 사용하여 멀티플렉싱하고, 변조기/복조기(변조기/복조기 회로)(ex452) 및 송신기/수신기(ex451)를 사용하여 데이터를 변조 및 변환하고, 결과를 안테나(ex450)를 통해 전송한다.
예를 들어, 안테나(ex450)을 통해 수신된 멀티플렉싱된 데이터를 디코딩하기 위해 이메일 또는 채팅에 첨부된 비디오, 또는 웹 페이지로부터 링크된 비디오가 수신될 때, 멀티플렉서/디멀티플렉서(ex453)는 멀티플렉싱된 데이터를 디멀티플렉싱하여 멀티플렉싱된 데이터를 비디오 데이터의 비트스트림 및 오디오 데이터의 비트스트림으로 분할하고, 인코딩된 비디오 데이터를 동기 버스(ex470)를 통해 비디오 신호 프로세서(ex455)에 공급하고, 인코딩된 오디오 데이터를 동기 버스(ex470)를 통해 오디오 신호 프로세서(ex454)에 공급한다. 비디오 신호 프로세서(ex455)는 상기 실시예들에서 설명된 동화상 인코딩 방법에 대응하는 동화상 디코딩 방법을 사용하여 비디오 신호를 디코딩하고, 링크된 동화상 파일에 포함된 비디오 또는 정지 이미지는 디스플레이 컨트롤러(ex459)를 통해 디스플레이(ex458)에 디스플레이된다. 오디오 신호 프로세서(ex454)는 오디오 신호를 디코딩하고 오디오 출력 유닛(ex457)으로부터 오디오를 출력한다. 실시간 스트리밍이 점점 대중화되고 있기 때문에, 사용자의 환경에 따라 오디오의 재생이 사회적으로 부적절할 수 있는 경우가 있을 수 있다. 따라서, 초기 값으로서, 비디오 데이터만이 재생되는, 즉 오디오 신호가 재생되지 않는 구성이 바람직하며; 오디오는 사용자가 비디오 데이터를 클릭할 때와 같은 입력이 수신될 때만 동기화 되고 재생될 수 있다.
스마트폰(ex115)이 상기 예에서 사용되었지만, 3 개의 다른 구현이 가능하다: 인코더 및 디코더를 모두 포함하는 송수신기 단말; 인코더만을 포함하는 송신기 단말; 및 디코더만을 포함하는 수신기 단말을 포함한다. 디지털 방송 시스템의 설명에서, 오디오 데이터와 다중화된 비디오 데이터의 결과로서 획득된 다중화된 데이터가 수신되거나 전송되는 예가 제공된다. 그러나, 다중화된 데이터는 비디오와 관련된 텍스트 데이터와 같은 오디오 데이터 이외의 데이터와 다중화된 비디오 데이터 일 수 있다. 또한, 다중화된 데이터 보다는 비디오 데이터 자체가 수신되거나 전송될 수 있다.
CPU를 포함하는 메인 컨트롤러(ex460)는 인코딩 또는 디코딩 프로세스를 제어하는 것으로 설명되지만, 다양한 단말은 종종 GPU를 포함한다. 따라서, CPU 및 GPU에 의해 공유되는 메모리 또는 CPU 및 GPU에 의한 공통 사용을 허용하도록 관리되는 어드레스를 포함하는 메모리를 통해 GPU의 성능을 이용함으로써 한번에 넓은 영역이 처리되는 구성이 수용 가능하다. 따라서 인코딩 시간을 단축하고 실시간 스트림 특성을 유지하며 지연을 줄일 수 있다. 특히, 모션 추정, 디블로킹 필터링, 샘플 적응적 오프셋(SAO) 및 변환/양자화에 관한 처리는, 예를 들어, 픽처 단위로 CPU 대신에 GPU에 의해 한 번에 모두 효과적으로 수행될 수 있다.

Claims (48)

  1. 이미지 인코더로서,
    회로; 및
    상기 회로에 연결된 메모리를 포함하며;
    상기 회로는, 동작시에,
    분할을 나타내는 파티션 파라미터를 기초하여 이미지 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 단계;
    상기 제1 파티션 및 상기 제2 파티션을 인코딩하는 단계; 및
    상기 파티션 파라미터를 포함하는 하나 이상의 파라미터를 비트스트림에 기록하는 단계를 포함하는 파티션 신택스 동작(partition syntax operation)을 수행하는, 인코더.
  2. 청구항 1에 있어서, 상기 파티션 파라미터는 상기 제1 파티션이 삼각형 형상을 가짐을 나타내는, 인코더.
  3. 청구항 1에 있어서, 상기 파티션 파라미터는 상기 제2 파티션이 비직사각형 형상을 가짐을 나타내는, 인코더.
  4. 청구항 1에 있어서, 상기 파티션 파라미터는 상기 비직사각형 형상이 삼각형, 사다리꼴, 및 적어도 5개의 변 및 각을 갖는 다각형 중 하나임을 나타내는, 인코더.
  5. 청구항 1에 있어서, 상기 파티션 파라미터는, 상기 이미지 블록을 상기 복수의 파티션으로 분할하기 위해 적용되는 분할 방향을 공동으로 인코딩하는, 인코더.
  6. 청구항 5에 있어서, 상기 분할 방향은 상기 이미지 블록의 좌상 코너에서 우하 코너로, 및 상기 이미지 블록의 우상 코너에서 좌하 코너로를 포함하는, 인코더.
  7. 청구항 5에 있어서, 상기 파티션 파라미터는 적어도 상기 제1 파티션의 제1 모션 벡터를 공동으로 인코딩하는, 인코더.
  8. 청구항 1에 있어서, 상기 파티션 파라미터 이외의 하나 이상의 파라미터는 상기 이미지 블록을 상기 복수의 파티션으로 분할하기 위해 적용되는 분할 방향을 인코딩하는, 인코더.
  9. 청구항 8에 있어서, 상기 분할 방향을 인코딩하는 파라미터는 적어도 상기 제1 파티션의 제1 모션 벡터를 공동으로 인코딩하는, 인코더.
  10. 청구항 1에 있어서, 상기 파티션 파라미터는 적어도 상기 제1 파티션의 제1 모션 벡터를 공동으로 인코딩하는, 인코더.
  11. 청구항 10에 있어서, 상기 파티션 파라미터는 상기 제2 파티션의 제2 모션 벡터를 공동으로 인코딩하는, 인코더.
  12. 청구항 1에 있어서, 상기 파티션 파라미터 이외의 하나 이상의 파라미터가 적어도 상기 제1 파티션의 제1 모션 벡터를 인코딩하는, 인코더.
  13. 청구항 1에 있어서, 상기 하나 이상의 파라미터는, 상기 하나 이상의 파라미터 중 적어도 하나의 값에 의존하여 선택되는 이진화 방식에 따라 이진화되는, 인코더.
  14. 이미지 인코더로서,
    동작시, 오리지널 픽처를 수신하여 블록으로 분할하는 스플리터,
    동작시, 상기 스플리터로부터 블록 및 예측 컨트롤러로부터 예측을 수신하고, 대응하는 블록으로부터 각각의 예측을 감산하여 잔차를 출력하는 가산기,
    동작시, 상기 가산기로부터 출력된 잔차에 대해 변환을 수행하여 변환 계수를 출력하는 변환기,
    동작시, 변환 계수를 양자화하여 양자화된 변환 계수를 생성하는 양자화기,
    동작시, 양자화된 변환 계수를 인코딩하여 비트스트림을 생성하는 엔트로피 인코더, 및
    인터 예측기, 인트라 예측기 및 메모리에 연결된 예측 컨트롤러 - 상기 인터 예측기는 동작시 인코딩된 참조 픽처의 참조 블록을 기초하여 커런트 블록의 예측을 생성하고, 상기 인트라 예측기는 동작시 커런트 픽처의 인코딩된 참조 블록을 기초하여 커런트 블록의 예측을 생성함 - 을 포함하며,
    여기서,
    상기 예측 컨트롤러는, 동작시,
    분할을 나타내는 파티션 파라미터를 기초하여 이미지 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하고,
    상기 제1 파티션 및 상기 제2 파티션을 인코딩하며;
    상기 엔트로피 인코더는, 동작시,
    상기 파티션 파라미터를 포함하는 하나 이상의 파라미터를 비트스트림에 기록하는, 인코더.
  15. 청구항 14에 있어서, 상기 파티션 파라미터는 상기 제1 파티션이 삼각형 형상을 가짐을 나타내는, 인코더.
  16. 청구항 14에 있어서, 상기 파티션 파라미터는 상기 제2 파티션이 비직사각형 형상을 가짐을 나타내는, 인코더.
  17. 청구항 14에 있어서, 상기 파티션 파라미터는, 상기 이미지 블록을 상기 복수의 파티션으로 분할하기 위해 적용되는 분할 방향을 공동으로 인코딩하는, 인코더.
  18. 청구항 17에 있어서, 상기 파티션 파라미터는 적어도 상기 제1 파티션의 제1 모션 벡터를 공동으로 인코딩하는, 인코더.
  19. 청구항 18에 있어서, 상기 파티션 파라미터는 상기 제2 파티션의 제2 모션 벡터를 공동으로 인코딩하는, 인코더.
  20. 청구항 14에 있어서, 상기 파티션 파라미터 이외의 하나 이상의 파라미터는 상기 이미지 블록을 상기 복수의 파티션으로 분할하기 위해 적용되는 분할 방향을 인코딩하는, 인코더.
  21. 이미지 인코딩 방법으로서,
    분할을 나타내는 파티션 파라미터를 기초하여 이미지 블록을 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로 분할하는 단계;
    상기 제1 파티션 및 상기 제2 파티션을 인코딩하는 단계; 및
    상기 파티션 파라미터를 포함하는 하나 이상의 파라미터를 비트스트림에 기록하는 단계를 포함하는 파티션 신택스 동작을 포함하는, 방법.
  22. 청구항 21에 있어서, 상기 파티션 파라미터는 상기 제1 파티션이 삼각형 형상을 가짐을 나타내는, 방법.
  23. 청구항 21에 있어서, 상기 파티션 파라미터는 제2 파라미터가 비직사각형 형상을 가짐을 나타내는, 방법.
  24. 청구항 21에 있어서, 상기 파티션 파라미터는, 상기 이미지 블록을 상기 복수의 파티션, 상기 제1 파티션의 제1 모션 벡터, 및 상기 제2 파티션의 제2 모션 벡터로 분할하기 위해 적용되는 하나 이상의 분할 방향을 공동으로 인코딩하는, 방법.
  25. 이미지 디코더로서,
    회로;
    회로에 연결된 메모리를 포함하되;
    상기 회로는 동작시:
    비트스트림으로부터 하나 이상의 파라미터를 파싱하는 단계 - 여기서 상기 하나 이상의 파라미터는 이미지 블록의 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로의 분할을 나타내는 파티션 파라미터를 포함함 - ;
    상기 파티션 파라미터를 기초하여 상기 이미지 블록을 상기 복수의 파티션으로 분할하는 단계; 및
    상기 제1 파티션 및 상기 제2 파티션을 디코딩하는 단계를 포함하는 파티션 신택스 동작을 수행하는, 디코더.
  26. 청구항 25에 있어서, 상기 파티션 파라미터는 상기 제1 파티션이 삼각형 형상을 가짐을 나타내는, 디코더.
  27. 청구항 25에 있어서, 상기 파티션 파라미터는 상기 제2 파티션이 비직사각형 형상을 가짐을 나타내는, 디코더.
  28. 청구항 25에 있어서, 상기 파티션 파라미터는 상기 비직사각형 형상이 삼각형, 사다리꼴, 및 적어도 5개의 변 및 각을 갖는 다각형 중 하나임을 나타내는, 디코더.
  29. 청구항 25에 있어서, 상기 파티션 파라미터는, 상기 이미지 블록을 상기 복수의 파티션으로 분할하기 위해 적용되는 분할 방향을 공동으로 인코딩하는, 디코더.
  30. 청구항 29에 있어서, 상기 분할 방향은 상기 이미지 블록의 좌상 코너에서 우하 코너로, 및 상기 이미지 블록의 우상 코너에서 좌하 코너로를 포함하는, 디코더.
  31. 청구항 29에 있어서, 상기 파티션 파라미터는 적어도 상기 제1 파티션의 제1 모션 벡터를 공동으로 인코딩하는, 디코더.
  32. 청구항 25에 있어서, 상기 파티션 파라미터 이외의 하나 이상의 파라미터는 상기 이미지 블록을 상기 복수의 파티션으로 분할하기 위해 적용되는 분할 방향을 인코딩하는, 디코더.
  33. 청구항 32에 있어서, 상기 분할 방향을 인코딩하는 파라미터는 적어도 상기 제1 파티션의 제1 모션 벡터를 공동으로 인코딩하는, 디코더.
  34. 청구항 25에 있어서, 상기 파티션 파라미터는 적어도 상기 제1 파티션의 제1 모션 벡터를 공동으로 인코딩하는, 디코더.
  35. 청구항 34에 있어서, 상기 파티션 파라미터는 상기 제2 파티션의 제2 모션 벡터를 공동으로 인코딩하는, 디코더.
  36. 청구항 25에 있어서, 상기 파티션 파라미터 이외의 하나 이상의 파라미터는 적어도 상기 제1 파티션의 제1 모션 벡터를 인코딩하는, 디코더.
  37. 청구항 25에 있어서, 상기 하나 이상의 파라미터는, 상기 하나 이상의 파라미터 중 적어도 하나의 값에 의존하여 선택되는 이진화 방식에 따라 이진화되는, 디코더.
  38. 이미지 디코더로서,
    동작시, 양자화된 변환 계수를 획득하기 위하여 인코딩된 비트스트림을 수신 및 디코딩하는 엔트로피 디코더;
    동작시, 변환 계수를 획득하기 위하여 양자화된 변환 계수를 역 양자화하고, 잔차를 획득하기 위하여 변환 계수를 역변환하는 역 양자화기 및 변환기;
    동작시에, 역 양자화기 및 변환기로부터 출력된 잔차 및 예측 컨트롤러로부터 출력된 예측을 가산하여 블록을 재구성하는 가산기; 및
    인터 예측기, 인트라 예측기 및 메모리에 연결된 예측 컨트롤러 - 상기 인터 예측기는 동작시 디코딩된 참조 픽처의 참조 블록을 기초하여 커런트 블록의 예측을 생성하고, 상기 인트라 예측기는 동작시 커런트 픽처의 디코딩된 참조 블록을 기초하여 커런트 블록의 예측을 생성함 - 을 포함하며,
    여기서,
    상기 엔트로피 디코더는, 동작시,
    비트스트림으로부터 하나 이상의 파라미터를 파싱하고 - 여기서 상기 하나 이상의 파라미터는 이미지 블록의 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로의 분할을 나타내는 파티션 파라미터를 포함함 - ;
    상기 파티션 파라미터를 기초하여 상기 이미지 블록을 상기 복수의 파티션으로 분할하며;
    상기 제1 파티션 및 상기 제2 파티션을 디코딩하는, 디코더.
  39. 청구항 38에 있어서, 상기 파티션 파라미터는 상기 제1 파티션이 삼각형 형상을 가짐을 나타내는, 디코더.
  40. 청구항 38에 있어서, 상기 파티션 파라미터는 상기 제2 파티션이 비직사각형 형상을 가짐을 나타내는, 디코더.
  41. 청구항 38에 있어서, 상기 파티션 파라미터는, 상기 이미지 블록을 상기 복수의 파티션으로 분할하기 위해 적용되는 분할 방향을 공동으로 인코딩하는, 디코더.
  42. 청구항 41에 있어서, 상기 파티션 파라미터는 적어도 상기 제1 파티션의 제1 모션 벡터를 공동으로 인코딩하는, 디코더.
  43. 청구항 42에 있어서, 상기 파티션 파라미터는 상기 제2 파티션의 제2 모션 벡터를 공동으로 인코딩하는, 디코더.
  44. 청구항 38에 있어서, 상기 파티션 파라미터 이외의 하나 이상의 파라미터는 상기 이미지 블록을 상기 복수의 파티션으로 분할하기 위해 적용되는 분할 방향을 인코딩하는, 디코더.
  45. 이미지 디코딩 방법으로서,
    비트스트림으로부터 하나 이상의 파라미터를 파싱하는 단계 - 여기서 상기 하나 이상의 파라미터는 이미지 블록의 비직사각형 형상을 갖는 제1 파티션 및 제2 파티션을 포함하는 복수의 파티션으로의 분할을 나타내는 파티션 파라미터를 포함함 - ;
    상기 파티션 파라미터를 기초하여 상기 이미지 블록을 상기 복수의 파티션으로 분할하는 단계; 및
    상기 제1 파티션 및 상기 제2 파티션을 디코딩하는 단계를 포함하는 파티션 신택스 동작을 포함하는, 방법.
  46. 청구항 45에 있어서, 상기 파티션 파라미터는 상기 제1 파티션이 삼각형 형상을 가짐을 나타내는, 방법.
  47. 청구항 45에 있어서, 상기 파티션 파라미터는 상기 제2 파티션이 비직사각형 형상을 가짐을 나타내는, 방법.
  48. 청구항 45에 있어서, 상기 파티션 파라미터는, 상기 이미지 블록을 상기 복수의 파티션, 상기 제1 파티션의 제1 모션 벡터, 및 상기 제2 파티션의 제2 모션 벡터로 분할하기 위해 적용되는 하나 이상의 분할 방향을 공동으로 인코딩하는, 방법.
KR1020207004700A 2017-08-22 2018-08-10 이미지 인코더, 이미지 디코더, 이미지 인코딩 방법 및 이미지 디코딩 방법 KR20200038944A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762548719P 2017-08-22 2017-08-22
US62/548,719 2017-08-22
US201862698801P 2018-07-16 2018-07-16
US62/698,801 2018-07-16
PCT/JP2018/030061 WO2019039323A1 (en) 2017-08-22 2018-08-10 IMAGE ENCODER, IMAGE DECODER, IMAGE ENCODING METHOD, AND IMAGE DECODING METHOD

Publications (1)

Publication Number Publication Date
KR20200038944A true KR20200038944A (ko) 2020-04-14

Family

ID=65439077

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207004700A KR20200038944A (ko) 2017-08-22 2018-08-10 이미지 인코더, 이미지 디코더, 이미지 인코딩 방법 및 이미지 디코딩 방법

Country Status (9)

Country Link
US (3) US20200014947A1 (ko)
EP (1) EP3673657A4 (ko)
JP (2) JP2020532226A (ko)
KR (1) KR20200038944A (ko)
CN (2) CN110999306B (ko)
BR (1) BR112020002205A2 (ko)
MX (6) MX2020001888A (ko)
TW (2) TWI790273B (ko)
WO (1) WO2019039323A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116437104A (zh) * 2017-05-19 2023-07-14 松下电器(美国)知识产权公司 解码方法和编码方法
CN108198145B (zh) * 2017-12-29 2020-08-28 百度在线网络技术(北京)有限公司 用于点云数据修复的方法和装置
US20190208211A1 (en) * 2018-01-04 2019-07-04 Qualcomm Incorporated Generated affine motion vectors
US11695967B2 (en) * 2018-06-22 2023-07-04 Op Solutions, Llc Block level geometric partitioning
US20200252608A1 (en) * 2019-02-05 2020-08-06 Qualcomm Incorporated Sub-partition intra prediction
US11272158B2 (en) * 2019-03-01 2022-03-08 Tencent America LLC Method and apparatus for point cloud compression
US20220159261A1 (en) * 2019-03-21 2022-05-19 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
WO2020197086A1 (ko) * 2019-03-25 2020-10-01 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2020233513A1 (en) * 2019-05-17 2020-11-26 Beijing Bytedance Network Technology Co., Ltd. Motion information determination and storage for video processing
JP7332385B2 (ja) 2019-08-05 2023-08-23 日本放送協会 イントラ予測装置、画像符号化装置、画像復号装置、及びプログラム
EP4008108A4 (en) 2019-09-01 2022-09-21 Beijing Bytedance Network Technology Co., Ltd. ALIGNMENT OF PREDICTION WEIGHTS IN VIDEO ENCODING
CN114731409A (zh) * 2019-09-20 2022-07-08 韩国电子通信研究院 图像编码/解码方法和装置、以及存储比特流的记录介质
CN112136329A (zh) * 2019-09-24 2020-12-25 北京大学 视频编解码的方法和装置
CN114556953A (zh) * 2019-10-10 2022-05-27 北京字节跳动网络技术有限公司 视频编解码中非矩形分割的使用
US11240501B2 (en) * 2020-01-08 2022-02-01 Tencent America LLC L-type partitioning tree
US11523112B2 (en) * 2020-04-09 2022-12-06 Tencent America LLC Intra coding with L-type partitioning tree
CN112511835B (zh) * 2021-02-04 2021-05-14 睿迪纳(南京)电子科技有限公司 一种基于hevc的视频编码方法
CN113596474A (zh) * 2021-06-23 2021-11-02 浙江大华技术股份有限公司 图像/视频编码方法、装置、系统及计算机可读存储介质
JP2023156061A (ja) * 2022-04-12 2023-10-24 Kddi株式会社 画像復号装置、画像復号方法及びプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090154567A1 (en) * 2007-12-13 2009-06-18 Shaw-Min Lei In-loop fidelity enhancement for video compression
CN102648631B (zh) * 2009-12-01 2016-03-30 数码士控股有限公司 用于编码/解码高分辨率图像的方法和设备
US8879632B2 (en) * 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
JP2012023597A (ja) * 2010-07-15 2012-02-02 Sony Corp 画像処理装置及び画像処理方法
CN108347620B (zh) * 2010-09-27 2022-08-30 Lg 电子株式会社 用于分割块的方法和解码设备
US9565436B2 (en) * 2011-01-14 2017-02-07 Telefonaktiebolaget Lm Ericsson (Publ) Method for filter control and a filtering control device
GB2509670B (en) * 2011-10-18 2018-12-05 Kt Corp Method for encoding image, method for decoding image, image encoder, and image decoder
EP2941871A2 (en) 2013-01-07 2015-11-11 VID SCALE, Inc. Enhanced deblocking filters for video coding
WO2015006884A1 (en) 2013-07-19 2015-01-22 Qualcomm Incorporated 3d video coding with partition-based depth inter coding
US9667996B2 (en) * 2013-09-26 2017-05-30 Qualcomm Incorporated Sub-prediction unit (PU) based temporal motion vector prediction in HEVC and sub-PU design in 3D-HEVC
US9872040B2 (en) * 2014-01-02 2018-01-16 Qualcomm Incorporated Color index coding for palette-based video coding
EP3069322B1 (en) * 2014-03-20 2020-08-26 Huawei Technologies Co., Ltd. An apparatus and a method for associating a video block partitioning pattern to a video coding block
KR102399593B1 (ko) * 2014-06-18 2022-05-18 삼성전자주식회사 다 시점 영상 부호화/복호화 방법 및 장치
WO2016090568A1 (en) * 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Binary tree block partitioning structure
CN116684592A (zh) * 2016-08-08 2023-09-01 Lg电子株式会社 视频解码方法、视频信号编码方法及其介质

Also Published As

Publication number Publication date
CN110999306B (zh) 2022-09-16
TW202318874A (zh) 2023-05-01
MX2023008128A (es) 2023-07-21
MX2023008131A (es) 2023-07-21
TWI790273B (zh) 2023-01-21
JP2023009237A (ja) 2023-01-19
US20210409743A1 (en) 2021-12-30
BR112020002205A2 (pt) 2020-07-28
CN110999306A (zh) 2020-04-10
US20230362397A1 (en) 2023-11-09
US20200014947A1 (en) 2020-01-09
MX2020001888A (es) 2020-03-24
WO2019039323A1 (en) 2019-02-28
JP7459218B2 (ja) 2024-04-01
US11758166B2 (en) 2023-09-12
TW201921942A (zh) 2019-06-01
EP3673657A1 (en) 2020-07-01
MX2023008132A (es) 2023-07-21
JP2020532226A (ja) 2020-11-05
MX2023008129A (es) 2023-07-21
MX2023008130A (es) 2023-07-21
CN115643399A (zh) 2023-01-24
EP3673657A4 (en) 2020-07-01

Similar Documents

Publication Publication Date Title
JP7446393B2 (ja) 画像符号化装置、画像復号装置、およびビットストリーム生成装置
TWI770254B (zh) 影像編碼器及影像解碼器(三)
JP7459218B2 (ja) 画像符号化装置、画像復号装置、およびビットストリーム生成装置
TWI836681B (zh) 影像編碼方法、影像解碼方法及非暫時性電腦可讀取媒體
TW202415064A (zh) 影像編碼器、影像解碼器及非暫時性電腦可讀取媒體