KR20200005748A - 복합 모션-보상 예측 - Google Patents

복합 모션-보상 예측 Download PDF

Info

Publication number
KR20200005748A
KR20200005748A KR1020197036882A KR20197036882A KR20200005748A KR 20200005748 A KR20200005748 A KR 20200005748A KR 1020197036882 A KR1020197036882 A KR 1020197036882A KR 20197036882 A KR20197036882 A KR 20197036882A KR 20200005748 A KR20200005748 A KR 20200005748A
Authority
KR
South Korea
Prior art keywords
block
encoded
quantized
video
distance
Prior art date
Application number
KR1020197036882A
Other languages
English (en)
Other versions
KR102335184B1 (ko
Inventor
징닝 한
야오우 수
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20200005748A publication Critical patent/KR20200005748A/ko
Application granted granted Critical
Publication of KR102335184B1 publication Critical patent/KR102335184B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/172Methods 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 picture, frame or field
    • 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/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/567Motion estimation based on rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof

Landscapes

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

Abstract

예측 방식이 비디오 블록을 인코딩 또는 디코딩하기 위해 선택된다. 하나 이상의 양자화된 가중 계수들을 사용하여 제1 기준 프레임으로부터 비디오 프레임까지 그리고 제2 기준 프레임으로부터 비디오 프레임까지의 거리들을 가중함으로써 제1 복합 모션 블록이 결정될 수 있다. 제1 기준 프레임의 비디오 블록으로부터의 픽셀 값들 및 제2 기준 프레임의 비디오 블록으로부터의 픽셀 값들의 평균에 기초하여 제2 복합 모션 블록을 결정될 수 있다. 제1 복합 모션 블록 또는 제2 복합 모션 블록 중 하나가 선택되고 예측 블록을 생성하는데 사용된다. 대안적으로, 비디오 프레임을 포함하는 비트스트림으로 인코딩된 데이터는 예측 블록을 생성하기 위해 어느 복합 모션 블록을 사용할지를 결정하는데 사용될 수 있다. 그 후, 비디오 프레임의 현재 블록은 예측 블록을 사용하여 인코딩 또는 디코딩된다.

Description

복합 모션-보상 예측
[0001] 디지털 비디오 스트림들은 일련의 프레임들 또는 스틸 이미지들을 사용하여 비디오를 표현할 수 있다. 디지털 비디오는 예를 들어, 화상 회의, 고화질 비디오 엔터테인먼트, 비디오 광고들 또는 사용자-생성 비디오들의 공유를 포함한 다양한 애플리케이션들에 대해 사용될 수 있다. 디지털 비디오 스트림은 대량의 데이터를 포함할 수 있고 비디오 데이터의 프로세싱, 송신 또는 저장을 위해 컴퓨팅 디바이스의 상당한 양의 컴퓨팅 또는 통신 자원들을 소비할 수 있다. 인코딩 또는 디코딩 기술들을 포함하여 비디오 스트림들에서 데이터의 양을 감소시키기 위한 다양한 접근법들이 제안되었다.
[0002] 본 개시내용의 구현에 따라 비디오 프레임의 현재 블록을 인코딩하기 위한 방법은 하나 이상의 양자화된 가중 계수들을 사용하여 제1 기준 프레임으로부터 비디오 프레임까지 그리고 제2 기준 프레임으로부터 비디오 프레임까지의 거리들을 가중함으로써 제1 복합 모션 블록을 결정하는 단계를 포함한다. 방법은 제1 기준 프레임의 비디오 블록으로부터의 픽셀 값들 및 제2 기준 프레임의 비디오 블록으로부터의 픽셀 값들의 평균에 기초하여 제2 복합 모션 블록을 결정하는 단계를 더 포함한다. 방법은 제1 복합 모션 블록 또는 제2 복합 모션 블록 중 하나를 선택하는 단계를 더 포함한다. 방법은 제1 복합 모션 블록 또는 제2 복합 모션 블록 중 선택된 하나를 사용하여 예측 블록을 생성하는 단계를 더 포함한다. 방법은 예측 블록을 사용하여 현재 블록을 인코딩하는 단계를 더 포함한다.
[0003] 본 개시내용의 구현에 따라 인코딩된 비디오 프레임의 인코딩된 블록을 디코딩하기 위한 방법은 인코딩된 비디오 프레임을 포함하는 비트스트림으로 인코딩된 하나 이상의 신택스 엘리먼트들에 기초하여, 복수의 기준 프레임들 각각으로부터 인코딩된 비디오 프레임까지의 거리들을 가중함으로써 인코딩된 블록이 인코딩되었는지를 결정하는 단계를 포함한다. 방법은 복수의 기준 프레임들 각각으로부터 인코딩된 비디오 프레임까지의 거리들을 가중함으로써 인코딩된 블록이 인코딩되었다는 결정에 응답하여, 하나 이상의 양자화된 가중 계수들을 사용하여, 제1 기준 프레임으로부터 인코딩된 비디오 프레임까지의 제1 거리 및 제2 기준 프레임으로부터 인코딩된 비디오 프레임까지의 제2 거리를 가중함으로써 복합 모션 블록을 결정하는 단계를 더 포함한다. 방법은 복합 모션 블록을 사용하여 예측 블록을 생성하는 단계를 더 포함한다. 방법은 예측 블록을 사용하여 인코딩된 블록을 디코딩하는 단계를 더 포함한다.
[0004] 본 개시내용의 구현에 따라 인코딩된 비디오 프레임의 인코딩된 블록을 디코딩하기 위한 장치는 비-일시적인 메모리에 저장된 명령들을 실행하도록 구성된 프로세서를 포함한다. 명령들은 인코딩된 비디오 프레임을 포함하는 비트스트림으로 인코딩된 하나 이상의 신택스 엘리먼트들에 기초하여, 복수의 기준 프레임들 각각으로부터 인코딩된 비디오 프레임까지의 거리들을 가중함으로써 인코딩된 블록이 인코딩되었는지를 결정하기 위한 명령들을 포함한다. 명령들은, 복수의 기준 프레임들 각각으로부터 인코딩된 비디오 프레임까지의 거리들을 가중함으로써 인코딩된 블록이 인코딩되었다는 결정에 응답하여, 하나 이상의 양자화된 가중 계수들을 사용하여, 제1 기준 프레임으로부터 인코딩된 비디오 프레임까지의 제1 거리 및 제2 기준 프레임으로부터 인코딩된 비디오 프레임까지의 제2 거리를 가중함으로써 복합 모션 블록을 결정하기 위한 명령들을 더 포함한다. 명령들은 복합 모션 블록을 사용하여 예측 블록을 생성하기 위한 명령들을 더 포함한다. 명령들은 예측 블록을 사용하여 인코딩된 블록을 디코딩하기 위한 명령들을 더 포함한다.
[0005] 본 개시내용의 구현에 따라 비디오 프레임의 현재 블록을 인코딩하기 위한 장치는 비-일시적인 메모리에 저장된 명령들을 실행하도록 구성된 프로세서를 포함한다. 명령들은 하나 이상의 양자화된 가중 계수들을 사용하여 제1 기준 프레임으로부터 비디오 프레임까지 그리고 제2 기준 프레임으로부터 비디오 프레임까지의 거리들을 가중함으로써 제1 복합 모션 블록을 결정하기 위한 명령들을 포함한다. 명령들은, 제1 기준 프레임의 비디오 블록으로부터의 픽셀 값들 및 제2 기준 프레임의 비디오 블록으로부터의 픽셀 값들의 평균에 기초하여 제2 복합 모션 블록을 결정하고, 제1 복합 모션 블록 또는 제2 복합 모션 블록 중 하나를 선택하고, 제1 복합 모션 블록 또는 제2 복합 모션 블록 중 선택된 하나를 사용하여 예측 블록을 생성하고, 그리고 예측 블록을 사용하여 현재 블록을 인코딩하기 위한 명령들을 더 포함한다.
[0006] 본 개시내용의 이들 및 다른 양상들은 다음의 실시예들의 상세한 설명, 첨부된 청구항들 및 첨부 도면들에서 개시된다.
[0007] 본원에서의 설명은 유사한 참조 번호들이 여러 도면들에 걸쳐 유사한 부분들을 지칭하는, 아래에서 설명되는 첨부 도면들을 참조한다.
[0008] 도 1은 비디오 인코딩 및 디코딩 시스템의 개략도이다.
[0009] 도 2는 송신 스테이션 또는 수신 스테이션을 구현할 수 있는 컴퓨팅 디바이스의 예의 블록도이다.
[0010] 도 3은 인코딩되고 후속적으로 디코딩되는 통상적인 비디오 스트림의 도면이다.
[0011] 도 4는 본 개시내용의 구현들에 따른 인코더의 블록도이다.
[0012] 도 5는 본 개시내용의 구현들에 따른 디코더의 블록도이다.
[0013] 도 6은 선택된 예측 방식을 사용하여 비디오 블록을 인코딩하기 위한 기술의 예의 흐름도이다.
[0014] 도 7은 선택된 예측 방식을 사용하여 인코딩된 블록을 디코딩하기 위한 기술의 예의 흐름도이다.
[0015] 도 8은 비디오 시퀀스의 프레임들 사이의 거리들의 예의 예시이다.
[0016] 도 9는 양자화된 가중 계수들을 결정하기 위한 트리의 예의 도면이다.
[0017] 비디오 압축 방식들은 각각의 이미지들 또는 비디오 프레임들을 더 작은 부분들, 이를테면, 비디오 블록들로 분해하고, 그 각각의 비디오 블록들에 대해 포함되는 정보를 제한하는 기술들을 사용하여 인코딩된 비트스트림을 생성하는 것을 포함할 수 있다. 인코딩된 비트스트림은 제한된 정보로부터 소스 이미지들을 재생성하기 위해 디코딩될 수 있다. 일부 경우들에서, 복합 모션 예측은 둘 이상의 기준 프레임들에 대한 모션 정보를 결합함으로써 현재 비디오 블록 내의 모션을 예측하는데 사용될 수 있다.
[0018] 예를 들어, 2개의 기준 프레임들이 사용될 때, 이들 기준 프레임들 각각의 블록으로부터의 픽셀 값이 식별되고 평균화되어 현재 비디오 블록의 모션을 예측하기 위해 사용할 복합 모션 블록을 결정할 수 있다. 그러나, 이 평균-기반 예측 방식은 비디오 시퀀스를 인코딩 또는 디코딩하는 데 항상 최상의 성능으로 이어지는 것은 아닐 수 있다. 예를 들어, 기준 프레임들은 현재 비디오 블록을 포함하는 비디오 프레임으로부터 등거리에 있지 않을 수 있다. 결과적으로, 평균-기반 예측 방식은 비디오 시퀀스에서의 모션 변화들을 정확히 반영하지 않을 수 있다.
[0019] 본 개시내용의 구현들은 최적의 복합 모션 예측 방식을 선택함으로써 비디오 프레임의 비디오 블록을 인코딩 또는 디코딩하는 것을 포함한다. 하나 이상의 양자화된 가중 계수들을 사용하여 제1 기준 프레임으로부터 비디오 프레임까지 그리고 제2 기준 프레임으로부터 비디오 프레임까지의 거리들을 가중함으로써 제1 복합 모션 블록이 결정될 수 있다. 제1 기준 프레임의 비디오 블록으로부터의 픽셀 값들 및 제2 기준 프레임의 비디오 블록으로부터의 픽셀 값들의 평균에 기초하여 제2 복합 모션 블록이 결정될 수 있다. 제1 복합 모션 블록 또는 제2 복합 모션 블록 중 하나가 선택되고 예측 블록을 생성하는데 사용된다. 대안적으로, 비디오 프레임을 포함하는 비트스트림으로 인코딩된 데이터는 예측 블록을 생성하기 위해 어느 복합 모션 블록을 사용할지를 결정하는데 사용될 수 있다. 그 후, 비디오 프레임의 비디오 블록은 예측 블록을 사용하여 인코딩 또는 디코딩된다.
[0020] 예를 들어, 인코딩 동작 동안, 인코더는 거리-기반 예측 방식(예를 들어, 제1 복합 모션 블록) 또는 평균-기반 예측 방식(예를 들어, 제2 복합 모션 블록) 중 하나를, 이를테면, 그에 대한 레이트-왜곡 값들에 기초하여 선택하고, 선택을 표시하는 데이터를 비디오 블록이 인코딩된 비트스트림으로 인코딩한다. 디코딩 동작 동안, 디코더는 인코딩된 블록을 디코딩하기 위해 거리-기반 예측 방식 또는 평균-기반 예측 방식 중 어느 것을 선택할지를 결정하기 위해 비트스트림으로부터 인코딩된 데이터를 디코딩할 수 있다. 본원에서 사용되는 바와 같이, 복합 모션 블록은 픽셀 값들의 2개 이상의 다른 그룹들의 조합에 기초하여 결정되거나 다른 방식으로 계산된 픽셀 값들의 그룹을 지칭할 수 있다.
[0021] 프레임 회전을 이용하는 비디오 코딩을 위한 기술들의 추가의 세부사항들은 이들이 구현될 수 있는 시스템을 먼저 참조하여 본원에서 설명된다. 도 1은 비디오 인코딩 및 디코딩 시스템(100)의 개략도이다. 송신 스테이션(102)은 예를 들어, 도 2에 설명된 것과 같은 하드웨어의 내부 구성을 갖는 컴퓨터일 수 있다. 그러나, 송신 스테이션(102)의 다른 구현들이 가능하다. 예를 들어, 송신 스테이션(102)의 프로세싱은 다수의 디바이스들 사이에서 분산될 수 있다.
[0022] 네트워크(104)는 비디오 스트림을 인코딩 및 디코딩을 위해 송신 스테이션(102) 및 수신 스테이션(106)을 연결할 수 있다. 구체적으로, 비디오 스트림은 송신 스테이션(102)에서 인코딩될 수 있고, 인코딩된 비디오 스트림은 수신 스테이션(106)에서 디코딩될 수 있다. 네트워크(104)는 예를 들어, 인터넷일 수 있다. 네트워크(104)는 또한, 로컬 영역 네트워크(LAN), 광역 네트워크(WAN), 가상 사설 네트워크(VPN), 셀룰러 전화 네트워크, 또는 비디오 스트림을 송신 스테이션(102)으로부터 이 예에서, 수신 스테이션(106)에 전달하기 위한 임의의 다른 수단일 수 있다.
[0023] 일 예에서, 수신 스테이션(106)은 도 2에 설명된 것과 같은 하드웨어의 내부 구성을 갖는 컴퓨터일 수 있다. 그러나, 수신 스테이션(106)의 다른 적합한 구현들이 가능하다. 예를 들어, 수신 스테이션(106)의 프로세싱은 다수의 디바이스들 사이에서 분산될 수 있다.
[0024] 비디오 인코딩 및 디코딩 시스템(100)의 다른 구현들이 가능하다. 예를 들어, 구현은 네트워크(104)를 생략할 수 있다. 다른 구현에서, 비디오 스트림은 인코딩되고 나서, 수신 스테이션(106) 또는 메모리를 갖는 임의의 다른 디바이스로의 추후의 송신을 위해 저장될 수 있다. 일 구현에서, 수신 스테이션(106)은 인코딩된 비디오 스트림을 (예를 들어, 네트워크(104), 컴퓨터 버스 및/또는 일부 통신 경로를 통해) 수신하고 추후의 디코딩하기 위해 비디오 스트림을 저장한다. 예시적인 구현에서, 네트워크(104)를 통한 인코딩된 비디오의 송신을 위해 실시간 전송 프로토콜(RTP)이 사용된다. 다른 구현에서, RTP 이외의 전송 프로토콜, 예를 들어 HTTP(Hypertext Transfer Protocol)-기반 비디오 스트리밍 프로토콜이 사용될 수 있다.
[0025] 화상 회의 시스템에서 사용될 때, 예를 들어, 송신 스테이션(102) 및/또는 수신 스테이션(106)은 아래에서 설명되는 바와 같이 비디오 스트림을 인코딩 및 디코딩하는 능력을 포함할 수 있다. 예를 들어, 수신 스테이션(106)은 디코딩 및 보기를 위해 비디오 회의 서버(예를 들어, 송신 스테이션(102))로부터 인코딩된 비디오 비트스트림을 수신하고, 다른 참가자에 의한 디코딩 및 보기를 위해 자신의 비디오 비트스트림을 추가로 인코딩하여 비디오 회의 서버로 송신하는 비디오 회의 참가자일 수 있다.
[0026] 도 2는 송신 스테이션 또는 수신 스테이션을 구현할 수 있는 컴퓨팅 디바이스(200)의 예의 블록도이다. 예를 들어, 컴퓨팅 디바이스(200)는 도 1의 송신 스테이션(102) 및 수신 스테이션(106) 중 하나 또는 둘 모두를 구현할 수 있다. 컴퓨팅 디바이스(200)는 다수의 컴퓨팅 디바이스들을 포함하는 컴퓨팅 시스템의 형태 또는 하나의 컴퓨팅 디바이스의 형태, 예를 들어 모바일 폰, 태블릿 컴퓨터, 랩톱 컴퓨터, 노트북 컴퓨터, 데스크톱 컴퓨터, 등일 수 있다.
[0027] 컴퓨팅 디바이스(200)의 프로세서(202)는 종래의 중앙 처리 장치일 수 있다. 대안적으로, 프로세서(202)는 현재 존재하거나 이후에 개발되는, 정보를 조작하거나 프로세싱할 수 있는 다른 유형의 디바이스, 또는 다수의 디바이스들일 수 있다. 예를 들어, 개시된 구현들이 도시된 바와 같이 하나의 프로세서(예를 들어, 프로세서(202))로 실시될 수 있지만, 하나보다 많은 프로세서를 사용함으로써 속도 및 효율의 이점들이 달성될 수 있다.
[0028] 컴퓨팅 디바이스(200)의 메모리(204)는 구현에서 ROM(read only memory) 디바이스 또는 RAM(random access memory) 디바이스일 수 있다. 그러나, 다른 적합한 유형들의 저장 디바이스가 메모리(204)로서 사용될 수 있다. 메모리(204)는 버스(212)를 사용하여 프로세서(202)에 의해 액세스되는 코드 및 데이터(206)를 포함할 수 있다. 메모리(204)는 운영 체제(208) 및 애플리케이션 프로그램(210)을 더 포함할 수 있으며, 애플리케이션 프로그램(210)은 프로세서(202)가 본원에서 설명된 기술들을 수행할 수 있게 하는 적어도 하나의 프로그램을 포함한다. 예를 들어, 애플리케이션 프로그램들(210)은 애플리케이션들(1 내지 N)을 포함할 수 있으며, 이는 본원에서 설명된 기술들을 수행하는 비디오 코딩 애플리케이션을 더 포함한다. 컴퓨팅 디바이스(200)는 또한 예를 들어, 모바일 컴퓨팅 디바이스와 함께 사용되는 메모리 카드일 수 있는 보조 저장소(214)를 포함할 수 있다. 비디오 통신 세션들은 상당한 양의 정보를 포함할 수 있기 때문에, 이들은 전체적으로 또는 부분적으로, 보조 저장소(214)에 저장되고 프로세싱을 위해 필요에 따라 메모리(204)에 로딩될 수 있다.
[0029] 컴퓨팅 디바이스(200)는 또한 디스플레이(218)와 같은 하나 이상의 출력 디바이스들을 포함할 수 있다. 디스플레이(218)는 일 예에서, 터치 입력들을 감지하도록 동작 가능한 터치 감지 엘리먼트와 디스플레이를 결합하는 터치 감지 디스플레이일 수 있다. 디스플레이(218)는 버스(212)를 통해 프로세서(202)에 커플링될 수 있다. 디스플레이(218)에 추가로 또는 이에 대한 대안으로서, 사용자가 컴퓨팅 디바이스(200)를 프로그래밍하거나 다른 방식으로 사용할 수 있게 하는 다른 출력 디바이스들이 제공될 수 있다. 출력 디바이스가 디스플레이이거나 디스플레이를 포함할 때, 디스플레이는 액정 디스플레이(LCD), 음극선관(CRT) 디스플레이, 또는 발광 다이오드(LED) 디스플레이 이를테면, 유기 LED(OLED) 디스플레이를 포함하여, 다양한 방식들로 구현될 수 있다.
[0030] 컴퓨팅 디바이스(200)는 또한, 이미지-감지 디바이스(220), 예를 들어 카메라, 또는 컴퓨팅 디바이스(200)를 조작하는 사용자의 이미지와 같은 이미지를 감지할 수 있는, 현재 존재하거나 이후에 개발되는 임의의 다른 이미지-감지 디바이스(220)를 포함하거나 이와 통신할 수 있다. 이미지-감지 디바이스(220)는 컴퓨팅 디바이스(200)를 조작하는 사용자를 향해 지향되도록 포지셔닝될 수 있다. 일 예에서, 이미지-감지 디바이스(220)의 포지션 및 광학 축은 시계(field of vision)가, 디스플레이(218)에 직접 인접하고 디스플레이(218)가 보이는 영역을 포함하도록 구성될 수 있다.
[0031] 컴퓨팅 디바이스(200)는 또한, 사운드-감지 디바이스(222), 예를 들어 마이크로폰, 또는 컴퓨팅 디바이스(200) 근처의 사운드들을 감지할 수 있는, 현재 존재하거나 이후에 개발되는 임의의 다른 사운드-감지 디바이스를 포함하거나 이와 통신할 수 있다. 사운드-감지 디바이스(222)는 컴퓨팅 디바이스(200)를 조작하는 사용자를 향해 지향되도록 포지셔닝될 수 있고, 사용자가 컴퓨팅 디바이스(200)를 조작하는 동안 사용자에 의해 생성된 사운드, 예를 들어, 스피치 또는 다른 발화들을 수신하도록 구성될 수 있다.
[0032] 도 2는 컴퓨팅 디바이스(200)의 프로세서(202) 및 메모리(204)가 하나의 유닛에 통합된 것으로 도시하지만, 다른 구성들이 이용될 수 있다. 프로세서(202)의 동작들은 직접적으로 또는 로컬 영역 또는 다른 네트워크를 통해 커플링될 수 있는 다수의 머신들(여기서 개별 머신들은 하나 이상의 프로세서들을 가질 수 있음)에 걸쳐 분배될 수 있다. 메모리(204), 이를테면, 컴퓨팅 디바이스(200)의 동작들을 수행하는 다수의 머신들에 내의 메모리 또는 네트워크-기반 메모리는 다수의 머신들에 걸쳐 분배될 수 있다. 여기서는 하나의 버스로서 도시되지만, 컴퓨팅 디바이스(200)의 버스(212)는 다수의 버스들로 구성될 수 있다. 또한, 보조 저장소(214)는 컴퓨팅 디바이스(200)의 다른 컴포넌트들에 직접 커플링될 수 있거나 네트워크를 통해 액세스될 수 있고, 메모리 카드와 같은 통합 유닛 또는 다수의 메모리 카드들과 같은 다수의 유닛들을 포함할 수 있다. 따라서, 컴퓨팅 디바이스(200)는 매우 다양한 구성들로 구현될 수 있다.
[0033] 도 3은 인코딩되고 후속적으로 디코딩되는 비디오 스트림(300)의 예의 도면이다. 비디오 스트림(300)은 비디오 시퀀스(302)를 포함한다. 다음 레벨에서, 비디오 시퀀스(302)는 다수의 인접 프레임들(304)을 포함한다. 3개의 프레임들이 인접 프레임들(304)로서 도시되지만, 비디오 시퀀스(302)는 임의의 수의 인접 프레임들(304)을 포함할 수 있다. 인접 프레임들(304)은 그 후, 개별 프레임들, 예를 들어 프레임(306)으로 추가로 세분될 수 있다. 다음 레벨에서, 프레임(306)은 일련의 평면들 또는 세그먼트들(308)로 분할될 수 있다. 세그먼트들(308)은 예를 들어, 병렬 프로세싱을 허용하는 프레임들의 서브세트들일 수 있다. 세그먼트들(308)은 또한 비디오 데이터를 별개의 컬러들로 분리할 수 있는 프레임들의 서브세트들일 수 있다. 예를 들어, 컬러 비디오 데이터의 프레임(306)은 휘도 평면 및 2개의 색차(chrominance) 평면들을 포함할 수 있다. 세그먼트들(308)은 상이한 해상도들로 샘플링될 수 있다.
[0034] 프레임(306)이 세그먼트들(308)로 분할되든지 안되든지 간에, 프레임(306)은 블록들(310)로 추가로 세분화될 수 있으며, 이 블록(310)은 예를 들어 프레임(306)에 16x16 픽셀들에 대응하는 데이터를 포함할 수 있다. 블록들(310)은 또한 픽셀 데이터의 하나 이상의 세그먼트들(308)로부터의 데이터를 포함하도록 배열될 수 있다. 블록들(310)은 또한 4x4 픽셀들, 8x8 픽셀들, 16x8 픽셀들, 8x16 픽셀들, 16x16 픽셀들 또는 그 이상과 같은 임의의 다른 적합한 크기로 이루어질 수 있다. 달리 언급되지 않는 한, 블록 및 매크로블록이란 용어들은 본원에서 상호 교환 가능하게 사용된다.
[0035] 도 4는 본 개시내용의 구현들에 따른 인코더(400)의 블록도이다. 인코더(400)는 이를테면, 메모리 예를 들어, 메모리(204)에 저장된 컴퓨터 소프트웨어 프로그램을 제공함으로써 송신 스테이션(102)에서 위에서 설명된 바와 같이 구현될 수 있다. 컴퓨터 소프트웨어 프로그램은 프로세서(202)와 같은 프로세서에 의해 실행될 때 송신 스테이션(102)으로 하여금, 도 4에 설명된 방식으로 비디오 데이터를 인코딩하게 하는 머신 명령들을 포함할 수 있다. 인코더(400)는 또한, 예를 들어 송신 스테이션(102)에 포함된 특수 하드웨어로서 구현될 수 있다. 하나의 특히 바람직한 구현에서, 인코더(400)는 하드웨어 인코더이다.
[0036] 인코더(400)는 입력으로서 비디오 스트림(300)을 사용하여 인코딩된 또는 압축된 비트스트림(420)을 생성하기 위해 (실선 연결선들에 의해 도시된) 순방향 경로에서 다양한 기능을 수행하기 위해 다음의 스테이지들 : 인트라/인터 예측 스테이지(402), 변환 스테이지(404), 양자화 스테이지(406) 및 엔트로피 인코딩 스테이지(408)를 갖는다. 인코더(400)는 또한 미래 블록들의 인코딩을 위한 프레임을 재구성하기 위한 재구성 경로(점선 연결선들에 의해 도시됨)를 포함할 수 있다. 도 4에서, 인코더(400)는 재구성 경로에서 다양한 기능들을 수행하기 위해 다음의 스테이지들: 역양자화 스테이지(410), 역변환 스테이지(412), 재구성 스테이지(414) 및 루프 필터링 스테이지(416)를 갖는다. 인코더(400)의 다른 구조적 변동들이 비디오 스트림(300)을 인코딩하는데 사용될 수 있다.
[0037] 비디오 스트림(300)이 인코딩을 위해 제시될 때, 프레임(306)과 같은 각각의 인접 프레임들(304)이 블록들의 단위로 프로세싱될 수 있다. 인트라/인터 예측 스테이지(402)에서, 각각의 블록들은 인트라-프레임 예측(인트라-예측이라고도 칭함) 또는 인터-프레임 예측(인터-예측이라고도 칭함)을 사용하여 인코딩될 수 있다. 어느 경우든, 예측 블록이 형성될 수 있다. 인트라-예측의 경우에, 예측 블록은 이전에 인코딩되고 재구성된 현재 프레임의 샘플들로부터 형성될 수 있다. 인터-예측의 경우에, 예측 블록은 하나 이상의 이전에 구성된 기준 프레임들의 샘플들로부터 형성될 수 있다.
[0038] 다음으로, 예측 블록은 인트라/인터 예측 스테이지(402)에서 현재 블록으로부터 감산되어 잔차 블록(잔차라고도 칭함)을 생성할 수 있다. 변환 스테이지(404)는 예를 들어, 블록 기반 변환들을 사용하여 주파수 도메인에서 잔차를 변환 계수들로 변환한다. 양자화 스테이지(406)는 양자화기 값 또는 양자화 레벨을 이용하여 양자화된 변환 계수들로서 또한 지칭되는 이산 양자 값들로 변환 계수들을 컨버팅한다. 예를 들어, 변환 계수들은 양자화기 값으로 나누어지고 절단(truncated)될 수 있다.
[0039] 그 후, 양자화된 변환 계수들은 엔트로피 인코딩 스테이지(408)에 의해 엔트로피 인코딩된다. 블록을 디코딩하는데 사용되는 다른 정보(이는 예를 들어, 사용된 예측 유형, 변환 유형, 모션 벡터들, 양자화기 값 등을 표시하는데 사용되는 바와 같은 신택스 엘리먼트를 포함할 수 있음)와 함께, 엔트로피-인코딩된 계수들은 그 후, 압축된 비트스트림(420)으로 출력된다. 압축된 비트스트림(420)은 VLC(variable length coding) 또는 산술 코딩과 같은 다양한 기술들을 사용하여 포맷팅될 수 있다. 압축된 비트스트림(420)은 또한, 인코딩된 비디오 스트림 또는 인코딩된 비디오 비트스트림으로서 지칭될 수 있으며, 이 용어들은 본원에서 상호 교환 가능하게 사용될 것이다.
[0040] (점선 연결선들에 의해 도시된) 재구성 경로는 인코더(400) 및 디코더(500)(도 5와 관련하여 아래에서 설명됨)가 압축된 비트스트림(420)을 디코딩하기 위해 동일한 기준 프레임들을 사용하는 것을 보장하기 위해 사용될 수 있다. 재구성 경로는 역양자화 스테이지(410)에서 양자화된 변환 계수를 역양자화하고 역변환 스테이지(412)에서 역양자화된 변환 계수들을 역변환하여 파생 잔차(derivative residual) 블록(파생 잔차라고도 칭함)을 생성하는 것을 포함하여, 디코딩 프로세스(도 5와 관련하여 아래에서 설명됨) 동안 발생하는 기능들과 유사한 기능들을 수행한다. 재구성 스테이지(414)에서, 인트라/인터 예측 스테이지(402)에서 예측된 예측 블록은 파생 잔차에 추가되어 재구성된 블록을 생성할 수 있다. 루프 필터링 스테이지(416)는 블록킹 아티팩트들과 같은 왜곡을 감소시키기 위해 재구성된 블록에 적용될 수 있다.
[0041] 인코더(400)의 다른 변동들은 압축된 비트스트림(420)을 인코딩하는데 사용될 수 있다. 일부 구현들에서, 비-변환 기반 인코더는 소정의 블록들 또는 프레임들에 대해 변환 스테이지(404) 없이 잔차 신호를 직접 양자화할 수 있다. 일부 구현들에서, 인코더는 공통 스테이지에서 결합된 양자화 스테이지(406) 및 역양자화 스테이지(410)를 가질 수 있다.
[0042] 도 5는 본 개시내용의 구현들에 따른 디코더의 블록도(500)이다. 디코더(500)는 예를 들어 메모리(204)에 저장된 컴퓨터 소프트웨어 프로그램을 제공함으로써 수신 스테이션(106)에서 구현될 수 있다. 컴퓨터 소프트웨어 프로그램은 프로세서(202)와 같은 프로세서에 의해 실행될 때 수신 스테이션(106)으로 하여금, 도 5에 설명된 방식으로 비디오 데이터를 디코딩하게 하는 머신 명령들을 포함할 수 있다. 디코더(500)는 또한, 예를 들어 송신 스테이션(102) 또는 수신 스테이션(106)에 포함된 하드웨어에서 구현될 수 있다.
[0043] 디코더(500)는 위에서 논의된 인코더(400)의 재구성 경로와 유사하게, 일 예에서, 압축된 비트스트림(420)으로부터 출력 비디오 스트림(516)을 생성하기 위한 다양한 기능들을 수행하기 위한 다음의 스테이지들 : 엔트로피 디코딩 스테이지(502), 역양자화 스테이지(504), 역변환 스테이지(506), 인트라/인터 예측 스테이지(508), 재구성 스테이지(510), 루프 필터링 스테이지(512) 및 디블로킹 필터링 스테이지(514)를 포함한다. 압축된 비트스트림(420)을 디코딩하기 위해 디코더(500)의 다른 구조적 변동들이 사용될 수 있다.
[0044] 압축된 비트스트림(420)이 디코딩을 위해 제시될 때, 압축된 비트스트림(420) 내의 데이터 엘리먼트들은 양자화된 변환 계수들의 세트를 생성하도록 엔트로피 디코딩 스테이지(502)에 의해 디코딩될 수 있다. 역양자화 스테이지(504)는 (예를 들어, 양자화된 변환 계수들을 양자화기 값으로 곱함으로써) 양자화된 변환 계수들을 역양자화하고, 역변환 스테이지(506)는 인코더(400)의 역변환 스테이지(412)에 의해 생성된 것과 동일할 수 있는 파생 잔차를 생성하도록 역양자화된 변환 계수들을 역변환한다. 압축된 비트스트림(420)으로부터 디코딩된 헤더 정보를 사용하여, 디코더(500)는 인코더(400)에서(예를 들어, 인트라/인터 예측 스테이지(402)에서) 생성된 것과 동일한 예측 블록을 생성하도록 인트라/인터 예측 스테이지(508)를 사용할 수 있다.
[0045] 재구성 스테이지(510)에서, 예측 블록은 파생 잔차에 추가되어 재구성된 블록을 생성할 수 있다. 루프 필터링 스테이지(512)는 블록킹 아티팩트들을 감소시키기 위해 재구성된 블록에 적용될 수 있다. 다른 필터링이 재구성된 블록에 적용될 수 있다. 이 예에서, 디블로킹 필터링 스테이지(514)는 블로킹 왜곡을 감소시키기 위해 재구성된 블록에 적용되고, 결과는 출력 비디오 스트림(516)으로서 출력된다. 출력 비디오 스트림(516)은 또한 디코딩된 비디오 스트림으로 지칭될 수 있고, 그 용어들은 본원에서 상호 교환 가능하게 사용될 것이다. 압축된 비트스트림(420)을 디코딩하기 위해 디코더(500)의 다른 변동들이 사용될 수 있다. 일부 구현들에서, 디코더(500)는 디블로킹 필터링 스테이지(514) 없이 출력 비디오 스트림(516)을 생성할 수 있다.
[0046] 비디오 블록들을 인코딩 또는 디코딩하기 위한 기술들이 이제 도 6 및 도 7과 관련하여 설명된다. 도 6은 선택된 예측 방식을 사용하여 비디오 블록을 인코딩하기 위한 방법 또는 기술(600)의 예의 흐름도이다. 도 7은 선택된 예측 방식을 사용하여 인코딩된 블록을 디코딩하기 위한 방법 또는 기술(700)의 예의 흐름도이다. 기술(600) 또는 기술(700) 중 하나 또는 둘 모두는 예를 들어, 송신 스테이션(102) 또는 수신 스테이션(106)과 같은 컴퓨팅 디바이스들에 의해 실행될 수 있는 소프트웨어 프로그램으로서 구현될 수 있다. 예를 들어, 소프트웨어 프로그램은 메모리(204) 또는 보조 저장소(214)와 같은 메모리에 저장될 수 있고 프로세서(202)와 같은 프로세서에 의해 실행될 때, 컴퓨팅 디바이스로 하여금, 기술(600) 및/또는 기술(700)을 수행하게 할 수 있는 머신-판독 가능 명령들을 포함할 수 있다. 기술(600) 또는 기술(700) 중 하나 또는 둘 모두는 특수 하드웨어 또는 펌웨어를 사용하여 구현될 수 있다. 위에서 설명된 바와 같이, 일부 컴퓨팅 디바이스들은 다수의 메모리들 또는 프로세서들을 가질 수 있고, 기술(600) 또는 기술(700) 중 하나 또는 둘 모두에서 설명된 동작들은 다수의 프로세서들, 메모리들 또는 둘 모두를 사용하여 분배될 수 있다.
[0047] 설명의 간략화를 위해, 기술(600) 및 기술(700)은 각각 일련의 단계들 또는 동작들로서 도시되고 설명된다. 그러나, 본 개시내용에 따른 단계들 또는 동작들은 다양한 순서들로 그리고/또는 동시에 발생할 수 있다. 부가적으로, 본원에서 제시 및 설명되지 않은 다른 단계들 또는 동작들이 사용될 수 있다. 또한, 개시된 청구 대상에 따른 기술을 구현하기 위해 예시된 모든 단계들 또는 동작들이 요구되진 않을 수 있다.
[0048] 먼저 도 6을 참조하면, 선택된 예측 방식을 사용하여 비디오 블록을 인코딩하기 위한 기술(600)의 흐름도가 도시된다. 602에서, 하나 이상의 양자화된 가중 계수들을 사용하여 제1 기준 프레임으로부터 비디오 프레임까지 그리고 제2 기준 프레임으로부터 비디오 프레임까지의 거리들을 가중함으로써 제1 복합 모션 블록이 결정된다. 제1 기준 프레임 및 제2 기준 프레임은 과거 프레임들(예를 들어, 디스플레이 순서에서 현재 비디오 프레임 이전에 나타나는 프레임들) 또는 미래 프레임들(예를 들어, 디스플레이 순서에서 현재 비디오 프레임 이후에 나타나는 프레임들)일 수 있다. 예를 들어, 제1 기준 프레임은 과거 프레임일 수 있고 제2 기준 프레임은 미래 프레임일 수 있다. 다른 예에서, 제1 기준 프레임 및 제2 기준 프레임은 둘 모두 과거 프레임일 수 있다. 또 다른 예에서, 제1 기준 프레임 및 제2 기준 프레임은 둘 모두 미래 프레임들일 수 있다.
[0049] 제1 복합 모션 블록을 결정하는 것은, 제1 기준 프레임으로부터 비디오 프레임까지의 제1 거리와 제2 기준 프레임으로부터 비디오 프레임까지의 제2 거리를 비교함으로써 제1 양자화된 가중 계수 및 제2 양자화된 가중 계수를 결정하는 것을 포함할 수 있다. 제1 거리 및 제2 거리의 비교된 값들은, 예를 들어 제1 거리 및 제2 거리의 절대 값들일 수 있다. 제1 양자화된 가중 계수 및 제2 양자화된 가중 계수는 비교에 기초하여 양자화되고, 제1 복합 모션 블록은 제1 양자화된 가중 계수 및 제2 양자화된 가중 계수를 사용하여 결정된다. 예를 들어, 도 9와 관련하여 아래에서 설명되는 바와 같이, 제1 양자화된 가중 계수 및 제2 양자화된 가중 계수 각각은 1, 2, 3 또는 4의 값으로 양자화될 수 있다. 다른 예에서, 제1 양자화된 가중 계수 및 제2 양자화된 가중 계수는 제1 거리와 제2 거리 사이의 관계를 나타내는 다른 값들로 양자화될 수 있다.
[0050] 제1 거리를 제2 거리와 비교함으로써 제1 양자화된 가중 계수 및 제2 양자화된 가중 계수를 결정하는 것은, 제1 거리가 제2 거리보다 큰지 또는 작은지를 결정하는 것을 포함할 수 있다. 제1 거리가 제2 거리보다 크다는 결정에 응답하여, 제1 양자화된 가중 계수는 1의 값을 갖는 것으로 결정될 수 있고 제2 양자화된 가중 계수는 적어도 1의 값을 갖는다. 제1 거리가 제2 거리보다 작다는 결정에 응답하여, 제1 양자화된 가중 계수는 적어도 1의 값을 갖는 것으로 결정될 수 있고, 제2 양자화된 가중 계수는 1의 값을 갖는다.
[0051] 제1 복합 모션 블록은 예를 들어,
Figure pct00001
로 결정될 수 있고, 여기서 Ref1_MB는 현재 비디오 블록 내에서 모션을 예측하는 데 사용할 수 있는 제1 기준 프레임의 픽셀 값들의 블록이고, 여기서 Ref2_MB는 현재 비디오 블록 내에서 모션을 예측하는 데 사용할 수 있는 제2 기준 프레임의 픽셀 값들의 블록이고, a는 제1 양자화된 가중 계수를, 제1 기준 프레임과 현재 비디오 프레임 사이의 거리에 적용함으로써 결정된 값이고,b는 제2 양자화된 가중 계수를, 제2 기준 프레임과 현재 비디오 프레임 사이의 거리에 적용함으로써 결정된 값이다.
[0052] 즉, 제1 기준 프레임의 비디오 블록으로부터의 픽셀 값들에 대해 제1 양자화된 가중 계수를 적용함으로써 제1 값이 결정될 수 있다. 제2 기준 프레임의 비디오 블록으로부터의 픽셀 값들에 대해 제2 양자화된 가중 계수를 적용함으로써 제2 값이 결정될 수 있다. 그 후, 제1 값과 제2 값의 합을, 제1 양자화된 가중 계수와 제2 양자화된 가중 계수의 합으로 나눔으로써 제1 복합 모션 블록이 결정될 수 있다.
[0053] 604에서, 제1 기준 프레임의 비디오 블록으로부터의 픽셀 값들 및 제2 기준 프레임의 비디오 블록으로부터의 픽셀 값들의 평균에 기초하여 제2 복합 모션 블록을 결정된다. 예를 들어, 제1 기준 프레임의 비디오 블록으로부터의 픽셀 값들 및 제2 기준 프레임의 비디오 블록으로부터의 픽셀 값들의 평균을 결정하는 것은 2개의 비디오 블록들의 대응하는 포지션에서의 픽셀 값들을 합산하고, 그 후 이러한 합산된 픽셀 값들을 2로 나누는 것을 포함할 수 있다. 다른 예에서, 제1 기준 프레임의 비디오 블록으로부터의 픽셀 값들 및 제2 기준 프레임의 비디오 블록으로부터의 픽셀 값들의 평균을 결정하는 것은 평균을 결정하기 전에 제1 기준 프레임 또는 제2 기준 프레임의 비디오 블록으로부터의 픽셀 값들의 일부 또는 전부를 가중하는 것을 포함할 수 있다.
[0054] 606에서, 제1 복합 모션 블록 또는 복합 모션 블록 중 하나가 선택된다. 제1 복합 모션 블록 또는 제2 복합 모션 블록 중 하나를 선택하는 것은, 제1 복합 모션 블록 및 제2 복합 모션 블록 각각을 사용하여 현재 블록의 모션을 예측하는 것에 기인한 레이트-왜곡 값들을 결정하는 것을 포함한다. 이들 레이트-왜곡 값들은 제1 복합 모션 블록 및 제2 복합 모션 블록에 기초하여 레이트-왜곡 분석을 수행함으로써 결정될 수 있다. 예를 들어, 제1 레이트-왜곡 값은 제1 복합 모션 블록에 대해 결정될 수 있고, 제2 레이트-왜곡 값은 제2 복합 모션 블록에 대해 결정될 수 있다. 그 후, 레이트-왜곡 값들 중 더 낮은 하나를 발생시키도록 제1 복합 모션 블록 또는 2 복합 모션 블록 중 하나가 선택된다. 예를 들어, 레이트-왜곡 분석을 수행하는 것은 제1 레이트-왜곡 값과 제2 레이트-왜곡 값을 비교하는 것을 포함할 수 있다.
[0055] 레이트-왜곡 값은 블록 또는 다른 비디오 컴포넌트를 코딩하기 위한 레이트(예를 들어, 비트들의 수)와 왜곡의 양(예를 들어, 비디오 품질의 손실)의 균형을 유지하는 비를 지칭한다. 따라서, 비디오 블록을 인코딩하기 위해 레이트-왜곡 값을 최소화하는 예측 방식이 현재 블록을 인코딩하기 위해 선택된다. 예를 들어, 제1 복합 모션 블록에 대한 레이트-왜곡 값(예를 들어, 거리-기반 예측 방식)이 제2 복합 모션 블록에 대한 레이트-왜곡 값(예를 들어, 평균-기반 예측 방식)보다 높을 때, 이는 기준 프레임과 현재 비디오 프레임들 사이의 모션이 비교적 낮다는 것을 반영할 수 있다. 그러나, 제1 복합 모션 블록에 대한 레이트-왜곡 값이 제2 복합 모션 블록에 대한 레이트-왜곡 값보다 낮을 때, 이는 기준 프레임과 현재 비디오 프레임들 사이의 모션이 비교적 높다는 것을 반영할 수 있다.
[0056] 608에서, 제1 복합 모션 블록 또는 제2 복합 모션 블록 중 선택된 하나를 사용하여 예측 블록이 생성된다. 예측 블록은 제1 복합 모션 블록 또는 제2 복합 모션 블록 중 선택된 하나에 따라 현재 블록의 모션의 예측을 표시하는 픽셀 값들을 포함할 수 있다. 예측 블록을 생성하는 것은 현재 블록과 예측 블록의 차이에 기초하여 예측 잔차를 생성하는 것을 포함할 수 있다. 예를 들어, 예측 잔차는 도 4에(예를 들어, 인트라/인터 예측 단계(402)에서) 도시된 인코더(400)에 의해 수행된 동작들을 사용하여 생성될 수 있다. 610에서, 현재 블록이 예측 블록을 사용하여 인코딩된다. 예를 들어, 예측 블록을 사용하여 현재 블록을 인코딩하는 것은 예측 잔차를 인코딩된 비트스트림(예를 들어, 도 4에 도시된 압축된 비트스트림(420))으로 변환, 양자화 및 엔트로피 인코딩하는 것을 포함할 수 있다.
[0057] 일부 구현들에서, 기술(600)은 제1 복합 모션 블록 또는 제2 복합 모션 블록의 선택을 나타내는 하나 이상의 신택스(syntax) 엘리먼트를, 현재 블록이 인코딩되는 비트스트림으로 인코딩하는 것을 포함한다. 예를 들어, 하나 이상의 신택스 엘리먼트들은 비트를 포함할 수 있다. 비트의 값은 현재 블록을 인코딩하는데 사용된 모션 벡터와 연관된 예측 방식을 표시할 수 있다. 예를 들어, 제1 복합 모션 블록 및 이에 따라 거리-기반 예측 방식이 사용될 때, 비트의 값은 0일 수 있다. 제2 복합 모션 블록 및 이에 따라 평균-기반 예측 방식이 사용될 때, 비트의 값은 1일 수 있다. 하나 이상의 신택스 엘리먼트들은 인코딩된 현재 블록을 포함하는 비디오 프레임의 프레임 헤더로 인코딩될 수 있다.
[0058] 기술(600)은 2개보다 많은 기준 프레임들을 사용하는 것을 포함할 수 있다. 예를 들어, 3개의 기준 프레임들이 사용될 때, 제1 양자화된 가중 계수를 사용하여 기준 프레임들 중 제1 기준 프레임과 현재 비디오 프레임 사이의 거리를 가중하고, 제2 양자화된 가중 계수를 사용하여 기준 프레임들 중 제2 기준 프레임과 현재 비디오 프레임 사이의 거리를 가중하고, 제3 양자화된 가중 계수를 사용하여 기준 프레임들 중 제3 기준 프레임과 현재 비디오 프레임 사이의 거리를 가중함으로써 제1 복합 모션 블록이 결정될 수 있다.
[0059] 이들 3개의 기준 프레임들을 사용하여 현재 비디오 블록에서 모션을 예측하기 위해 사용할 복합 모션 블록은 예를 들어,
Figure pct00002
로서 결정될 수 있으며, 여기서 Ref1_MB는 현재 비디오 블록에서 모션을 예측하는 데 사용할 수 있는 제1 기준 프레임의 픽셀 값들의 블록이고, 여기서 Ref2_MB는 현재 비디오 블록에서 모션을 예측하는 데 사용할 수 있는 제2 기준 프레임의 픽셀 값들의 블록이고, 여기서 Ref3_MB는 현재 비디오 블록에서 모션을 예측하는 데 사용할 수 있는 제3 기준 프레임의 픽셀 값들의 블록이고, a는 제1 양자화된 가중 계수를, 제1 기준 프레임과 현재 비디오 프레임 사이의 거리에 적용함으로써 결정된 값이고, b는 제2 양자화된 가중 계수를, 제2 기준 프레임과 현재 비디오 프레임 사이의 거리에 적용함으로써 결정된 값이고, c는 제3 양자화된 가중 계수를, 제3 기준 프레임과 현재 비디오 프레임 사이의 거리에 적용함으로써 결정된 값이다.
[0060] 기술(600)은 현재 블록의 모션을 예측하기 위해 거리-기반 예측 방식(예를 들어, 제1 복합 모션 블록) 또는 평균-기반 예측 방식(예를 들어, 제2 복합 모션 블록)이 선택되었는지를 표시하기 위해 비디오 프레임과 연관된 확률 모델을 업데이트하는 것을 포함할 수 있다. 예를 들어, 현재 블록의 예측 방식에 대한 콘텍스트는 현재 블록의 위의 인접 블록 또는 현재 블록의 좌측 이웃 블록 중 하나 이상의 콘텍스트들에 기초하여 결정될 수 있으며, 여기서 콘텍스트들은 이러한 이웃 블록들을 인코딩하기 위해 선택된 예측 방식을 표시한다. 비디오 프레임의 주어진 블록에 대한 콘텍스트는 거리-기반 예측 방식이 사용되었음을 표시하는 제1 값 또는 평균화-기반 예측 방식이 사용되었음을 표시하는 제2 값을 가질 수 있다. 확률 모델은 사용되는 있는 이러한 예측 방식들 각각의 확률들을 반영하도록 업데이트될 수 있다.
[0061] 다음으로 도 7을 참조하면, 선택된 예측 방식을 사용하여 인코딩된 블록을 디코딩하기 위한 기술(700)이 도시된다. 702에서, 하나 이상의 신택스 엘리먼트는 인코딩된 비디오 프레임을 포함하는 비트스트림으로부터 디코딩되며, 이 인코딩된 비디오 프레임은 인코딩된 블록을 포함한다. 하나 이상의 신택스 엘리먼트들은 예를 들어 인코딩된 비디오 프레임에 대한 프레임 헤더로부터 디코딩될 수 있다. 하나 이상의 신택스 엘리먼트들은, 인코딩된 블록을 인코딩하는데 사용된 인코더가 인코딩된 블록이 인코딩되기 전에 인코딩된 블록에 대한 모션을 예측하기 위해 거리-기반 예측 방식 또는 평균-기반 예측 방식을 선택했는지를 표시하기 위해 인코딩된 비트스트림으로 인코딩될 수 있다.
[0062] 704에서, 복수의 기준 프레임들 각각으로부터 인코딩된 비디오 프레임까지의 거리들을 가중함으로써 인코딩된 블록이 인코딩되었는지에 관한 결정이 내려진다. 결정은 인코딩된 프레임을 포함하는 비트스트림으로부터 디코딩된 하나 이상의 신택스 엘리먼트들의 값 또는 값들에 기초하여 내려질 수 있다. 예를 들어, 디코딩된 신택스 엘리먼트는 1 비트를 포함할 수 있다. 비트가 제1 값(예를 들어, 0)을 가질 때, 복수의 기준 프레임들 각각으로부터 인코딩된 비디오 프레임까지의 거리들을 가중함으로써 인코딩된 블록이 인코딩된 것으로 결정될 수 있다. 그러나, 비트가 제2 값(예를 들어, 1)을 가질 때, 복수의 기준 프레임들 각각으로부터 인코딩된 비디오 프레임까지의 거리들을 가중함으로써 인코딩된 블록이 인코딩되지 않은 것으로 결정될 수 있다.
[0063] 706에서, 복수의 기준 프레임들 각각으로부터 인코딩된 비디오 프레임까지의 거리들을 가중함으로써 인코딩된 블록이 인코딩되었다는 결정에 응답하여, 하나 이상의 양자화된 가중 계수들을 사용하여, 제1 기준 프레임으로부터 인코딩된 비디오 프레임까지의 제1 거리 및 제2 기준 프레임으로부터 인코딩된 비디오 프레임까지의 제2 거리를 가중함으로써 복합 모션 블록이 결정된다. 위에서 설명된 바와 같이, 제1 기준 프레임 및 제2 기준 프레임은 과거 프레임들(예를 들어, 디스플레이 순서에서 현재 비디오 프레임 이전에 나타나는 프레임들) 또는 미래 프레임들(예를 들어, 디스플레이 순서에서 현재 비디오 프레임 이후에 나타나는 프레임들)일 수 있다.
[0064] 복합 모션 블록은 기술(600)과 관련하여 설명된 제1 복합 모션 블록을 결정하기 위한 구현에서와 동일하거나 유사한 방식으로 706에서 결정될 수 있다. 그러나, 기술(600)을 수행하는 인코더는 입력 비디오 스트림으로부터 비디오 프레임, 제1 기준 프레임 및 제2 기준 프레임을 포함하는 비디오 시퀀스의 디스플레이 순서를 표시하는 정보를 수신하지만, 기술(700)을 수행하는 디코더는 입력 비디오 스트림으로부터 이 정보를 수신하지 않는다.
[0065] 대신에, 인코딩된 비디오 프레임, 제1 기준 프레임 및 제2 기준 프레임을 포함하는 비디오 시퀀스의 인코딩된 비디오 프레임들의 순서는 인코딩된 비디오 프레임(및 예를 들어, 이전에-디코딩된 하나 이상의 신택스 엘리먼트들)을 포함하는 비트스트림 내에서 표시될 수 있다. 예를 들어, 인코딩된 비트스트림은 인코딩된 비트스트림에 인코딩된 비디오 프레임들 각각에 대한 프레임 인덱스들을 표시하는 데이터를 포함할 수 있다. 이들 프레임 인덱스들은 비디오 시퀀스에 대한 디스플레이 순서를 결정하기 위해 기술(700)을 수행하는 디코더에 의해, 그 자체로 또는 다른 데이터(예를 들어, 패킷 스탬프 데이터, 다른 시간적 오프셋 데이터 등)와 관련하여 사용될 수 있다.
[0066] 대안적으로, 708에서, 하나 이상의 양자화된 가중 계수들을 사용하여 거리들을 가중함으로써 인코딩된 블록이 인코딩되지 않았다는 결정에 응답하여, 제1 기준 프레임의 인코딩된 비디오 블록의 픽셀 값들 및 제2 기준 프레임의 인코딩된 비디오 블록의 픽셀 값들의 평균에 기초하여 복합 모션 블록이 결정된다. 복합 모션 블록은 기술(600)과 관련하여 설명된 제2 복합 모션 블록을 결정하기 위한 구현에서와 동일하거나 유사한 방식으로 708에서 결정될 수 있다.
[0067] 710에서, 예측 블록은 706에서 또는 708에서 결정된 복합 모션 블록을 사용하여 생성된다. 기술(600)과 관련하여 위에서 설명된 바와 같이, 예측 블록은 결정된 복합 모션 블록에 따라, 인코딩된 블록의 모션의 예측을 표시하는 픽셀 값들을 포함할 수 있다. 예측 블록을 생성하는 것은 인코딩된 블록과 예측 블록의 차이에 기초하여 예측 잔차를 생성하는 것을 포함할 수 있다. 예를 들어, 예측 잔차는 도 5에(예를 들어, 인트라/인터 예측 단계(508)에서) 도시된 디코더(500)에 의해 수행된 동작들을 사용하여 생성될 수 있다. 712에서, 인코딩된 블록은 예측 블록을 사용하여 디코딩된다. 예를 들어, 예측 블록을 사용하여 인코딩된 블록을 디코딩하는 것은 예측 잔차에 기초하여 비디오 블록을 재구성하는 것, 재구성된 비디오 블록을 필터링하는 것, 그리고 필터링된 비디오 블록을 비디오 스트림(예를 들어, 도 5에 도시된 출력 비디오 스트림(516))에 출력하는 것을 포함할 수 있다.
[0068] 일부 구현들에서, 기술(700)은 2개보다 많은 기준 프레임들을 사용하는 것을 포함한다. 예를 들어, 기술(700)은 인코딩된 블록을 인코딩하는 데 사용되는 인코더와 동일한 수의 기준 프레임들을 사용하여 인코딩된 블록을 디코딩할 수 있다. 2개보다 많은 기준 프레임들을 사용하기 위한 구현들은 기술(600)과 관련하여 위에서 설명되었다.
[0069] 기술(700)은 인코딩된 블록의 모션을 예측하기 위해 거리-기반 예측 방식(예를 들어, 제1 복합 모션 블록)에 대응하는 복합 모션 블록 또는 평균-기반 예측 방식(예를 들어, 제2 복합 모션 블록)에 대응하는 복합 모션 블록이 선택되었는지를 표시하기 위해 인코딩된 비디오 프레임과 연관된 확률 모델을 업데이트하는 것을 포함할 수 있다. 확률 모델을 업데이트하기 위한 구현들은 기술(600)과 관련하여 위에서 설명되었다.
[0070] 도 8은 비디오 시퀀스의 프레임들 사이의 거리들의 예의 예시이다. 비디오 프레임(800)은 인코딩되거나 디코딩될 비디오 블록(802)을 포함한다. 비디오 블록(802)은 제1 기준 프레임(804) 및 제2 기준 프레임(806)을 사용하여 인코딩 또는 디코딩될 수 있다. 예를 들어, 제1 기준 프레임의 비디오 블록(808)의 픽셀 값들의 전부 또는 일부는 제2 기준 프레임의 비디오 블록(810)의 픽셀 값들의 전부 또는 일부와 결합될 수 있다. 이들 픽셀 값들의 결합은 제1 기준 프레임(804)과 비디오 프레임(800) 사이의 디스플레이 순서에서의 거리를 표시하는 거리 1(812)에 기초하고 제2 기준 프레임(806)과 비디오 프레임(800) 사이의 디스플레이 순서에서의 거리를 표시하는 거리 2(814)에 기초할 수 있다.
[0071] 거리 1(812)과 거리 2(814)가 동일한 경우, 비디오 블록(808)의 픽셀 값들 및 비디오 블록(810)의 픽셀 값들은 동일하게 결합되어 비디오 블록(802)에서의 모션을 예측할 수 있다. 그러나, 거리 1(812) 및 거리 2(814) 중 하나는 다른 하나보다 클 수 있다. 그러한 경우에, 비디오 프레임(800)으로부터 2개의 기준 프레임들(804, 806) 중 더 멀리 떨어진 것은 비디오 블록(802)에 대한 전체 모션 예측에 대해 영향을 덜 줄 가능성이 높다. 도시된 예에서, 거리 2(814)는 거리 1(812)보다 더 크다. 따라서, 제1 기준 프레임의 비디오 블록(808)의 각각의 픽셀 값들에는 제2 기준 프레임의 비디오 블록(810)의 각각의 픽셀 값들보다 (이들 픽셀 값들이 결합되어 비디오 블록(802)의 모션을 예측할 때) 더 많은 가중치가 주어져야 한다.
[0072] 도 9는 양자화된 가중 계수들을 결정하기 위한 트리(900)의 예의 도면이다. 본 개시내용의 구현들에서 설명된 바와 같은 복합 모션 예측을 위한 거리-기반 예측 방식을 사용할 때, 기준 프레임들 각각으로부터 픽셀 값들을 어떻게 가중할지를 결정하는 것은 이들 기준 프레임 각각에 의해 제시된 양자화 노이즈를 숨기는 데 도움이 된다. 양자화 노이즈를 추가로 감소시키기 위해, 기준 프레임들 각각으로부터의 픽셀 값들에 적용된 가중치들은 양자화된 계수들이다. 기준 프레임들의 픽셀 값들의 그룹들 각각에 대해 적용되는 양자화된 가중 계수들은 인코딩 또는 디코딩될 비디오 블록을 포함하는 비디오 프레임과 이들 기준 프레임들 각각 사이의 거리들 간의 비교들에 기초하여 결정될 수 있다.
[0073] 도시된 예에서, 트리(900)의 각각의 리프(leaf)는 거리 D1(예를 들어, 도 8에 도시된 거리 1(812))과 거리 D2(예를 들어, 도 8에 도시된 거리 2(814))의 비교 또는 제1 기준 프레임 및 제2 기준 프레임으로부터의 픽셀 값들을 사용하여 비디오 블록의 모션을 예측하기 위한 양자화된 가중 계수들의 쌍을 포함한다. 위에서 설명된 바와 같이, D1 및 D2의 비교된 값들은 예를 들어, D1 및 D2의 절대 값들일 수 있다.
[0074] 제1 리프에서, D1 및 D2는 어느 것이 더 큰지를 결정하도록 비교된다. 그 비교에 기초하여, 트리(900)는 상이한 값들에 대한 D1 및 D2의 비들을 추가로 더 비교하여 양자화된 가중 계수들의 8개의 상이한 가능한 쌍들 중 하나를 결정하며, 여기서 각각의 쌍은 제1 기준 프레임의 비디오 블록의 픽셀 값들에 대해 적용된 제1 양자화된 가중 계수 및 제2 기준 프레임의 비디오 블록의 픽셀 값들에 대해 적용된 제2 양자화된 가중 계수를 포함한다.
[0075] 예를 들어, D1이 D2보다 크고 D2 대한 D1의 비가 1.5 미만인 경우, 제1 양자화된 가중 계수는 1이고 제2 양자화된 가중 계수는 1이다. D1이 D2보다 크고 D2에 대한 D1의 비가 1.5 이상이고 2.5 미만인 경우, 제1 양자화된 가중 계수는 1이고 제2 양자화된 가중 계수는 2이다. D1이 D2보다 크고 D2에 대한 D1의 비가 2.5 이상이고 3.5 미만인 경우, 제1 양자화된 가중 계수는 1이고 제3 양자화된 가중 계수는 2이다. 그러나 D1이 D2보다 크고 D2 대한 D1의 비가 3.5 이상인 경우, 제1 양자화된 가중 계수는 1이고 제2 양자화된 가중 계수는 4이다.
[0076] 다른 예에서, D2이 D1보다 크고 D1 대한 D2의 비가 1.5 미만인 경우, 제1 양자화된 가중 계수는 1이고 제2 양자화된 가중 계수는 1이다. D2이 D1보다 크고 D1에 대한 D2의 비가 1.5 이상이고 2.5 미만인 경우, 제2 양자화된 가중 계수는 1이고 제1 양자화된 가중 계수는 2이다. D2이 D1보다 크고 D1에 대한 D2의 비가 2.5 이상이고 3.5 미만인 경우, 제3 양자화된 가중 계수는 1이고 제1 양자화된 가중 계수는 2이다. 그러나 D2이 D1보다 크고 D1 대한 D2의 비가 3.5 이상인 경우, 제4 양자화된 가중 계수는 1이고 제2 양자화된 가중 계수는 1이다.
[0077] 따라서, 제1 양자화된 가중 계수 및 제2 양자화된 가중 계수의 값들은 제1 기준 프레임과 현재 비디오 프레임 사이의 제1 거리와 제2 기준 프레임과 현재 비디오 프레임 사이의 제2 거리 사이의 관계를 나타낸다. 예를 들어, 제1 거리가 제2 거리의 2배만큼 큰 것을 제1 거리 및 제2 거리의 비가 표시하는 경우, 제1 양자화된 가중 계수는 2의 값을 가질 것이고 제2 양자화된 가중 계수는 1의 값을 가질 것이다. 예를 들어, 제2 거리가 제1 거리보다 4배 이상 더 큰 것을 제1 거리 및 제2 거리의 비가 표시하는 경우, 제1 양자화된 가중 계수는 1의 값을 가질 것이고 제2 양자화된 가중 계수는 4의 값을 가질 것이다.
[0078] 위에서 설명된 인코딩 및 디코딩의 양상들은 인코딩 및 디코딩 기술들의 일부 예들을 예시한다. 그러나, 인코딩 및 디코딩은 이러한 용어들이 청구항들에서 사용될 때, 압축, 압축해제, 변환 또는 데이터의 임의의 다른 프로세싱 또는 변화를 의미할 수 있다는 것이 이해될 것이다.
[0079] "예"란 단어는, 예, 경우 또는 예시로서 역할을 하는 것을 의미하도록 본원에서 사용된다. "예"로서 본원에서 설명된 임의의 양상 또는 설계는 다른 양상들 또는 설계들에 비해 반드시 바람직하거나 유리한 것으로서 해석될 필요는 없다. 오히려, "예"라는 단어의 사용은 견고한 방식으로 개념들을 제시하도록 의도된다. 본 출원에서 사용되는 바와 같은 "또는"이란 용어는 배타적인 "또는" 보다는 포괄적인 "또는"을 의미하도록 의도된다. 즉, 문맥에 의해 달리 특정되거나 달리 명확히 표시되지 않는 한, "X는 A 또는 B를 포함한다"라는 표현은 그의 자연 포함 순열들 중 임의의 것을 의미하는 것으로 의도된다. 즉, X는 A를 포함하고; X는 B를 포함하고; 또는 X가 A 및 B 둘 모두 포함하는 경우, 상기 경우들 중 임의의 것 하에서 "X는 A 또는 B를 포함한다"가 만족된다. 부가적으로, 본 출원 및 첨부된 청구항들에서 사용된 바와 같은 단수 표현들은 단수 형태로 지시되는 것으로 문맥에 의해 명확히 표시되거나 달리 특정되지 않는 한, "하나 이상"을 의미하도록 일반적으로 해석되어야 한다. 또한, 본 개시내용 전반에 걸쳐 "구현"이라는 용어 또는 "하나의 구현"이라는 용어의 사용은 동일한 실시예 또는 구현으로서 설명되지 않는 한 그러한 것을 의미하는 의도되지 않는다.
[0080] 송신 스테이션(102) 및/또는 수신 스테이션(106)(및 인코더(400) 및 디코더(500)를 포함하여 거기에 저장되고 그리고/또는 그에 의해 실행되는 알고리즘들, 방법들, 명령들 등)의 구현들은 하드웨어, 소프트웨어 또는 이들의 임의의 조합으로 실현될 수 있다. 하드웨어에는 예를 들어, 컴퓨터, IP(intellectual property) 코어들, ASIC(application-specific integrated circuit), 프로그래밍 가능 로직 어레이들, 광학 프로세서들, 프로그래밍 가능 로직 제어기들, 마이크로코드, 마이크로제어기들, 서버들, 마이크로프로세서들, 디지털 신호 프로세서들 또는 임의의 다른 적합한 회로를 포함할 수 있다. 청구항들에서, "프로세서"란 용어는 위의 하드웨어 중 임의의 것을 단독으로 또는 조합하여 포함하는 것으로 이해되어야 한다. "신호" 및 "데이터"라는 용어들은 상호 교환 가능하게 사용된다. 또한, 송신 스테이션(102) 및 수신 스테이션(106)의 부분들은 반드시 동일한 방식으로 구현될 필요는 없다.
[0081] 또한, 일 양상에서, 예를 들어, 송신 스테이션(102) 또는 수신 스테이션(106)은 실행될 때, 본원에서 설명된 각각의 방법들, 알고리즘들 및/또는 명령들 중 임의의 것을 수행하는 컴퓨터 프로그램을 갖는 범용 컴퓨터 또는 범용 프로세서를 사용하여 구현될 수 있다. 부가적으로, 또는 대안적으로, 예를 들어, 본원에서 설명된 방법들, 알고리즘들 또는 명령들 중 임의의 것을 수행하기 위한 다른 하드웨어를 포함할 수 있는 특수 목적 컴퓨터/프로세서가 활용될 수 있다.
[0082] 송신 스테이션(102) 및 수신 스테이션(106)은 예를 들어, 화상 회의 시스템의 컴퓨터들 상에 구현될 수 있다. 대안적으로, 송신 스테이션(102)은 서버 상에서 구현될 수 있고, 수신 스테이션(106)은 핸드헬드 통신 디바이스와 같이 서버와 별개의 디바이스 상에서 구현될 수 있다. 이 경우에, 송신 스테이션(102)은 인코더(400)를 사용하여, 콘텐츠를 인코딩된 비디오 신호로 인코딩하고 인코딩된 비디오 신호를 통신 디바이스에 송신할 수 있다. 차례로, 통신 디바이스는 그 후 디코더(500)를 사용하여 인코딩된 비디오 신호를 디코딩할 수 있다. 대안적으로, 통신 디바이스는 통신 디바이스 상에 국부적으로 저장된 콘텐츠, 예를 들어 송신 스테이션(102)에 의해 송신되지 않은 콘텐츠를 디코딩할 수 있다. 다른 적합한 송신 및 수신 구현 방식들이 이용 가능하다. 예를 들어, 수신 스테이션(106)은 휴대용 통신 디바이스 보다는 일반적으로 고정식 개인용 컴퓨터일 수 있고 그리고/또는 인코더(400)를 포함하는 디바이스는 또한 디코더(500)를 포함할 수 있다.
[0083] 또한, 본 개시내용의 구현들의 전부 또는 일부는 예를 들어, 컴퓨터-사용 가능 또는 컴퓨터-판독 가능 매체로부터 액세스 가능한 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 컴퓨터-사용 가능 또는 컴퓨터-판독 가능 매체는 예를 들어, 임의의 프로세서에 의해 또는 임의의 프로세서와 관련하여 사용하기 위해 프로그램을 형태가 있게 포함, 저장, 통신 또는 전송할 수 있는 임의의 디바이스일 수 있다. 매체는 예를 들어, 전자, 자기, 광학, 전자기 또는 반도체 디바이스일 수 있다. 다른 적합한 매체들이 또한 이용 가능하다.
[0084] 위에서 설명된 실시예들, 구현들 및 양상들은 본 개시내용의 쉬운 이해를 용이하게 하도록 설명되었으며 본 개시내용을 제한하지 않는다. 반대로, 본 개시내용은 첨부된 청구항들의 범위 내에 포함된 다양한 수정들 및 등가의 어레인지먼트들을 커버하도록 의도되며, 이 범위는 모든 그러한 수정들 및 등가의 어레인지먼트들을 포함하도록 법에 의해 허용되는 가장 넓은 해석이 부여될 것이다.

Claims (21)

  1. 비디오 프레임의 현재 블록을 인코딩하기 위한 방법으로서,
    하나 이상의 양자화된 가중 계수들을 사용하여 제1 기준 프레임으로부터 상기 비디오 프레임까지 그리고 제2 기준 프레임으로부터 상기 비디오 프레임까지의 거리들을 가중함으로써 제1 복합 모션 블록을 결정하는 단계;
    상기 제1 기준 프레임의 비디오 블록으로부터의 픽셀 값들 및 상기 제2 기준 프레임의 비디오 블록으로부터의 픽셀 값들의 평균에 기초하여 제2 복합 모션 블록을 결정하는 단계;
    상기 제1 복합 모션 블록 또는 상기 제2 복합 모션 블록 중 하나를 선택하는 단계;
    상기 제1 복합 모션 블록 또는 상기 제2 복합 모션 블록 중 선택된 하나를 사용하여 예측 블록을 생성하는 단계; 및
    상기 예측 블록을 사용하여 상기 현재 블록을 인코딩하는 단계를 포함하는,
    방법.
  2. 제1항에 있어서,
    상기 하나 이상의 양자화된 가중 계수들을 사용하여 상기 제1 기준 프레임으로부터 상기 비디오 프레임까지 그리고 상기 제2 기준 프레임으로부터 상기 비디오 프레임까지의 거리들을 가중함으로써 상기 제1 복합 모션 블록을 결정하는 단계는,
    상기 제1 기준 프레임으로부터 상기 비디오 프레임까지의 제1 거리와 상기 제2 기준 프레임으로부터 상기 비디오 프레임까지의 제2 거리를 비교함으로써 제1 양자화된 가중 계수 및 제2 양자화된 가중 계수를 결정하는 단계를 포함하고,
    상기 제1 양자화된 가중 계수 및 상기 제2 양자화된 가중 계수는 상기 비교에 기초하여 양자화되고, 상기 제1 복합 모션 블록은 상기 제1 양자화된 가중 계수 및 상기 제2 양자화된 가중 계수를 사용하여 결정되는,
    방법.
  3. 제2항에 있어서,
    상기 제1 거리를 상기 제2 거리와 비교함으로써 상기 제1 양자화된 가중 계수 및 상기 제2 양자화된 가중 계수를 결정하는 단계는,
    상기 제1 거리가 상기 제2 거리보다 크다는 결정에 응답하여, 상기 제1 양자화된 가중 계수는 1의 값을 갖고, 상기 제2 양자화된 가중 계수는 적어도 1의 값을 갖는 것으로 결정하는 단계; 또는
    상기 제1 거리가 상기 제2 거리보다 작다는 결정에 응답하여, 상기 제1 양자화된 가중 계수는 적어도 1의 값을 갖고, 상기 제2 양자화된 가중 계수는 1의 값을 갖는 것으로 결정하는 단계 중 하나를 포함하는,
    방법.
  4. 제2항 또는 제3항에 있어서,
    상기 제1 기준 프레임의 비디오 블록으로부터의 픽셀 값들에 대해 상기 제1 양자화된 가중 계수를 적용함으로써 제1 값을 결정하는 단계; 및
    상기 제2 기준 프레임의 비디오 블록으로부터의 픽셀 값들에 대해 상기 제2 양자화된 가중 계수를 적용함으로써 제2 값을 결정하는 단계를 더 포함하고,
    상기 제1 복합 모션 블록은 상기 제1 값과 상기 제2 값의 합을, 상기 제1 양자화된 가중 계수와 상기 제2 양자화된 가중 계수의 합으로 나눔으로써 결정되는,
    방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 제1 복합 모션 블록 또는 상기 제2 복합 모션 블록 중 하나를 선택하는 단계는,
    상기 제1 복합 모션 블록 및 상기 제2 복합 모션 블록 각각과 연관된 모션 벡터들을 사용하여 상기 현재 블록의 모션을 예측하는 것에 기인한 레이트-왜곡 값들을 결정하는 단계; 및
    상기 레이트-왜곡 값들 중 더 낮은 것을 발생시키도록 상기 제1 복합 모션 블록 또는 상기 2 복합 모션 블록 중 하나를 선택하는 단계를 포함하는,
    방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 제1 복합 모션 블록 또는 상기 제2 복합 모션 블록의 선택을 나타내는 하나 이상의 신택스(syntax) 엘리먼트를, 상기 현재 블록이 인코딩되는 비트스트림으로 인코딩하는 단계를 더 포함하는,
    방법.
  7. 인코딩된 비디오 프레임의 인코딩된 블록을 디코딩하기 위한 방법으로서,
    상기 인코딩된 비디오 프레임을 포함하는 비트스트림으로 인코딩된 하나 이상의 신택스 엘리먼트들에 기초하여, 복수의 기준 프레임들 각각으로부터 상기 인코딩된 비디오 프레임까지의 거리들을 가중함으로써 상기 인코딩된 블록이 인코딩되었는지를 결정하는 단계;
    상기 복수의 기준 프레임들 각각으로부터 상기 인코딩된 비디오 프레임까지의 거리들을 가중함으로써 상기 인코딩된 블록이 인코딩되었다는 결정에 응답하여, 하나 이상의 양자화된 가중 계수들을 사용하여, 제1 기준 프레임으로부터 상기 인코딩된 비디오 프레임까지의 제1 거리 및 제2 기준 프레임으로부터 상기 인코딩된 비디오 프레임까지의 제2 거리를 가중함으로써 복합 모션 블록을 결정하는 단계;
    상기 복합 모션 블록을 사용하여 예측 블록을 생성하는 단계; 및
    상기 예측 블록을 사용하여 상기 인코딩된 블록을 디코딩하는 단계를 포함하는,
    방법.
  8. 제7항에 있어서,
    상기 하나 이상의 양자화된 계수들을 사용하여 상기 제1 거리 및 상기 제2 거리를 가중함으로써 상기 복합 모션 블록을 결정하는 단계는,
    상기 제1 거리를 상기 제2 거리와 비교함으로써 상기 제1 양자화된 가중 계수 및 상기 제2 양자화된 가중 계수를 결정하는 단계를 포함하고,
    상기 제1 양자화된 가중 계수 및 상기 제2 양자화된 가중 계수는 상기 비교에 기초하여 양자화되고, 상기 복합 모션 블록은 상기 제1 양자화된 가중 계수 및 상기 제2 양자화된 가중 계수를 사용하여 결정되는,
    방법.
  9. 제8항에 있어서,
    상기 제1 거리를 상기 제2 거리와 비교함으로써 상기 제1 양자화된 가중 계수 및 상기 제2 양자화된 가중 계수를 결정하는 단계는,
    상기 제1 거리가 상기 제2 거리보다 크다는 결정에 응답하여, 상기 제1 양자화된 가중 계수는 1의 값을 갖고, 상기 제2 양자화된 가중 계수는 적어도 1의 값을 갖는 것으로 결정하는 단계; 또는
    상기 제1 거리가 상기 제2 거리보다 작다는 결정에 응답하여, 상기 제1 양자화된 가중 계수는 적어도 1의 값을 갖고, 상기 제2 양자화된 가중 계수는 1의 값을 갖는 것으로 결정하는 단계 중 하나를 포함하는,
    방법.
  10. 제8항 또는 제9항에 있어서,
    상기 제1 기준 프레임의 비디오 블록으로부터의 픽셀 값들에 대해 상기 제1 양자화된 가중 계수를 적용함으로써 제1 값을 결정하는 단계; 및
    상기 제1 기준 프레임의 비디오 블록으로부터의 픽셀 값들에 대해 상기 제2 양자화된 가중 계수를 적용함으로써 제2 값을 결정하는 단계를 더 포함하고,
    상기 복합 모션 블록은 상기 제1 값과 상기 제2 값의 합을, 상기 제1 양자화된 가중 계수와 상기 제2 양자화된 가중 계수의 합으로 나눔으로써 결정되는,
    방법.
  11. 제7항 내지 제10항 중 어느 한 항에 있어서,
    상기 복합 모션 블록은 제1 복합 모션 블록이고 상기 예측 블록은 제1 예측 블록이며, 상기 방법은,
    상기 하나 이상의 양자화된 가중 계수들을 사용하여 상기 거리들을 가중함으로써 상기 인코딩된 블록이 인코딩되지 않았다는 결정에 응답하여, 상기 제1 기준 프레임의 인코딩된 비디오 블록으로부터의 픽셀 값들 및 상기 제2 기준 프레임의 인코딩된 비디오 블록으로부터의 픽셀 값들의 평균에 기초하여 제2 복합 모션 블록을 결정하는 단계;
    상기 제2 복합 모션 블록을 사용하여 제2 예측 블록을 생성하는 단계; 및
    상기 제2 예측 블록을 사용하여 상기 인코딩된 블록을 디코딩하는 단계를 더 포함하는,
    방법.
  12. 제7항 내지 제11항 중 어느 한 항에 있어서,
    상기 복수의 기준 프레임들 각각으로부터 상기 인코딩된 비디오 프레임까지의 거리들을 가중함으로써 상기 인코딩된 블록이 인코딩되었는지를 결정하기 이전에 상기 비트스트림으로부터 상기 하나 이상의 신택스 엘리먼트들을 디코딩하는 단계를 더 포함하는,
    방법.
  13. 제7항 내지 제12항 중 어느 한 항에 있어서,
    상기 인코딩된 비디오 프레임, 상기 제1 기준 프레임 및 상기 제2 기준 프레임을 포함하는 비디오 시퀀스의 인코딩된 비디오 프레임들의 순서는 상기 비트스트림 내에 표시되는,
    방법.
  14. 인코딩된 비디오 프레임의 인코딩된 블록을 디코딩하기 위한 장치로서,
    상기 인코딩된 비디오 프레임을 포함하는 비트스트림으로 인코딩된 하나 이상의 신택스 엘리먼트들에 기초하여, 복수의 기준 프레임들 각각으로부터 상기 인코딩된 비디오 프레임까지의 거리들을 가중함으로써 상기 인코딩된 블록이 인코딩되었는지를 결정하고;
    상기 복수의 기준 프레임들 각각으로부터 상기 인코딩된 비디오 프레임까지의 거리들을 가중함으로써 상기 인코딩된 블록이 인코딩되었다는 결정에 응답하여, 하나 이상의 양자화된 가중 계수들을 사용하여, 제1 기준 프레임으로부터 상기 인코딩된 비디오 프레임까지의 제1 거리 및 제2 기준 프레임으로부터 상기 인코딩된 비디오 프레임까지의 제2 거리를 가중함으로써 복합 모션 블록을 결정하고;
    상기 복합 모션 블록을 사용하여 예측 블록을 생성하고; 그리고
    상기 예측 블록을 사용하여 상기 인코딩된 블록을 디코딩하기 위한, 비-일시적인 메모리에 저장된 명령들을 실행하도록 구성된 프로세서를 포함하는,
    장치.
  15. 제14항에 있어서,
    상기 하나 이상의 양자화된 가중 계수들을 사용하여 상기 제1 거리 및 상기 제2 거리를 가중함으로써 상기 복합 모션 블록을 결정하기 위한 명령들은,
    상기 제1 거리를 상기 제2 거리와 비교함으로써 상기 제1 양자화된 가중 계수 및 상기 제2 양자화된 가중 계수를 결정하기 위한 명령들을 포함하고,
    상기 제1 양자화된 가중 계수 및 상기 제2 양자화된 가중 계수는 상기 비교에 기초하여 양자화되고, 상기 복합 모션 블록은 상기 제1 양자화된 가중 계수 및 상기 제2 양자화된 가중 계수를 사용하여 결정되는,
    장치.
  16. 제15항에 있어서,
    상기 제1 거리를 상기 제2 거리와 비교함으로써 상기 제1 양자화된 가중 계수 및 상기 제2 양자화된 가중 계수를 결정하기 위한 명령들은,
    상기 제1 거리가 상기 제2 거리보다 크다는 결정에 응답하여, 상기 제1 양자화된 가중 계수는 1의 값을 갖고, 상기 제2 양자화된 가중 계수는 적어도 1의 값을 갖는 것으로 결정하거나; 또는
    상기 제1 거리가 상기 제2 거리보다 작다는 결정에 응답하여, 상기 제1 양자화된 가중 계수는 적어도 1의 값을 갖고, 상기 제2 양자화된 가중 계수는 1의 값을 갖는 것으로 결정하기 위한 명령들을 포함하는,
    장치.
  17. 제15항 또는 제16항에 있어서,
    상기 명령들은,
    상기 제1 기준 프레임의 비디오 블록으로부터의 픽셀 값들에 대해 상기 제1 양자화된 가중 계수를 적용함으로써 제1 값을 결정하고; 그리고
    상기 제1 기준 프레임의 비디오 블록으로부터의 픽셀 값들에 대해 상기 제2 양자화된 가중 계수를 적용함으로써 제2 값을 결정하기 위한 명령들을 포함하고,
    상기 복합 모션 블록은 상기 제1 값과 상기 제2 값의 합을, 상기 제1 양자화된 가중 계수와 상기 제2 양자화된 가중 계수의 합으로 나눔으로써 결정되는,
    장치.
  18. 제14항 내지 제17항 중 어느 한 항에 있어서,
    상기 복합 모션 블록은 제1 복합 모션 블록이고 상기 예측 블록은 제1 예측 블록이며, 상기 명령들은,
    상기 하나 이상의 양자화된 가중 계수들을 사용하여 상기 거리들을 가중함으로써 상기 인코딩된 블록이 인코딩되지 않았다는 결정에 응답하여, 상기 제1 기준 프레임의 인코딩된 비디오 블록으로부터의 픽셀 값들 및 상기 제2 기준 프레임의 인코딩된 비디오 블록으로부터의 픽셀 값들의 평균에 기초하여 제2 복합 모션 블록을 결정하고;
    상기 제2 복합 모션 블록을 사용하여 제2 예측 블록을 생성하고; 그리고
    상기 제2 예측 블록을 사용하여 상기 인코딩된 블록을 디코딩하기 위한 명령들을 포함하는,
    장치.
  19. 제14항 내지 제18항 중 어느 한 항에 있어서,
    상기 명령들은,
    상기 복수의 기준 프레임들 각각으로부터 상기 인코딩된 비디오 프레임까지의 거리들을 가중함으로써 상기 인코딩된 블록이 인코딩되었는지에 관한 결정 이전에 상기 비트스트림으로부터 상기 하나 이상의 신택스 엘리먼트들을 디코딩하기 위한 명령들을 포함하는,
    장치.
  20. 제14항 내지 제19항 중 어느 한 항에 있어서,
    상기 인코딩된 비디오 프레임, 상기 제1 기준 프레임 및 상기 제2 기준 프레임을 포함하는 비디오 시퀀스의 인코딩된 비디오 프레임들의 순서는 상기 비트스트림 내에 표시되는,
    장치.
  21. 비디오 프레임의 현재 블록을 인코딩하기 위한 장치로서,
    하나 이상의 양자화된 가중 계수들을 사용하여 제1 기준 프레임으로부터 상기 비디오 프레임까지 그리고 제2 기준 프레임으로부터 상기 비디오 프레임까지의 거리들을 가중함으로써 제1 복합 모션 블록을 결정하고;
    상기 제1 기준 프레임의 비디오 블록으로부터의 픽셀 값들 및 상기 제2 기준 프레임의 비디오 블록으로부터의 픽셀 값들의 평균에 기초하여 제2 복합 모션 블록을 결정하고;
    상기 제1 복합 모션 블록 또는 상기 제2 복합 모션 블록 중 하나를 선택하고;
    상기 제1 복합 모션 블록 또는 상기 제2 복합 모션 블록 중 선택된 하나를 사용하여 예측 블록을 생성하고; 그리고
    상기 예측 블록을 사용하여 상기 현재 블록을 인코딩하기 위한, 비-일시적인 메모리에 저장된 명령들을 실행하도록 구성된 프로세서를 포함하는,
    장치.
KR1020197036882A 2017-08-14 2018-05-01 복합 모션-보상 예측 KR102335184B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/675,979 US10412410B2 (en) 2017-08-14 2017-08-14 Compound motion-compensated prediction
US15/675,979 2017-08-14
PCT/US2018/030347 WO2019036075A1 (en) 2017-08-14 2018-05-01 COMPENSATED PREDICTION BY COMPOUND MOVEMENT

Publications (2)

Publication Number Publication Date
KR20200005748A true KR20200005748A (ko) 2020-01-16
KR102335184B1 KR102335184B1 (ko) 2021-12-03

Family

ID=62165739

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197036882A KR102335184B1 (ko) 2017-08-14 2018-05-01 복합 모션-보상 예측

Country Status (6)

Country Link
US (2) US10412410B2 (ko)
EP (1) EP3669543A1 (ko)
JP (2) JP2020522185A (ko)
KR (1) KR102335184B1 (ko)
CN (1) CN110692247B (ko)
WO (1) WO2019036075A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110572675B (zh) * 2019-09-27 2023-11-14 腾讯科技(深圳)有限公司 视频解码、编码方法和装置、存储介质与解码器、编码器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060085259A (ko) * 2002-11-22 2006-07-26 가부시끼가이샤 도시바 동화상 복호화 방법 및 장치
US20170111652A1 (en) * 2015-10-15 2017-04-20 Cisco Technology, Inc. Low-complexity method for generating synthetic reference frames in video coding

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6404813B1 (en) 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
US7266150B2 (en) 2001-07-11 2007-09-04 Dolby Laboratories, Inc. Interpolation of video compression frames
JP2004007379A (ja) * 2002-04-10 2004-01-08 Toshiba Corp 動画像符号化方法及び動画像復号化方法
CN1917641A (zh) * 2002-01-18 2007-02-21 株式会社东芝 视频编码方法和装置以及视频解码方法和装置
KR100506864B1 (ko) 2002-10-04 2005-08-05 엘지전자 주식회사 모션벡터 결정방법
KR100714696B1 (ko) * 2005-06-24 2007-05-04 삼성전자주식회사 다계층 기반의 가중 예측을 이용한 비디오 코딩 방법 및장치
EP2234403A4 (en) * 2007-12-28 2011-12-21 Sharp Kk MOBILE IMAGE ENCODER AND DECODER
EP2302933A1 (en) 2009-09-17 2011-03-30 Mitsubishi Electric R&D Centre Europe B.V. Weighted motion compensation of video
JP5784596B2 (ja) * 2010-05-13 2015-09-24 シャープ株式会社 予測画像生成装置、動画像復号装置、及び、動画像符号化装置
US8786625B2 (en) * 2010-09-30 2014-07-22 Apple Inc. System and method for processing image data using an image signal processor having back-end processing logic
US8736700B2 (en) * 2010-09-30 2014-05-27 Apple Inc. Techniques for synchronizing audio and video data in an image signal processing system
US8629913B2 (en) * 2010-09-30 2014-01-14 Apple Inc. Overflow control techniques for image signal processing
US8508621B2 (en) * 2010-09-30 2013-08-13 Apple Inc. Image sensor data formats and memory addressing techniques for image signal processing
US8508612B2 (en) * 2010-09-30 2013-08-13 Apple Inc. Image signal processor line buffer configuration for processing ram image data
US9288501B2 (en) * 2011-03-08 2016-03-15 Qualcomm Incorporated Motion vector predictors (MVPs) for bi-predictive inter mode in video coding
US9531990B1 (en) * 2012-01-21 2016-12-27 Google Inc. Compound prediction using multiple sources or prediction modes
JP6012014B2 (ja) * 2012-03-30 2016-10-25 サン パテント トラスト 画像符号化方法および画像復号方法
JP2013251759A (ja) * 2012-05-31 2013-12-12 Toshiba Corp 電子機器及び復号方法
US9948950B2 (en) * 2014-01-03 2018-04-17 Qualcomm Incorporated Disparity vector and/or advanced residual prediction for video coding
US10356406B2 (en) * 2016-01-19 2019-07-16 Google Llc Real-time video encoder rate control using dynamic resolution switching
EP3413563A4 (en) * 2016-02-03 2019-10-23 Sharp Kabushiki Kaisha DEVICE FOR DECODING MOVEMENT PICTURES, APPARATUS FOR CODING MOVEMENT IMAGES AND DEVICE FOR GENERATING FORECAST PICTURES

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060085259A (ko) * 2002-11-22 2006-07-26 가부시끼가이샤 도시바 동화상 복호화 방법 및 장치
US20170111652A1 (en) * 2015-10-15 2017-04-20 Cisco Technology, Inc. Low-complexity method for generating synthetic reference frames in video coding

Also Published As

Publication number Publication date
US20190052897A1 (en) 2019-02-14
US10820014B2 (en) 2020-10-27
CN110692247A (zh) 2020-01-14
US10412410B2 (en) 2019-09-10
CN110692247B (zh) 2023-08-08
EP3669543A1 (en) 2020-06-24
JP2022069546A (ja) 2022-05-11
JP2020522185A (ja) 2020-07-27
US20200007890A1 (en) 2020-01-02
KR102335184B1 (ko) 2021-12-03
WO2019036075A1 (en) 2019-02-21

Similar Documents

Publication Publication Date Title
US20220353534A1 (en) Transform Kernel Selection and Entropy Coding
US10362332B2 (en) Multi-level compound prediction
US20190020888A1 (en) Compound intra prediction for video coding
US10880573B2 (en) Dynamic motion vector referencing for video coding
GB2548449A (en) Motion vector reference selection through reference frame buffer tracking
EP3571841A1 (en) Dc coefficient sign coding scheme
US11343528B2 (en) Compound prediction for video coding
WO2019083577A1 (en) ESTIMATION AND MOTION COMPENSATION OF THE SAME FRAME
GB2548450A (en) Motion vector prediction through scaling
US10419777B2 (en) Non-causal overlapped block prediction in variable block size video coding
US9210424B1 (en) Adaptive prediction block size in video coding
US10448013B2 (en) Multi-layer-multi-reference prediction using adaptive temporal filtering
US11870993B2 (en) Transforms for large video and image blocks
US10820014B2 (en) Compound motion-compensated prediction

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant