KR102335184B1 - 복합 모션-보상 예측 - Google Patents
복합 모션-보상 예측 Download PDFInfo
- Publication number
- KR102335184B1 KR102335184B1 KR1020197036882A KR20197036882A KR102335184B1 KR 102335184 B1 KR102335184 B1 KR 102335184B1 KR 1020197036882 A KR1020197036882 A KR 1020197036882A KR 20197036882 A KR20197036882 A KR 20197036882A KR 102335184 B1 KR102335184 B1 KR 102335184B1
- Authority
- KR
- South Korea
- Prior art keywords
- distance
- weight
- block
- encoded
- ratio
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/567—Motion estimation based on rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras 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는 양자화된 가중 계수들을 결정하기 위한 트리의 예의 도면이다.
[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 복합 모션 블록은 예를 들어, 로 결정될 수 있고, 여기서 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개의 기준 프레임들을 사용하여 현재 비디오 블록에서 모션을 예측하기 위해 사용할 복합 모션 블록은 예를 들어, 로서 결정될 수 있으며, 여기서 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)
- 인코딩된 비디오 프레임의 인코딩된 블록을 디코딩하기 위한 장치로서,
상기 인코딩된 비디오 프레임을 포함하는 인코딩된 비트스트림으로부터, 상기 인코딩된 블록에 대한 예측을 수행하는 방법을 표시하는 하나 이상의 신택스(syntax) 엘리먼트들을 디코딩하고; 그리고
상기 하나 이상의 신택스 엘리먼트들이 가중된 거리 접근법을 사용하여 상기 인코딩된 블록에 대한 예측을 수행하도록 표시하는지 여부를 결정하고;
상기 하나 이상의 신택스 엘리먼트들이 상기 가중된 거리 접근법을 사용하여 상기 인코딩된 블록에 대한 예측을 수행하도록 표시한다는 결정에 응답하여:
제1 값을 결정하기 위해 상기 인코딩된 비디오 프레임으로부터 제1 거리에 있는 제1 기준 프레임의 비디오 데이터에 제1 가중치를 적용하고;
제2 값을 결정하기 위해 상기 인코딩된 비디오 프레임으로부터 제2 거리에 있는 제2 기준 프레임의 비디오 데이터에 제2 가중치를 적용하고 ― 상기 제1 가중치 및 상기 제2 가중치의 값들은 상기 제1 거리와 상기 제2 거리의 비에 기초하여 식별된 가중치들의 쌍에 기초하여 결정됨 ―;
상기 제1 가중치 및 상기 제2 가중치에 기초하여 제1 복합 모션 블록을 형성하고; 그리고
상기 제1 복합 모션 블록을 사용하여 상기 인코딩된 블록을 디코딩하고; 그리고
상기 하나 이상의 신택스 엘리먼트들이 상기 가중된 거리 접근법을 사용하여 상기 인코딩된 블록에 대한 예측을 수행하도록 표시하지 않는다는 결정에 응답하여:
상기 제1 기준 프레임의 상기 비디오 데이터 및 상기 제2 기준 프레임의 상기 비디오 데이터의 평균에 기초하여 제2 복합 모션 블록을 형성하고; 그리고
상기 제2 복합 모션 블록을 사용하여 상기 인코딩된 블록을 디코딩하도록
구성된 디코더를 포함하는,
장치. - 제1항에 있어서,
상기 인코딩된 비트스트림에 포함된 인코딩된 비디오 프레임들의 순서는 상기 인코딩된 비트스트림에 포함된 패킷 스탬프들을 사용하여 표시되고, 상기 인코딩된 비디오 프레임들은 상기 인코딩된 비디오 프레임, 상기 제1 기준 프레임 및 상기 제2 기준 프레임을 포함하는,
장치. - 제1항에 있어서,
상기 제1 거리가 상기 제2 거리보다 큰 경우, 상기 제1 가중치는 1의 값을 갖고 상기 제2 가중치는 적어도 1의 값을 갖고,
상기 제1 거리가 상기 제2 거리보다 작은 경우, 상기 제1 가중치는 적어도 1의 값을 갖고 상기 제2 가중치는 1의 값을 갖는,
장치. - 제1항에 있어서,
상기 제1 거리가 상기 제2 거리보다 큰 경우, 상기 제1 거리와 상기 제2 거리의 비(ratio)는 상기 제2 거리에 대한 상기 제1 거리의 제1 비이고,
상기 제1 거리가 상기 제2 거리보다 크지 않은 경우, 상기 제1 거리와 상기 제2 거리의 비는 상기 제1 거리에 대한 상기 제2 거리의 제2 비이고,
상기 제1 비 또는 상기 제2 비가 1.5 미만인 경우, 상기 제1 가중치 및 상기 제2 가중치 둘 모두는 1과 동일하고,
상기 제1 비가 1.5보다 크고 2.5 미만인 경우, 상기 제1 가중치는 1이고 상기 제2 가중치는 2이고,
상기 제1 비가 2.5보다 크고 3.5 미만인 경우, 상기 제1 가중치는 1이고 상기 제2 가중치는 3이고,
상기 제1 비가 3.5보다 큰 경우, 상기 제1 가중치는 1이고 상기 제2 가중치는 4이고,
상기 제2 비가 1.5보다 크고 2.5 미만인 경우, 상기 제1 가중치는 2이고 상기 제2 가중치는 1이고,
상기 제2 비가 2.5보다 크고 3.5 미만인 경우, 상기 제1 가중치는 3이고 상기 제2 가중치는 1이고,
상기 제2 비가 3.5보다 큰 경우, 상기 제1 가중치는 4이고 상기 제2 가중치는 1인,
장치. - 제1항 내지 제4항 중 어느 한 항에 있어서,
상기 디코더는 상기 인코딩된 블록에 대한 예측을 수행하기 위해 상기 가중된 거리 접근법이 사용되는지 여부를 표시하기 위해 확률 모델을 업데이트하도록 구성되는,
장치. - 제1항 내지 제4항 중 어느 한 항에 있어서,
상기 디코더는 프로세서 및 메모리를 포함하고,
상기 메모리는 상기 메모리에 저장된 명령들을 실행하도록 구성되는,
장치. - 인코딩된 비디오 프레임의 인코딩된 블록을 디코딩하기 위한 방법으로서,
제1 거리와 제2 거리의 비를 결정하기 위해 제1 기준 프레임으로부터 상기 인코딩된 비디오 프레임까지의 제1 거리를 제2 기준 프레임으로부터 상기 인코딩된 비디오 프레임까지의 제2 거리와 비교하는 단계;
상기 제1 거리와 상기 제2 거리의 비에 기초하여 양자화된 가중치 계수들의 쌍을 식별하는 단계;
상기 양자화된 가중치 계수들의 쌍을 사용하여 복합 모션 블록을 형성하는 단계; 및
상기 복합 모션 블록을 사용하여 상기 인코딩된 블록을 디코딩하는 단계
를 포함하는,
방법. - 제7항에 있어서,
상기 양자화된 가중치 계수들의 쌍을 사용하여 상기 복합 모션 블록을 형성하는 단계는,
상기 양자화된 가중치 계수들의 쌍의 제1 양자화된 가중치 계수를 상기 제1 기준 프레임의 비디오 데이터에 적용함으로써 제1 값을 결정하는 단계;
상기 양자화된 가중치 계수들의 쌍의 제2 양자화된 가중치 계수를 상기 제2 기준 프레임의 비디오 데이터에 적용함으로써 제2 값을 결정하는 단계; 및
상기 제1 값과 상기 제2 값의 합을, 상기 제1 양자화된 가중치 계수와 상기 제2 양자화된 가중치 계수의 합으로 나누는 단계
를 포함하는,
방법. - 제7항에 있어서,
상기 복합 모션 블록은 제1 복합 모션 블록이고, 상기 방법은,
상기 인코딩된 비디오 프레임을 포함하는 인코딩된 비트스트림으로부터, 상기 인코딩된 블록에 대한 예측을 수행하는 방법을 표시하는 하나 이상의 신택스 엘리먼트들을 디코딩하는 단계; 및
상기 하나 이상의 신택스 엘리먼트들이 가중된 거리 접근법을 사용하여 상기 인코딩된 블록에 대한 예측을 수행하도록 표시하는지 여부를 결정하는 단계 ― 상기 제1 복합 모션 블록은, 상기 하나 이상의 신택스 엘리먼트들이 상기 가중된 거리 접근법을 사용하여 상기 인코딩된 블록에 대한 예측을 수행하도록 표시한다고 결정하는 것에 응답하여 상기 인코딩된 블록을 디코딩하기 위해 형성 및 사용됨 ―; 및
상기 하나 이상의 신택스 엘리먼트들이 상기 가중된 거리 접근법을 사용하여 상기 인코딩된 블록에 대한 예측을 수행하도록 표시하지 않는다고 결정하는 것에 응답하여:
상기 제1 기준 프레임의 비디오 데이터 및 상기 제2 기준 프레임의 비디오 데이터의 평균에 기초하여 제2 복합 모션 블록을 형성하는 단계; 및
상기 제2 복합 모션 블록을 사용하여 상기 인코딩된 블록을 디코딩하는 단계
를 더 포함하는,
방법. - 제7항에 있어서,
상기 양자화된 가중치 계수들의 쌍은 제1 양자화된 가중치 계수 및 제2 양자화된 가중치 계수를 포함하고,
상기 비(ratio)가 상기 제1 거리가 상기 제2 거리보다 크다고 표시하는 경우, 상기 제1 거리와 상기 제2 거리의 비에 기초하여 상기 양자화된 가중치 계수들의 쌍을 식별하는 것은, 상기 제1 양자화된 가중치 계수를 1의 값을 갖는 것으로 그리고 상기 제2 양자화된 가중치 계수를 적어도 1의 값을 갖는 것으로 식별하는 것을 포함하고,
상기 비가 상기 제1 거리가 상기 제2 거리보다 작다고 표시하는 경우, 상기 제1 거리와 상기 제2 거리의 비에 기초하여 상기 양자화된 가중치 계수들의 쌍을 식별하는 것은, 상기 제1 양자화된 가중치 계수를 적어도 1의 값을 갖는 것으로 그리고 상기 제2 양자화된 가중치 계수를 1의 값을 갖는 것으로 식별하는 것을 포함하는,
방법. - 제7항에 있어서,
상기 양자화된 가중치 계수들의 쌍은 제1 양자화된 가중치 계수 및 제2 양자화된 가중치 계수를 포함하고,
상기 제1 거리가 상기 제2 거리보다 큰 경우, 상기 비는 상기 제2 거리에 대한 상기 제1 거리의 제1 비이고,
상기 제1 거리가 상기 제2 거리보다 크지 않은 경우, 상기 비는 상기 제1 거리에 대한 상기 제2 거리의 제2 비이고,
상기 제1 비 또는 상기 제2 비가 1.5 미만인 경우, 상기 제1 양자화된 가중치 계수 및 상기 제2 양자화된 가중치 계수 둘 모두는 1과 동일하고,
상기 제1 비가 1.5보다 크고 2.5 미만인 경우, 상기 제1 양자화된 가중치 계수는 1이고 상기 제2 양자화된 가중치 계수는 2이고,
상기 제1 비가 2.5보다 크고 3.5 미만인 경우, 상기 제1 양자화된 가중치 계수는 1이고 상기 제2 양자화된 가중치 계수는 3이고,
상기 제1 비가 3.5보다 큰 경우, 상기 제1 양자화된 가중치 계수는 1이고 상기 제2 양자화된 가중치 계수는 4이고,
상기 제2 비가 1.5보다 크고 2.5 미만인 경우, 상기 제1 양자화된 가중치 계수는 2이고 상기 제2 양자화된 가중치 계수는 1이고,
상기 제2 비가 2.5보다 크고 3.5 미만인 경우, 상기 제1 양자화된 가중치 계수는 3이고 상기 제2 양자화된 가중치 계수는 1이고,
상기 제2 비가 3.5보다 큰 경우, 상기 제1 양자화된 가중치 계수는 4이고 상기 제2 양자화된 가중치 계수는 1인,
방법. - 제7항 내지 제11항 중 어느 한 항에 있어서,
상기 제1 거리 및 상기 제2 거리는 인코딩된 비트스트림 내의 인코딩된 비디오 프레임들의 순서에 기초하여 결정되고, 상기 인코딩된 비디오 프레임들은 상기 인코딩된 비디오 프레임, 상기 제1 기준 프레임 및 상기 제2 기준 프레임을 포함하는,
방법. - 인코딩된 비디오 프레임의 인코딩된 블록을 디코딩하기 위한 방법으로서,
상기 인코딩된 비디오 프레임을 포함하는 인코딩된 비트스트림으로부터, 상기 인코딩된 블록에 대한 예측을 수행하는 방법을 표시하는 하나 이상의 신택스 엘리먼트들을 디코딩하는 단계;
상기 하나 이상의 신택스 엘리먼트들이 가중된 거리 접근법을 사용하여 상기 인코딩된 블록에 대한 예측을 수행하도록 표시하는지 여부를 결정하는 단계;
제1 값 및 제2 값에 기초하여 복합 모션 블록을 형성하는 단계 ― 상기 제1 값은 제1 기준 프레임의 비디오 데이터에 제1 가중치를 적용함으로써 결정되고, 상기 제2 값은 제2 기준 프레임의 비디오 데이터에 제2 가중치를 적용함으로써 결정되고, 상기 제1 가중치는 상기 제1 기준 프레임으로부터 상기 인코딩된 비디오 프레임까지의 제1 거리에 기초하여 결정되고, 상기 제2 가중치는 상기 제2 기준 프레임으로부터 상기 인코딩된 비디오 프레임까지의 제2 거리에 기초하여 결정됨 ―; 및
상기 복합 모션 블록을 사용하여 상기 인코딩된 블록을 디코딩하는 단계
를 포함하고,
상기 복합 모션 블록은, 상기 하나 이상의 신택스 엘리먼트들이 상기 가중된 거리 접근법을 사용하여 상기 인코딩된 블록에 대한 예측을 수행하도록 표시한다고 결정하는 것에 응답하여 형성되고,
상기 제1 가중치 및 상기 제2 가중치의 값들은 상기 제1 거리와 상기 제2 거리의 비에 기초하여 식별된 가중치들의 쌍에 기초하여 결정되는,
방법. - 삭제
- 제13항에 있어서,
상기 복합 모션 블록은 제1 복합 모션 블록이고, 상기 방법은,
상기 하나 이상의 신택스 엘리먼트들이 상기 가중된 거리 접근법을 사용하여 상기 인코딩된 블록에 대한 예측을 수행하도록 표시하지 않는다고 결정하는 것에 응답하여, 상기 제1 기준 프레임의 상기 비디오 데이터 및 상기 제2 기준 프레임의 상기 비디오 데이터의 평균에 기초하여 제2 복합 모션 블록을 형성하는 단계; 및
상기 제2 복합 모션 블록을 사용하여 상기 인코딩된 블록을 디코딩하는 단계
를 더 포함하는,
방법. - 제13항 또는 제15항에 있어서,
상기 복합 모션 블록은 상기 제1 값과 상기 제2 값의 합을, 상기 제1 가중치와 상기 제2 가중치의 합으로 나눔으로써 형성되는,
방법. - 제13항 또는 제15항에 있어서,
상기 제1 거리 및 상기 제2 거리는 인코딩된 비트스트림 내의 인코딩된 비디오 프레임들의 순서에 기초하여 결정되고, 상기 인코딩된 비디오 프레임들은 상기 인코딩된 비디오 프레임, 상기 제1 기준 프레임 및 상기 제2 기준 프레임을 포함하는,
방법. - 삭제
- 제13항에 있어서,
상기 제1 거리가 상기 제2 거리보다 큰 경우, 상기 제1 가중치는 1의 값을 갖고 상기 제2 가중치는 적어도 1의 값을 갖고,
상기 제1 거리가 상기 제2 거리보다 작은 경우, 상기 제1 가중치는 적어도 1의 값을 갖고 상기 제2 가중치는 1의 값을 갖는,
방법. - 제13항에 있어서,
상기 제1 거리가 상기 제2 거리보다 큰 경우, 상기 비는 상기 제2 거리에 대한 상기 제1 거리의 제1 비이고,
상기 제1 거리가 상기 제2 거리보다 크지 않은 경우, 상기 비는 상기 제1 거리에 대한 상기 제2 거리의 제2 비인,
방법. - 제20항에 있어서,
상기 제1 비 또는 상기 제2 비가 1.5보다 작은 경우, 상기 제1 가중치 및 상기 제2 가중치 둘 모두는 1과 동일하고,
상기 제1 비가 1.5보다 크고 2.5보다 작은 경우, 상기 제1 가중치는 1이고 상기 제2 가중치는 2이고,
상기 제1 비가 2.5보다 크고 3.5보다 작은 경우, 상기 제1 가중치는 1이고 상기 제2 가중치는 3이고,
상기 제1 비가 3.5보다 큰 경우, 상기 제1 가중치는 1이고 상기 제2 가중치는 4이고,
상기 제2 비가 1.5보다 크고 2.5보다 작은 경우, 상기 제1 가중치는 2이고 상기 제2 가중치는 1이고,
상기 제2 비가 2.5보다 크고 3.5보다 작은 경우, 상기 제1 가중치는 3이고 상기 제2 가중치는 1이고,
상기 제2 비가 3.5보다 큰 경우, 상기 제1 가중치는 4이고 상기 제2 가중치는 1인,
방법.
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 KR20200005748A (ko) | 2020-01-16 |
KR102335184B1 true 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 (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110572675B (zh) * | 2019-09-27 | 2023-11-14 | 腾讯科技(深圳)有限公司 | 视频解码、编码方法和装置、存储介质与解码器、编码器 |
US12113962B1 (en) * | 2022-08-11 | 2024-10-08 | Amazon Technologies, Inc. | Methods and systems for an efficient inter-prediction structure and signaling for low-delay video streaming |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 (22)
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 |
EP1827026A1 (en) * | 2002-01-18 | 2007-08-29 | Kabushiki Kaisha Toshiba | Video decoding method and apparatus |
JP2004007379A (ja) * | 2002-04-10 | 2004-01-08 | Toshiba Corp | 動画像符号化方法及び動画像復号化方法 |
KR100506864B1 (ko) | 2002-10-04 | 2005-08-05 | 엘지전자 주식회사 | 모션벡터 결정방법 |
JP2004179687A (ja) * | 2002-11-22 | 2004-06-24 | Toshiba Corp | 動画像符号化/復号化方法及び装置 |
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 | シャープ株式会社 | 予測画像生成装置、動画像復号装置、及び、動画像符号化装置 |
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 |
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 |
US8629913B2 (en) * | 2010-09-30 | 2014-01-14 | Apple Inc. | Overflow control techniques for image signal processing |
US8736700B2 (en) * | 2010-09-30 | 2014-05-27 | Apple Inc. | Techniques for synchronizing audio and video data in an image signal processing system |
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 |
US10390041B2 (en) * | 2012-03-30 | 2019-08-20 | Sun Patent Trust | Predictive image coding and decoding using two reference pictures |
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 |
CN108541375B (zh) * | 2016-02-03 | 2022-04-12 | 夏普株式会社 | 运动图像解码装置、运动图像编码装置、以及预测图像生成装置 |
-
2017
- 2017-08-14 US US15/675,979 patent/US10412410B2/en active Active
-
2018
- 2018-05-01 EP EP18724763.0A patent/EP3669543A1/en active Pending
- 2018-05-01 CN CN201880035794.1A patent/CN110692247B/zh active Active
- 2018-05-01 JP JP2019565860A patent/JP2020522185A/ja active Pending
- 2018-05-01 WO PCT/US2018/030347 patent/WO2019036075A1/en unknown
- 2018-05-01 KR KR1020197036882A patent/KR102335184B1/ko active IP Right Grant
-
2019
- 2019-09-05 US US16/561,165 patent/US10820014B2/en active Active
-
2022
- 2022-03-11 JP JP2022037985A patent/JP2022069546A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
---|---|
US10412410B2 (en) | 2019-09-10 |
CN110692247B (zh) | 2023-08-08 |
US10820014B2 (en) | 2020-10-27 |
JP2020522185A (ja) | 2020-07-27 |
US20200007890A1 (en) | 2020-01-02 |
CN110692247A (zh) | 2020-01-14 |
WO2019036075A1 (en) | 2019-02-21 |
EP3669543A1 (en) | 2020-06-24 |
JP2022069546A (ja) | 2022-05-11 |
KR20200005748A (ko) | 2020-01-16 |
US20190052897A1 (en) | 2019-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12047606B2 (en) | Transform kernel selection and entropy coding | |
US10555000B2 (en) | Multi-level compound prediction | |
US20210112270A1 (en) | Dynamic motion vector referencing for video coding | |
EP3571841A1 (en) | Dc coefficient sign coding scheme | |
US10271062B2 (en) | Motion vector prediction through scaling | |
WO2019070322A1 (en) | DEFORMED REFERENCE MOTION VECTORS FOR VIDEO COMPRESSION | |
WO2019083577A1 (en) | ESTIMATION AND MOTION COMPENSATION OF THE SAME FRAME | |
JP2022069546A (ja) | 複合動き補償予測 | |
WO2018118153A1 (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 | |
US10412383B2 (en) | Compressing groups of video frames using reversed ordering |
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 |