KR20130098423A - 암시 레퍼런스 프레임을 이용하는 비디오 코딩 시스템 - Google Patents
암시 레퍼런스 프레임을 이용하는 비디오 코딩 시스템 Download PDFInfo
- Publication number
- KR20130098423A KR20130098423A KR1020137017336A KR20137017336A KR20130098423A KR 20130098423 A KR20130098423 A KR 20130098423A KR 1020137017336 A KR1020137017336 A KR 1020137017336A KR 20137017336 A KR20137017336 A KR 20137017336A KR 20130098423 A KR20130098423 A KR 20130098423A
- Authority
- KR
- South Korea
- Prior art keywords
- implicit
- frame
- pixel blocks
- frames
- decoder
- 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
-
- 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/58—Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N11/00—Colour television systems
- H04N11/02—Colour television systems with bandwidth reduction
-
- 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/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
- H04N19/23—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with coding of regions that are present throughout a whole video segment, e.g. sprites, background or mosaic
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
비디오 코딩/디코딩 시스템은 코딩 동안에 전개된(developed) 복수의 레퍼런스 프레임들로부터 암시 레퍼런스 프레임들을 구축한다. 레퍼런스 픽처들의 코딩된 데이터는 디코딩되어 레퍼런스 픽처 캐시에 저장된다. 암시 레퍼런스 프레임은 복수의 레퍼런스 프레임들로부터 도출될 수 있고 레퍼런스 픽처 캐시에 저장될 수 있다. 이후, 새로운 입력 데이터의 코딩은 예측의 소스로서 암시 레퍼런스 프레임을 이용하여 진행될 수 있다. 본 방법은 종래의 레퍼런스 프레임 어셈블리 및 축출(eviction) 환경의 시스템에 의해서 캡처될 수 있는 장기간 동안의 비디오에 지속될 수 있는 배경 요소와 같은 비주얼 요소들을 식별하는데 이용될 수 있다. 예측 소스로서 작용하는 암시 레퍼런스 프레임들은 인코더와 디코더에서 구축될 수 있다.
Description
비디오 코딩/디코딩 시스템의 광범위한 응용은 많은 통신 환경에서 보게 된다. 이들 시스템은 통상 제1 로케이션에서 오디오-비주얼 콘텐츠를 캡처하고, 다양한 대역폭 압축 작업에 따라서 이 콘텐츠를 코딩하고, 코딩된 콘텐츠를 제2 로케이션에 전송하고 제2 로케이션에서 렌더링하기 위해 이 콘텐츠를 디코딩한다. 비디오 콘텐츠의 경우에, 코딩 및 디코딩은 통상적으로 코딩된 신호의 대역폭을 줄이기 위해서 모션 보상 예측 기술(motion compensated prediction technique)을 이용하여 콘텐츠 내의 시공간 리던던시(temporal and spatial redundancies)를 활용한다.
모션 보상 기술은 예측을 위한 기반으로서 하나 이상의 이전에-코딩된 프레임을 이용하는 새로운 입력 프레임의 예측을 포함한다. 비디오 코더와 디코더는 둘 다 "레퍼런스 프레임(reference frame)"으로 지정된 선택 프레임들의 디코딩된 버전을 저장한다. 새로운 입력 프레임이 모션 보상 기술에 따라서 코딩되어야 할 때, 인코더는 입력 프레임의 콘텐츠에 밀접하게 매치(match)하는 콘텐츠에 대한 레퍼런스 프레임을 조사한다. 매치가 발견될 때, 인코더는 통상 디코더에 매칭 레퍼런스 프레임을 식별해주고, 입력 콘텐츠에 관해서 매칭 콘텐츠의 공간 변위를 식별하는 모션 벡터를 제공하고 입력 데이터와 레퍼런스 프레임의 매칭 콘텐츠 간의 차이를 나타내는 잔차 데이터(residual data)를 코딩한다. 디코더는 인코더가 저장한 것과 동일한 레퍼런스 프레임 세트를 저장한다. 디코더에 레퍼런스 프레임들의 식별자, 모션 벡터 및 코딩된 잔차 데이터가 제공되면, 디코더는 표시를 위해 각 입력 프레임의 복제를 복원(recover)할 수 있다. 프레임들은 통상 데이터의 공간 어레이(여기서 "픽셀 블록"이라 칭함)로 파스(parse)되고, 모션 벡터와 코딩된 잔차 데이터는 입력 프레임의 각 픽셀 블록에 제공될 수 있다.
그러므로, 모션 보상 예측은, 비디오 코더와 디코더 양자가 코딩 및 디코딩에 이용되는 미리 정해진 수의 레퍼런스 프레임을 저장하는 것을 필요로 한다. H.263 및 H.264와 같은 최신의 코딩 프로토콜은 인코더와 디코더에 저장되어야 하는 레퍼런스 프레임의 수에 미리 정해진 한도를 정의하고 있다. 그러므로, 인코더와 디코더들에는 통상 미리 정해진 수의 레퍼런스 픽처(reference picture)만을 저장하는 캐시(cache)가 제공된다. 작업 동안에, 레퍼런스 픽처 캐시가 최대 수의 레퍼런스 픽처를 저장하고 있고 새로운 레퍼런스 픽처가 부가되어야 한다면, 이전에-저장된 레퍼런스 픽처는 새로운 레퍼런스 픽처를 수용할 수 있게 캐시로부터 축출된다(evicted). 축출된 레퍼런스는 이후 새로운 입력 프레임들을 예측하기 위한 기반으로서 이용될 수 없다.
레퍼런스 픽처 캐시의 한정된 깊이(depth)는 많은 코딩 응용에 만족스럽지 못하다. 이미지 콘텐츠가 비교적 정적인 배경을 두고 움직이는 전경(foreground) 콘텐츠를 포함하는 경우에, 배경 요소들은 매우 높은 시간적 리던던시를 가질 수 있고 효율적으로 코딩될 수 있다. 그러나, 레퍼런스 픽처 캐시가 배경 요소를 포함하는 임의 레퍼런스 프레임들을 축출하는 긴 지속기간 동안 전경 요소가 배경 요소를 불명료하게 한다면, 비디오 코더는 전경 요소가 다시 이동하고 이전에-불명료해진(formerly-obscured) 배경 요소가 드러나면 예측적으로 그것을 코딩할 수 없을 것이다.
따라서, 인코더 및 디코더 캐시로부터 축출된 레퍼런스 픽처들의 콘텐츠를 포함할 수 있게 모션 보상 예측 기술의 범위를 효율적으로 확장하는 예측 코딩 시스템이 당해 기술에 필요하다.
도 1은 본 발명의 실시 예에 따른 비디오 코딩 시스템을 도시하는 도면.
도 2는 본 발명의 실시 예에 따른 비디오 인코더 및 비디오 디코더의 간략한 기능 블록 도.
도 3은 본 발명의 실시 예에 따른 방법을 도시하는 도면.
도 4는 예시적인 레퍼런스 프레임 세트의 맥락에서 도 3의 실시 예의 동작을 도시하는 도면.
도 5는 본 발명의 실시 예의 동작을 보여주는 다른 예시적인 입력 데이터 세트를 도시하는 도면.
도 6은 본 발명의 실시 예에 따른 동작 동안 얻어질 수 있는 예시적인 이미지 모델을 도시하는 도면.
도 7은 본 발명의 실시 예에 따른 동작 동안 얻어질 수 있는 다른 예시적인 이미지 모델을 도시하는 도면.
도 8은 본 발명의 실시 예에 따른 통신 프로토콜을 도시하는 도면.
도 9는 본 발명의 다른 실시 예에 따른 다른 통신 프로토콜을 도시하는 도면.
도 10은 다른 실시 예에 따른 비디오 코딩 시스템의 간략한 블록 도.
도 2는 본 발명의 실시 예에 따른 비디오 인코더 및 비디오 디코더의 간략한 기능 블록 도.
도 3은 본 발명의 실시 예에 따른 방법을 도시하는 도면.
도 4는 예시적인 레퍼런스 프레임 세트의 맥락에서 도 3의 실시 예의 동작을 도시하는 도면.
도 5는 본 발명의 실시 예의 동작을 보여주는 다른 예시적인 입력 데이터 세트를 도시하는 도면.
도 6은 본 발명의 실시 예에 따른 동작 동안 얻어질 수 있는 예시적인 이미지 모델을 도시하는 도면.
도 7은 본 발명의 실시 예에 따른 동작 동안 얻어질 수 있는 다른 예시적인 이미지 모델을 도시하는 도면.
도 8은 본 발명의 실시 예에 따른 통신 프로토콜을 도시하는 도면.
도 9는 본 발명의 다른 실시 예에 따른 다른 통신 프로토콜을 도시하는 도면.
도 10은 다른 실시 예에 따른 비디오 코딩 시스템의 간략한 블록 도.
본 발명의 실시 예들은 코딩 동안에 전개(develop)되는 복수의 레퍼런스 프레임들로부터 암시 레퍼런스 프레임들(implied reference frames)을 구축하는 비디오 코딩/디코딩 시스템을 제공한다. 레퍼런스 픽처들의 코딩된 데이터는 디코딩되어 레퍼런스 픽처 캐시에 저장된다. 암시 레퍼런스 프레임은 복수의 레퍼런스 프레임으로부터 도출될 수 있고 레퍼런스 픽처 캐시에 저장될 수 있다. 그 후, 예측 소스로서 암시 레퍼런스 프레임을 이용하여 새로운 입력 데이터의 코딩이 진행될 수 있다. 이 방법은 종래의 레퍼런스 프레임 어셈블리 및 축출(eviction) 환경의 시스템에 의해서 캡처될 수 있는 장기간 동안의 비디오에 지속될 수 있는 배경 요소와 같은 비주얼 요소들을 식별하는데 이용될 수 있다. 예측 소스로서 작용하는 암시 레퍼런스 프레임들은 인코더와 디코더에서 구축될 수 있다.
도 1은 본 발명의 실시 예에 따른 비디오 코더/디코더 시스템(100)을 보여주고 있다. 시스템(100)은 통신 네트워크(120)를 통해서 상호 연결되는 복수의 단말기 장치(terminal device)(110.1-110.N)를 포함할 수 있다. 단말기 장치들은 비디오 회의 기능을 지원할 수 있으므로 단말기 이용자의 오디오-비주얼 데이터를 캡처하여 캡처한 데이터를 코딩하고 이 데이터를 다른 단말기에 전송하기 위해 관련 하드웨어 및 소프트웨어(아래 설명됨)를 포함할 수 있다. 각각의 단말기는 또한 다른 단말기로부터 코딩된 오디오-비주얼 데이터를 수신하여 코딩된 데이터를 디코딩하고 디코딩된 데이터를 디스플레이 및 스피커와 같은 출력 장치에 렌더링하기 위한 관련 하드웨어와 소프트웨어(이 또한 아래 설명됨)를 포함할 수 있다. 단말기(110.1-110.N)는 통신 또는 컴퓨터 네트워크로서 구현될 수 있는 하나 이상의 상호 연결 네트워크(120)를 통해서 코딩된 비디오 데이터를 서로 송수신할 수 있다. 네트워크(120)는 유선 또는 무선일 수 있는 패킷-기반 네트워크로 제공될 수 있다. 본 발명의 목적을 위해서, 여기에 다르게 명시하지 않는 한, 네트워크(120)의 아키텍처와 실시는 본 발명의 실시에는 중요하지 않다.
본 발명의 원리의 응용은 다른 것들 중에서도 비디오 회의(video conferencing)를 포함해서 다양한 코딩 응용에서 찾아볼 수 있다. 비디오 회의 응용에서, 각 단말기(즉, 단말기 110.1)는 그의 카메라를 통해서 로컬 장면의 비디오 정보를 캡처하여 이 데이터를 코딩하고, 이를 다른 단말기(즉, 단말기 110.2)로 전송할 수 있다. 유사하게, 다른 단말기는 비디오 정보를 국부적으로 캡처하여 이를 코딩하고, 이 데이터를 제1 단말기(110.1)에 전송할 수 있다. 각 단말기(110.1, 110.2)는 다른 단말기로부터 수신하는 코딩된 비디오 데이터를 디코딩하여 디코딩된 비디오를 디스플레이 장치에 렌더링할 수 있다.
본 발명의 원리는 또한, 예를 들어, 제1 단말기가 코딩된 비디오 데이터를 다수의 원격 단말기에 전송하고 그들로부터 코딩된 비디오 데이터를 수신하는 다자간 회의 응용(multi-party conferencing application)에도 적용된다.
도 2는 본 발명의 실시 예에 따른 비디오 인코더(200.1, 200.2) 및 비디오 디코더(250.1, 250.2)의 간략한 기능 블록 도이다. 도시된 바와 같이, 각 단말기(단말기 1 및 2)는 다른 단말기의 비디오 디코더(250.1, 250.2)와 짝을 이룬 비디오 인코더(200.1, 200.2)를 포함할 수 있다.
비디오 인코더(200.1)는 프리-프로세서(210.1), 코딩 엔진(220.1), 레퍼런스 픽처 캐시(230.1) 및 픽처 분석기를 포함할 수 있다. 프리-프로세서(210.1)는 카메라와 같은 이미지 캡처 장치로부터 소스 비디오를 받을 수 있고 이를 코딩을 위해 컨디셔닝(condition)하기 위해서 이 소스 비디오에 다양한 처리 작업을 실행할 수 있다. 코딩 엔진(220.1)은 사전-처리된 소스 비디오 안의 시공간 리던던시를 감소시키기 위해서 사전-처리된 소스 비디오에 대역폭 압축 작업을 실행할 수 있다. 코딩 엔진은 코딩된 비디오 데이터를 비디오 디코더(250.1)로의 전달을 위해 채널에 출력할 수 있다. 그의 작업의 일부로, 코딩 엔진은 또한 나중-코딩된 소스 비디오에 대한 예측의 소스로서 이용될 수 있는 레퍼런스 프레임들의 코딩된 비디오 데이터를 디코딩할 수 있다. 디코딩된 레퍼런스 프레임들은 후속하여 수신된 소스 비디오의 코딩 동안에 레퍼런스 픽처 캐시(230.1)에 저장될 수 있다. 픽처 분석기(240.1)는 이하 설명되는 바와 같이 레퍼런스 픽처 캐시(230.1)에 저장된 프레임들로부터 암시 레퍼런스 프레임들을 생성할 수 있다.
프리-프로세서(210.1)는 소스 비디오 시퀀스에 비디오 처리 작업을 실행할 수 있다. 프리-프로세서는 비디오 안에서 관측된 특징들을 기반으로 소스 비디오에 동적으로 적용될 수 있는 디노이징 필터(de-noising filter), 샤프닝 필터(sharpening filter), 평탄화 필터(smoothing filter), 양방향 필터(bilateral filter) 등과 같은 필터 어레이(도시되지 않음)를 포함할 수 있다. 통상적으로, 프리-프로세서는 대역폭 압축을 보다 효율적으로 렌더링하거나 코딩 엔진(220.1)이 작동할 때 초래될 수 있는 데이터 손실을 고려하여 이미지 품질을 보존하기 위해 소스 비디오 데이터를 컨디셔닝한다.
코딩 엔진(220.1)은 대역폭 압축을 성취하기 위해 다양한 상이한 코딩 기술에 따라서 입력 비디오 데이터를 코딩할 수 있다. 코딩 엔진은 모션-보상 예측(motion-compensated prediction)으로 이미지들을 압축할 수 있다. 입력 비디오의 프레임들에는 인트라-코딩(I-코딩), 단방향 예측 코딩(uni-directionally predictive coding)(P-코딩) 또는 양방향 예측 코딩(bi-directionally predictive coding)(B-코딩)과 같은 코딩 유형이 할당될 수 있다. 이들 프레임은 또한 복수의 픽셀 블록으로 파스(parse)될 수 있고 변환 코딩, 양자화(quantization) 및 엔트로피 코딩에 의해 코딩될 수 있다. P- 및 B-코딩된 프레임들의 픽셀 블록들은 예측적으로 코딩될 수 있고, 이 경우에, 코딩 엔진은 코딩될 픽셀 블록들의 예측으로 작용하는 레퍼런스 픽처 캐시(230.1)에 저장된 디코딩된 프레임들의 픽셀 블록들을 식별하는 모션 벡터를 계산할 수 있고 변환 코딩에 연루시키기 전에 예측 잔차(prediction residuals)를 생성할 수 있다. 한 실시 예에서, 비디오 인코더는 ITU H.263, H.264 등에 의해 다뤄지는 코딩 프로토콜에 따라서 동작할 수 있다.
비디오 디코더(250.1)는 디코딩 엔진(260.1), 레퍼런스 픽처 캐시(270.1), 포스트-프로세서(280.1), 및 픽처 분석기(290.1)를 포함할 수 있다. 디코딩 엔진(260.1)은 레퍼런스 픽처 캐시에 저장된 레퍼런스 픽처들을 참조해서 채널을 통해 수신된 코딩된 비디오 데이터를 디코딩할 수 있다. 디코딩 엔진(260.1)은 디코딩된 비디오 데이터를 포스트-프로세서(280.1)에 출력할 수 있고, 포스트-프로세서(280.1)는 표시를 위해 디코딩된 비디오 데이터를 컨디셔닝하기 위해서 이 데이터에 부가의 작업을 실행할 수 있다. 레퍼런스 프레임들의 디코딩된 비디오 데이터는 또한 후속하여 수신된 코딩된 비디오 데이터의 디코딩 동안 이용될 수 있게 레퍼런스 픽처 캐시(270.1)에 저장될 수 있다. 픽처 분석기(290.1)는 이하 설명되는 바와 같이 레퍼런스 픽처 캐시(270.1)에 저장된 프레임들로부터 암시 레퍼런스 프레임들을 생성할 수 있다.
디코딩 엔진(260.1)은 코딩 엔진(220.1)이 실행한 코딩 작업을 인버트(invert)하는 디코딩 작업을 실행할 수 있다. 디코딩 엔진(260.1)은 복원 픽셀 블록 데이터를 생성하기 위해 엔트로피 디코딩, 탈양자화(dequantization) 및 변환 디코딩을 실행할 수 있다. 양자화/탈양자화 작업은 로시 프로세스(lossy process)이고, 그러므로 복원된 픽셀 블록 데이터는 비디오 인코더(200.1)에 의해 코딩되었으나 어떤 에러를 포함하는 소스 픽셀 블록들의 복제(replica)이다. 예측적으로 코딩된 픽셀 블록들의 경우, 변환 디코딩은 잔차 데이터를 생성할 수 있고; 디코딩 엔진(260.1)은 예측 잔차와 결합되는 예측 픽셀 블록들을 레퍼런스 픽셀 캐시(270.1)로부터 검색하기 위해 픽셀 블록들(이는 어떤 경우에는 암시(implied)될 수 있음)에 연관된 모션 벡터를 이용할 수 있다. 디코딩된 픽셀 블록들은 프레임들로 리어셈블(reassemble)되어 포스트-프로세서(280.1)에 출력될 수 있다.
포스트-프로세서(280.1)는 표시 장치에 공통으로 렌더링하기 위해 복원된 비디오 데이터를 컨디셔닝하는 부가의 비디오 처리를 실행할 수 있다. 통상적인 포스트-프로세싱 작업은 디블록킹(deblocking) 필터, 에지 검출 필터, 링잉(ringing) 필터 등을 적용하는 것을 포함할 수 있다. 포스트-프로세서(280.1)는 표시 장치에 렌더링될 수 있거나 선택적으로 나중의 검색 및 표시를 위해 메모리에 저장될 수 있는 복원된 비디오 시퀀스를 출력할 수 있다.
픽처 분석기(240.1, 290.1)는 렌퍼런스 픽처 캐시에 저장된 프레임들로부터 암시 레퍼런스 프레임들을 생성할 수 있다. 픽처 분석기(240.1, 290.1)는 각 프레임에 있는 픽셀 블록 데이터를 이미지의 배경 또는 전경 이미지에 속하는 것으로 분류하기 위해 레퍼런스 픽처들의 시퀀스를 분석할 수 있다. 픽처 분석기(240.1, 290.1)는 배경 픽셀 블록들로 분류되는 레퍼런스 프레임들의 픽셀 블록 데이터로부터 암시 레퍼런스 프레임을 합성할 수 있고 암시 레퍼런스 프레임을 그들의 각 레퍼런스 픽처 캐시(230.1, 270.1)에 저장할 수 있다. 이후에, 코딩 엔진(220.1)은 코딩될 나중에 수신된 소스 비디오를 위한 예측 레퍼런스로서 암시 레퍼런스 프레임으로부터의 픽셀 블록들을 이용할 수 있으며, 암시 레퍼런스 프레임을 참조하여 모션 벡터를 디코더에 전송할 수 있다. 예측 레퍼런스로서 암시 레퍼런스 프레임을 참조하는 코딩된 비디오 데이터가 수신되면, 디코딩 엔진(260.1)은 레퍼런스 픽처 캐시(270.1)로부터 암시 레퍼런스 프레임의 픽셀 블록 데이터를 검색하여 이를 나중에 수신된 소스 프레임의 코딩된 비디오 데이터를 디코딩하는데 이용할 수 있다.
한 실시 예에서, 비디오 인코더(200.1)와 비디오 디코더(250.1)에 있는 픽처 분석기(240.1, 290.1)의 동작은 동시에 실행된다. 더욱이, 픽처 분석기(240.1, 290.1)는 비디오 인코더(200.1)와 비디오 디코더(250.1)에 적절히 저장되는 것으로 알려져 있는 레퍼런스 픽처 캐시에 저장된 프레임들에 대해서 동작한다. 따라서, 비디오 인코더(200.1)와 비디오 디코더(250.1)는 이들 유닛들 간에 동시성(synchronism)을 유지하기 위해서 시그널링 메시지를 교환할 수 있다.
한 실시 예에서, 비디오 인코더(200.2)와 비디오 디코더(250.2)는 단말기(2)에서 비디오를 캡처하여 이를 코딩하고, 이를 디코딩을 위해 단말기(1)에 전송할 수 있도록 비디오 인코더(200.1) 및 비디오 디코더(250.1)와 유사하게 제공될 수 있다. 유사하게 제공되어 있더라도, 비디오 인코더/디코더는 서로 독립적으로 동작할 수 있다. 그러므로, 제1 비디오 인코더/디코더 쌍의 프리-프로세싱 작업(210.1)과 포스트-프로세싱 작업(280.1)은 이 쌍에 의해 처리될 비디오 콘텐츠에 관해서 동적으로 선택될 수 있다. 제2 비디오 인코더/디코더 쌍의 프리-프로세싱 작업(210.2)과 포스트-프로세싱 작업(280.2)은 제1 쌍에 의해 처리될 비디오 콘텐츠에 관계없이 제2 쌍에 의해 처리될 비디오 콘텐츠에 관해서 동적으로 선택될 수 있다. 유사하게, 제1 쌍의 픽처 분석기(240.1, 290.1)의 동작은 제2 쌍의 픽처 분석기(240.2, 290.2)의 동작에 관계없이 진행될 수 있다.
도 3은 본 발명의 한 실시 예에 따른 암시 레퍼런스 픽처를 구축하는 방법(300)을 보여주고 있다. 본 방법에 따르면, 한 프레임 내의 각 픽셀 블록 위치에 대하여, 방법(300)은 미리 정해진 비디오 시퀀스에 걸쳐 그 위치에 있는 픽셀 블록들의 특성을 비교할 수 있다(박스 310). 비디오 시퀀스는 미리 정해진 수의 시간적 연속 레퍼런스 프레임들, 예를 들어, 10개 프레임을 포함할 수 있다. 관측된 특성들을 기반으로, 방법(300)은 이 위치에 있는 픽셀 블록들을 배경 영역 또는 어떤 다른 영역(도 3에서는 "전경"이라 함)에 속하는 것으로 분류할 수 있다(박스 320). 이후, 방법(300)은 이미지 배경에 속하는 것으로 분류된 시퀀스의 픽셀 블록들로부터 암시 레퍼런스 프레임을 구축할 수 있다(박스 300).
도 4는 예시적인 레퍼런스 프레임 세트의 맥락에서 도 3의 방법의 동작을 보여주고 있다. 도 4(a)-(c)는 각각 비교적 정지되어 있는 배경 이미지에 대해서 이용자가 이동할 수 있는 비디오 회의 환경에서 이용자의 이미지 데이터를 보여주고 있다. 각 프레임 간의 예시적인 차를 보여주기 위해서 이용자의 실루엣이 각 도면에 나타나 있다. 도 3의 방법이 보다 긴 레퍼런스 프레임 시퀀스에 작동할 수 있을지라도, 도 4의 예에는 단지 3개의 레퍼런스 프레임이 도시되어 있다. 일련의 픽셀 블록들(410.1-480.1)은 도 4(a)에 도시되어 있고, 이들 픽셀 블록들은 도 4(b) 및 4(c)에 각각 도시된 프레임들 내에 같은 위치에 있는(co-located) 카운터파트(410.2-480.2, 410.3-480.3)를 갖는다.
동작 동안에, 이 방법은 위치(410.1, 410.2, 410.3)에 있는 픽셀 블록들의 특성을 비교할 수 있다. 이 비교는 이 위치에 있는 픽셀 블록들이 아주 유사함을 나타낼 수 있으므로, 이 방법은 모든 3개의 픽셀 블록들을 배경 이미지에 속하는 것으로 분류할 수 있다. 픽셀 블록 위치(420, 470 및 480)에서 이 방법의 동작은 동일 결과를 성취할 수 있다. 각각의 경우에, 모든 3개의 프레임으로부터의 픽셀 블록들은 서로 아주 유사하여 이들 간에 매우 작은 모션을 갖는 것으로 평가될 수 있다. 각각의 경우에, 모든 3개의 프레임으로부터의 픽셀 블록들(픽셀 블록 420.1, 420.2, 420.3, 470.1, 470.2, 470.3, 480.1, 480.2 및 480.3)은 배경 이미지에 속하는 것으로 분류될 수 있다.
위치(430-460)에 있는 픽셀 블록들의 평가는 다양한 분류를 산출할 수 있다. 도 4의 3개의 프레임 사이에서와 같이, 이 방법은 이들 픽셀 블록들의 뷰(view)의 필드 내에 있는 이미지 콘텐츠, 모션 및 다른 활동에 기인한 프레임들 간의 유의미한 차이를 식별할 수 있다. 예를 들어, 위치(430)에서, 이 방법은 프레임 1과 프레임 3(픽셀 블록 430.1 및 430.3) 간에는 강한 상관성(correlation)이 있으나 프레임 2의 픽셀 블록(430.2)과는 약한 상관성을 가짐을 식별할 수 있다. 더욱이, 픽셀 블록(430.2)은 그것과 연관된 비교적 큰 프레임-프레임 모션(frame-to-frame motion)을 가질 수 있지만, 프레임들(430.1 및 430.3)은 많은 모션을 갖지 않을 것이다. 그러한 특성을 기반으로, 이 방법은 픽셀 블록(430.2)을 제하고 픽셀 블록(430.1 및 430.3)을 배경 블록으로 분류할 수 있다.
유사하게, 위치(460)에서, 이 방법은 프레임 1과 프레임 2(픽셀 블록 460.1 및 460.2) 간에는 강한 상관성이 있으나 프레임 3의 픽셀 블록(460.3)과는 약한 상관성을 가짐을 식별할 수 있다. 더욱이, 픽셀 블록(460.3)은 그것과 연관된 비교적 큰 프레임-프레임 모션을 가질 수 있지만, 프레임들(460.1 및 460.2)은 많은 모션을 갖지 않을 것이다. 그러한 특성을 기반으로, 이 방법은 픽셀 블록(460.3)을 제하고 픽셀 블록(460.1 및 460.2)을 배경 블록으로 분류할 수 있다.
이 방법은 위치(440 및 450)에 있는 픽셀 블록들도 유사하게 처리할 수 있다. 이들 위치에 있는 픽셀 블록들이, 이용자의 얼굴이 이들 영역에 위치해 있기 때문에, 그들 간에 어떤 상관성을 나타낼 수 있을지라도, 이들 픽셀 블록들은 위치(410-430 및 460-480)에 도시된 예시적인 데이터보다 그들 간의 상관성이 낮으며 모션은 더 클 것이다. 따라서, 이 방법은 이들 위치에 있는 어떤 픽셀 블록들도 배경 영역에 속하는 것으로 분류할 수 없다.
도 4는 예시적인 3개의 레퍼런스 프레임 세트에 대해서 실행된 도 3의 방법의 동작을 보여주고 있다. 동작 동안에, 이 방법은 10 또는 15개의 레퍼런스 프레임과 같은 보다 큰 레퍼런스 프레임 세트에 대해서 실행될 수 있다. 도 5는 10개의 레퍼런스 프레임들(510.1-510.10)로 구성된 다른 예시적인 입력 데이터 세트를 보여주고 있다. 현 논의의 목적을 위해서, 프레임들(510.1-510.3)은 오퍼레이터의 얼굴에 대응하는 이미지의 영역에 있는 프레임-프레임 모션을 제외하고는 도 4(a)의 프레임 1의 이미지 콘텐츠와 아주 비슷하다. 이들 프레임은 도 5에 "F1"으로 표시되어 있다. 유사하게, 프레임(510.4-510.6)은 오퍼레이터의 얼굴에 대응하는 이미지 영역에 있는 프레임-프레임 모션을 제외하고 프레임 2(도 4(b))의 이미지 콘텐츠와 비슷하며, 프레임(510.7-510.10)은 오퍼레이터의 얼굴에 대응하는 이미지 영역에 있는 프레임-프레임 모션을 제외하고 프레임 3(도 4(c))의 이미지 콘텐츠와 비슷하다. 그러한 목적을 위해 도 5에서 프레임(510.4-510.6)은 "F2"로 표시되어 있고, 프레임(510.7-510.10)은 "F3"로 표시되어 있다.
동작 동안, 도 3의 방법은 도 4의 예에 있는 어레이보다는 도 5의 예에 도시된 이미지 콘텐츠의 더 넓은 어레이를 이용하여 훨씬 정밀한 배경 이미지 데이터의 모델을 전개할 수 있다. 도 4(c)의 픽셀 블록 위치(440)를 고려하여, 이 방법은 이들 픽셀 블록을 배경 픽셀 블록으로 분류하기에 충분한 프레임들(510.7-510.10) 간의 상관성을 관측할 수 있다. 픽셀 블록 위치(450)(도 4)와 같은 이미지 콘텐츠는 임의의 픽셀 블록 위치를 배경 픽셀 블록으로 분류할 수 있을 정도로 충분히 강한 프레임들 간의 상관성을 나타낼 수 없다.
도 6은 도 3의 방법의 동작 동안 얻어질 수 있는 예시적인 이미지 모델을 보여주고 있다. 도 6은 도 5의 예시적인 프레임(510.1-510.10)으로부터 도출될 수 있는 전경 이미지 콘텐츠의 위치를 나타내는 3개의 실루엣(S1-S3)의 중첩을 보여주고 있다. 이 모델에서, 각 실루엣 내에 있는 이미지 콘텐츠는 실루엣 바깥에 있는 이미지 콘텐츠보다 프레임-프레임 모션을 더 나타낼 수 있다. 이 방법은 배경 이미지 데이터를 나타내는 것으로 각각의 실루엣 바깥에 있는 이미지 데이터를 수집할 수 있다. 이러한 프로세스는 도 7에 도시된 바와 같은 모델을 효율적으로 생성하며, 도 7에서 희색 음영으로 표기된 픽셀 블록들은 배경 픽셀 블록으로 인식될 수 있을 것이다. 암시 레퍼런스 프레임은 배경 픽셀 블록들로부터 도출되어 레퍼런스 픽처 캐시에 저장될 수 있다.
본 발명은 주어진 픽셀 블록이 배경 이미지에 속하는 것으로 분류되어야 하는지 여부를 판정하는 다양한 기술을 수용한다. 제1 구현은 레퍼런스 프레임들 간의 픽셀 블록 모션을 기반으로 한다. 한 레퍼런스 프레임으로부터 다음 레퍼런스 프레임까지의 이동 거리를 나타내는 픽셀 블록 변위 벡터는 각 픽셀 블록 위치에서 계산될 수 있다. 시퀀스 안에서 가장 낮은 전체 모션을 갖는 픽셀 블록들은 배경 이미지에 속하는 것으로 할당하기 위한 후보(candidate)일 수 있다. 게다가, 복수의 연속 레퍼런스 프레임들의 동일-위치 픽셀 블록들이 레퍼런스 프레임으로부터 레퍼런스 프레임까지 공통 모션을 나타낸다면, 이는 레퍼런스 프레임 픽셀 블록들이 배경 이미지의 멤버임을 나타내는 지표(indicator)로서 이용될 수 있다. 당연한 결과로서, 복수의 연속 레퍼런스 프레임들의 동일-위치 픽셀 볼록들이 모순되거나 불규칙한 모션을 나타낸다면, 이는 이들 픽셀 블록들을 배경 이미지의 멤버로서 인정하지 않기 위한 기반(basis)으로 이용될 수 있다.
확장해 보면, 본 방법은 레퍼런스 프레임의 픽셀 블록들과, 시간상으로 인접한 논-레퍼런스 프레임들의 동일-위치 픽셀 블록들 간의 상대 모션(relative motion)을 고려할 수 있다. 시간상으로 인접한 복수의 프레임들의 동일-위치 픽셀 블록들이 레퍼런스 프레임의 픽셀 블록들과 공통 모션을 나타낸다면, 이는 레퍼런스 프레임 픽셀 블록들이 배경 이미지의 멤버임을 나타내는 지표로서 이용될 수 있다. 그리고, 시간상으로 인접한 복수의 프레임들의 동일-위치 픽셀 블록들이 레퍼런스 프레임의 픽셀 블록들에 대해서 모순되거나 불규칙한 모션을 나타낸다면, 이는 이들 픽셀 블록들을 배경 이미지의 멤버로서 인정하지 않기 위한 기반(basis)으로 이용될 수 있다.
더욱이, 이 방법은 에지 검출 작업과 함께 모션 속성을 고려할 수 있다. 인코더는 이미지 데이터 내의 요소들을 식별하기 위해 에지 검출을 실행하고 검출된 에지의 대향하는 측에 있는 영역의 이미지 모션을 평가할 수 있다. 검출된 이미지의 제1 측면에 있는 이미지 영역이 복수의 레퍼런스 프레임들에 걸쳐서 비교적 일관된 모션을 나타낸다면, 이는 이 영역(및, 확대하면, 에지의 이 측면에 위치한 픽셀 블록들)은 배경 이미지 요소로서 분류될 수 있음을 시사할 수 있다.
이 방법은 또한 이미지에 할당된 전체 모션 벡터(global motion vector)와 함께 이미지의 모션 속성을 고려할 수 있다. 대다수의 인코더는 부분적으로 프레임별 기반으로 모션을 추정하는 프리-프로세싱 작업을 실행할 수 있다. 더구나, 몇몇 인코더는 작업 동안에 카메라 장치의 움직임을 검출하기 위해 모션 검출기를 이용하는 카메라와 함께 작동한다. 어느 경우에나, 레퍼런스 이미지 내의 개별 픽셀 블록들의 모션은 픽셀 블록을 배경 요소에 속하는 것으로 분류할 목적으로 평가되므로, 픽셀 블록 모션은 전체 모션 추정에 비교될 수 있다. 픽셀 블록이 프레임에 적용된 전체 모션 추정과 다른 모션을 나타낼 때, 이 픽셀 블록은 배경 이미지 요소로서 분류되지 않을 수 있다.
이 방법은 또한 배경 분류 실행의 일부로서 픽셀 블록들 간의 공간적 상관성을 고려할 수 있다. 그러한 구현에서, 이 방법은 픽셀 블록 이미지 콘텐츠를 동일 프레임 내의 이웃하는 픽셀 블록들의 이미지 콘텐츠에 비교할 수 있다. 예를 들어, 이 방법은 그러한 상관성을 평가하기 위해 이웃하는 코딩된 픽셀 블록들 간의 변환 계수들을 비교할 수 있다. 픽셀 블록들이 이웃하는 픽셀 블록들에 높은 상관성을 나타낼 때, 그러한 상관성은 배경 픽셀 블록들을 식별하기 위한 기반으로 이용될 수 있다.
물론, 본 발명의 원리는 앞서 설명한 다양한 기술의 통합을 수용한다. 한 구현에서, 모션 및 공간 상관성 테스트는 레퍼런스 프레임 내의 개개의 픽셀 블록에 적용될 수 있다. 모션 평가와 공간 상관성 평가는 개별적으로 스코어가 매겨진 다음 합계 스코어로 합쳐질 수 있는데, 시스템은 이 합계 스코어로부터 픽셀 블록을 배경 요소로 지정하거나 지정하지 않을 수 있다.
이 시스템이 각 프레임 위치에 있는 픽셀 블록들의 집합이 배경에 속하는 것으로 식별하면, 시스템은 그로부터 암시 레퍼런스 프레임을 구축할 수 있다. 암시 레퍼런스 프레임은, 픽셀 블록들의 콘텐츠를 함께 평균 내거나 평균 냄에 의해 얻은 픽셀 블록에 가장 유사한 픽셀 블록으로부터 콘텐츠를 복제(copy)함으로써 어셈블(assemble)될 수 있다. 널(null) 데이터(예를 들어, 순수 블랙 또는 순수 화이트 데이터)는 배경 픽셀 블록들이 식별되지 않은 프레임 위치들에 저장될 수 있다.
도 8은 본 발명의 실시 예에 따른 인코더와 디코더 간의 통신 프로토콜을 보여주고 있다. 이 프로토콜에 따르면, 어떤 암시 레퍼런스 프레임들의 전개 전에, 인코더는 비디오 시퀀스로부터의 프레임들을 코딩하여 이에 의해 획득된 코딩된 비디오 데이터를 디코더에 전송할 수 있다(블록 810). 디코더는 코딩된 비디오 시퀀스를 수신하여 이를 디코딩할 수 있다(블록 820). 인코더는 또한 디코더에 전송된 코딩된 레퍼런스 프레임들을 디코딩할 수 있다(이 동작은 도시되지 않음). 전송 에러가 없으면, 인코더와 디코더는 국부적으로 각 장치에서 레퍼런스 프레임들의 공통 세트를 저장해야만 한다.
인코더가 암시 레퍼런스 프레임을 이용하고자 결정할 때, 인코더는 디코더에게 암시 레퍼런스 프레임을 구축하라고 하는 명령(command)을 포함할 수 있다(블록 830). 인코더 명령은 코딩된 비디오 데이터와 함께 채널 데이터에 포함될 수 있다. 인코더 명령은 암시 레퍼런스 프레임을 도출할 수 있는 한 세트의 레퍼런스 프레임을 식별할 수 있다. 이후, 인코더와 디코더는 각각 그들의 로컬 캐시에 저장된 레퍼런스 프레임들로부터 암시 레퍼런스 프레임을 구축할 수 있다(블록 840, 850). 디코더가 암시 레퍼런스 프레임을 성공적으로 구축하여 이를 저장하면, 디코더는 이를 식별해주는 확인응답 메시지(acknowledgment message)를 인코더에 전송할 수 있다(블록 860). 확인응답 메시지는 미래의 코딩을 위해 인코더와 디코더가 이용할 수 있는 인덱스(index)를 포함할 수 있다.
인코더가 확인응답 메시지를 수신한 후, 인코더는 암시 레퍼런스 프레임을 참조하여 미래의 코딩 작업을 실행할 수 있다. 즉, 임의 다른 레퍼런스 프레임이 이용될 수 있는 것과 동일한 방법으로, 암시 레퍼런스 프레임은 나중에 수신된 소스 프레임들의 코딩 동안에 예측 소스로서 이용될 수 있다. 인코더가 비디오 시퀀스의 나중에 수신된 부분들을 코딩하여 이를 디코더에 전송할 때(블록 870), 이는 예측 소스로서 암시 레퍼런스 프레임을 참조하는 코딩된 프레임을 포함할 수 있다. 유사하게, 디코더는 코딩된 비디오 데이터에 의해서 좌우되는(dictate) 예측 소스로서 암시 레퍼런스 프레임의 로컬 카피(local copy)를 이용하여, 코딩된 비디오를 수신하여 디코딩할 수 있다(블록 880).
작업 동안, 인코더는 디코더가 암시 레퍼런스 프레임들을 그의 레퍼런스 픽처 캐시에 보유하는(retain) 방법을 제어할 수 있다. 예를 들어, 인코더는 디코더의 레퍼런스 픽처 캐시로부터 암시 레퍼런스 프레임들을 소거(purge)하라는 명령 메시지(890)를 포함할 수 있다. 물론, 인코더는 상황에 따라서 새로운 암시 레퍼런스 프레임들을 구축하라는 새로운 명령(830)을 발행할 수 있다. 시스템은 다수의 암시 레퍼런스 프레임들을 동시에 구축하여 보유하기 위해 블록(840, 850)의 동작을 반복할 수 있다.
언급한 바와 같이, 명령 메시지(830)는 인코더와 디코더가 암시 레퍼런스 프레임을 구축하는데 이용할 레퍼런스 프레임들의 식별자를 포함할 수 있다. 명령 메시지(830)는 많은 포맷을 취할 수 있다. 제1 구현에서, 명령 메시지(830)는, 예를 들어, 타임스탬프, 프레임 번호 또는 다른 명료한 식별자에 의해 명료하게 레퍼런스 프레임들을 식별할 수 있다. 다른 구현에서, 명령 메시지(830)는 이용될 정수개의 레퍼런스 프레임들(즉, N 프레임들)을 식별할 수 있고, 이는 채널 데이터에 포함된 N개의 가장 최근에 전송된 레퍼런스 프레임들을 암시적으로 식별한다. 어느 경우에든, 디코더가 명령 메시지를 해석하고 나면, 식별된 레퍼런스 프레임들이 레퍼런스 픽처 캐시에 존재하는지 여부를 판단할 수 있다. 식별된 레퍼런스 프레임들이, 예를 들어, 그들의 수신을 전송에러가 방해하였기 때문에 존재하지 않는다면, 디코더는 암시 레퍼런스 프레임들을 구축할 수 없다. 이 경우에, 디코더는 암시 레펀런스 프레임을 구축하려는 디코더의 시도가 성공하지 못하였음을 가리키는 확인응답 메시지(도시되어 있지 않음)를 보내야 한다. 디코더로부터의 이러한 리젝션(rejection) 통지에 대한 응답으로, 인코더는 그의 통신 채널 측에서 암시 레퍼런스 프레임을 구축하려는 그의 시도를 포기할 수 있다. 대신에, 인코더는 다른 레퍼런스 프레임 세트를 식별하는 암시 레퍼런스 프레임을 구축하라는 다른 명령을 발행할 수 있다.
언급한 바와 같이, 코딩 엔진(220.1, 220.2) 및 디코딩 엔진(260.1, 260.2)은 ITU H.263 또는 H.264와 같은 미리 정해진 코딩 프로토콜에 의해 정해진 바대로 코딩 작업을 실행할 수 있다. 그러한 코딩 프로토콜들은 앞서 설명한 명령 및 확인응답 메시지(830, 860)를 제공하지 않지만, 그러한 메시지를 수용하도록 이들 프로토콜을 개정할 수 있다. 따라서, 그러한 코더들의 코딩 엔진(220.1, 220.2)과 디코딩 엔진(260.1, 260.2) 간에 수행되는 교환처럼 명령과 확인응답 프로토콜을 포함하는 것이 가능하다.
도 9는 본 발명의 실시 예에 따른 인코더와 디코더 간의 다른 통신 프로토콜을 보여주고 있다. 이 프로토콜에서, 인코더와 디코더는 롱 텀(long term) 레퍼런스("LTR") 프레임들로부터 암시 레퍼런스 프레임들을 구축할 수 있다. LTR 프레임들은 ITU H.264 코딩 프로토콜에 의해 규정되어 있다. 이들은 수신 및 성공적인 디코딩시에 디코더에 의해 확인응답되는(acknowledged) 레퍼런스 프레임이다. 디코더는 인코더에 확인응답을 전송하고, 이때 인코더는 LTR 상태(status)를 레퍼런스 프레임에 할당한다. 이와 같이, 인코더는 LTR의 수신 및 성공적인 디코딩에 대한 명료한 확인(confirmation)을 수신하며, 후속 코딩 작업시 LTR 프레임에 의존할 수 있다.
프로토콜(900)에 따라서, 인코더는 비디오 시퀀스의 프레임들을 코딩할 수 있고(블록 910), 특정 레퍼런스 프레임들을 LTR 프레임으로 마크할 수 있다(블록 920). 인코더는 코딩된 비디오 데이터를 디코더에 전송할 수 있다. 디코더는 코딩된 비디오 데이터의 수신시, 이를 렌더링을 위해 디코딩할 수 있고(블록 930), 레퍼런스 프레임들을 레퍼런스 픽처 캐시에 국부적으로 저장할 수 있다. 디코더는 LTR 프레임들을 성공적으로 디코딩하면, 이를 고지하는 확인응답 메시지(940)를 인코더에게 전송할 수 있다. 인코더가 디코더의 확인응답 메시지(940)를 수신하면, 인코더는 디코더에서의 수신이 확인되었음을 나타내기 위해 국부적으로 저장된 LTR 프레임들의 상태를 개정할 수 있다(블록 950). 블록(910-950)의 동작은 비디오 시퀀스의 코딩 전반에 걸쳐서 반복될 수 있다.
인코더가 암시 레퍼런스 프레임을 구축하고자 결정을 할 때, 인코더는 도출(derivation)에 이용될 LTR 프레임들을 식별하는 암시 레퍼런스 프레임을 구축하라는 명령을 디코더(960)에 전송할 수 있다. 디코더는 명령 메시지(960)의 수신에 따라 암시 레퍼런스 프레임을 구축할 수 있고(블록 970) 암시 레퍼런스 프레임 구축 처리가 완료될 때 확인응답 메시지(980)를 인코더에 전송할 수 있다. 더욱이, 인코더는 병행해서 이 암시 레퍼런스 프레임의 카피를 그 자신에게 구축할 수 있다(블록 990). 이후에, 인코더는 암시 레퍼런스 프레임을 참조하여 소스 비디오 시퀀스를 코딩하고, 그로부터 획득된 코딩된 비디오 데이터를 디코더에 전송할 수 있다(블록 1000). 디코더는 코딩된 비디오 데이터를 수신하면 이를 디코딩할 수 있다(블록 1010).
도 9의 프로토콜은, 구축 처리가 시작되기 전이라도 디코더에 의해 확인응답되어 인코더에 의해 유효한 것으로 알려지는 암시 레퍼런스 프레임들의 도출을 위하여 LTR 프레임들에 의존한다. 그러한 실시 예는 구축 처리가 디코더에 존재할 수 없는 레퍼런스 프레임들에 의존할 수 있는 도 8의 실시 예에 비해 신뢰성이 증가한다는 이점이 있다.
도 8 및 도 9의 프로토콜에 따라서, 암시 레퍼런스 프레임들이 예측 소스로서 이용될 때를 가리키기 위하여 다른 프레임들의 코딩 및 디코딩 동안에 이용될 수 있는 식별자가 생성시에 암시 레퍼런스 프레임들에 할당될 수 있다. 각각의 새로운 암시 레퍼런스 프레임에는 고유 식별자가 할당될 수 있다. 이와 같이, 인코더가 코딩될 새로운 소스 프레임의 예측 소스로서 암시 레퍼런스 프레임을 이용할 때, 새로운 소스 프레임의 코딩된 비디오 데이터는 암시 레퍼런스 프레임 식별자를 포함할 수 있다. 디코딩 시에, 디코더는 새로운 소스 프레임의 코딩된 비디오 데이터를 파스할 수 있고 예측 목적을 위해 암시 레퍼런스 프레임의 데이터를 검색하는데 식별자를 이용할 수 있다. 더욱이, 디코더가 이 식별자에 해당하는 암시 레퍼런스 프레임을 저장하고 있지 않음을 판정하면, 디코더는 인코더에 에러를 알려주며, 이는 인코더와 디코더의 작업이 다시 동기화 되게 해줄 수 있다.
한 실시 예에서, 인코더는 디코더로부터 확인응답 메시지(980)를 수신하기 전이라도 암시 레퍼런스 프레임에 대해 비디오 코딩을 시작할 수 있다(블록 1000). 그러한 실시 예는 인코더가 명령 메시지(960)의 전송시 즉시 암시 레퍼런스 프레임을 이용할 수 있다는 장점이 있다. 그러한 실시 예에서, 디코더가 수신하기 전에 명령 메시지가 분실되게 할 수 있는 전송 에러가 생기지 않도록, 인코더는 타임 아웃 메커니즘(time out mechanism: 도시되어 있지 않음)을 이용할 수 있다. 인코더가 명령 메시지(960)를 전송하는 미리 정해진 시간 안에 확인응답 메시지(980)를 수신하지 못하면, 인코더는 암시 레퍼런스 프레임이 코딩에 더 이용되지 못하게 그의 자격을 박탈할 수 있다. 더욱이, 인코더는 암시 레퍼런스 프레임들이 아직-확인응답되지 않은 LTR 프레임들로 구축될 수 있는 제1 모드와 암시 레퍼런스 프레임들이 통신 채널의 검출된 상태를 기반으로 기-확인응답된 LTR 레퍼런스 프레임들로만 구성되는 제2 모드 간에 토글(toggle)할 수 있다. 모드 선택은, 예를 들어, 패킷 손실률, 신호대잡음 비, 채널 대역폭 또는 채널 조건의 다른 표시를 기반으로 이루어질 수 있다.
다른 실시 예에서, 암시 레퍼런스 프레임들은 다른 암시 레퍼런스 프레임들의 도출 동안에 이용될 수 있다. 그러므로, 인코더 및/또는 디코더는 레퍼런스 프레임, LTR 프레임 및 암시 레퍼런스 프레임을 새로운 암시 레퍼런스 프레임의 도출을 위한 소스로서 이용할 수 있다.
언급한 바와 같이, 코딩 엔진(220.1, 220.2)과 디코딩 엔진(260.1, 260.2)은 ITU H.263 또는 H.264와 같은 미리 정해진 코딩 프로토콜에 의해 정해진 바대로 코딩 작업을 실행할 수 있다. 그러한 코딩 프로토콜은 앞서 설명한 명령과 확인응답 메시지(960, 980)를 제공하지 않더라도, 프로토콜은 그러한 메시지를 수용하도록 개정될 수 있다. 따라서, 그러한 코더들의 코딩 엔진(220.1, 220.2)과 디코딩 엔진(260.1, 260.2) 간에 실행되는 교환으로서 명령 및 확인응답 프로토콜을 포함하는 것도 가능하다.
본 발명이 도 8 및 도 9의 명령 및 확인응답 프로토콜이 표준화된 코딩 프로토콜로 통합될 수 있다고 예상해도, 그러한 실시 예에 한정되는 것은 아니다. 도 10은 비디오 인코더(1100)와 디코더(1200)가 명령/확인응답 프로토콜을 직접 수용하지 않는 프로토콜에 따라서 작동하는 다른 실시 예에 따른 비디오 코딩 시스템의 간단한 블록 도이다. 비디오 인코더(1100)와 디코더(1200)는 한 쌍의 코딩/디코딩 경로, 즉 표준화된 프로토콜에 대응하며 "인 밴드(in band)" 채널(IB CH)이라 불리는 제1 통신 링크에 따라서 데이터를 교환하는 제1 경로, 및 암시 레퍼런스 프레임들이 교환될 수 있는 비-표준화준 프로토콜에 대응하는 제2 경로를 가질 수 있다. 제2 경로는 "아웃 오브 밴드(out of band)" 채널(OB CH)이라 불리는, 인코더(1100)와 디코더(1220) 간의 제2 통신 링크에서 데이터를 교환할 수 있다. 도 10에 도시된 바와 같은 비디오 인코더(1100)와 디코더(1200)는 제1 단말기에서 비디오 데이터가 캡처되어 코딩된 후 제2 단말기에서 디코딩되어 표시될 수 있게 해준다. 도 10에는 도시되어 있지 않더라도, 이 시스템은 비디오 데이터가 제2 단말기에서 캡처되어 코딩된 다음 제1 단말기에서 디코딩되어 표시되게 해주는 제2 쌍의 비디오 인코더 및 디코더를 포함할 수 있다.
인코더(1100)는 프리-프로세서(1110), 멀티플렉서(1120), 각 코딩 경로를 나타내는 한 쌍의 코딩 시스템(1130, 1140)을 포함할 수 있다. 제1 코딩 시스템(1130)은 H.263 또는 H.264와 같은 표준화된 코딩 프로토콜에 따라서 동작할 수 있다. 이는 이 프로토콜이 규정한 절차와 신택스(syntax)에 따라서 코딩된 비디오 데이터를 생성하는 코딩 엔진(1150)과 레퍼런스 픽처 캐시(1160)를 포함할 수 있다. 제2 코딩 시스템(1140)도 또한 코딩 엔진(1170)과 레퍼런스 픽처 캐시(1180)("암시 레퍼런스 픽처 캐시"라고도 불림)를 포함할 수 있다. 제2 코딩 시스템(1140)은 표준화된 코딩 시스템(1130)의 프로토콜들에 명시된 동일한 예측 코딩 기술들 대부분에 따라서 입력 데이터를 코딩할 수 있지만, 언급한 바와 같이, 예측은 암시 레퍼런스 프레임들을 참조하여 실행될 수 있다. 따라서, 제2 코딩 시스템(1140)으로부터 출력된 코딩된 비디오 데이터는 암시 레퍼런스 프레임들에 대한 참조를 지원하는 신택스를 따를 수 있다. 인코더(1100)는 또한 그의 동작을 관리하는 제어기(1190)를 포함할 수 있다.
동작 동안, 인코더(1100)는 입력 비디오 데이터를 코딩할 때, 제어기(1190)는 비디오 데이터 내의 배경 요소를 식별하기 위해 코딩된 비디오 데이터를 처리하고 암시 레퍼런스 프레임들의 생성을 트리거(trigger)할 수 있다. 제어기(1190)는 인코더(1100)로 하여금 도 8 또는 도 9의 방법들을 작업하게 할 수 있다. 도 10의 실시 예에서, 비-표준화된 코더(1140)는 표준화된 코더(1130)가 저장하고 있는 레퍼런스 프레임들로부터 암시 레퍼런스 프레임들을 생성할 수 있다. 제어기(1190)는 그 자신의 픽처 분석기를 포함할 수 있으며, 이 유닛은 도 10에 개별적으로 도시되어 있지 않다. 암시 레퍼런스 캐시(1180)에 그 자신의 레퍼런스 프레임 데이터가 채워져 있으면, 새로운 입력 비디오 데이터가 표준화된 코더(1130) 또는 비-표준화된 코더(1140)에 의해서 코딩될 수 있다. 제어기(1190)는 코딩 엔진(1150, 1170)과 함께 어느 코더(1130, 1140)가 입력 프레임에 대한 최상(best)의 코딩 기회를 제공하는지를 판정할 수 있다. 어느 코더(1130, 1140)가 "최상인"지를 선택할 때, 코더는 통상 코딩 효율, 에러 회복력(error resiliency) 등과 같은, 국부적 실시 코딩 정책에 의해 구동되는 요인들을 고려한다. 새로운 입력 프레임을 위한 코더(1130, 1140)를 선택하였으면, 제어기(1190)는 선택된 코더(예로서, 코더(1140))에게 프레임을 코딩하고 이 프레임의 코딩된 비디오 데이터를 그의 각 채널(OB CH)을 거쳐서 출력하게 할 수 있다. 제어기(1190)는 코딩 동작을 반복하고 입력 비디오 시퀀스가 소진될 때까지 새로운 암시 레퍼런스 프레임들의 생성을 트리거할 수 있다.
코딩 엔진(1150, 1170)들이 개별 유닛으로 도 10에 도시되어 있을지라도, 이들은 모든 경우에 완전히 독립적일 필요는 없다. 언급한 바와 같이, 코딩 엔진(1150, 1170)은 입력 데이터에 대한 공통의 코딩 작업을 실행할 수 있다. 이들은 예측 목적을 위해 상이한 종류의 레퍼런스 프레임, 즉 표준-준수(standards-compliant) 레퍼런스 프레임 대 암시 레퍼런스 프레임을 간단히 이용한다. 이와 같이, 도 10의 인코더가 소비자 장치에 구현될 때, 코딩 엔진(1150, 1170)은 표준-준수 코딩 엔진 또는 암시 레퍼런스 프레임들을 참조하여 동작하는 코딩 엔진으로 동작하도록 상이한 코딩 모드로 실행하는 공통 기능 유닛으로서 제공될 수 있다. 그러한 구현에서, 인코더(1100)는 코딩된 비디오 데이터를 공통 코딩 엔진으로부터 인 밴드 채널 또는 아웃 밴드 채널로 적절하게 라우트하기 위한 부가의 시스템들(도시 생략)을 포함할 수 있다.
도 10은 이 실시 예에 따른 비디오 디코더(1200)을 보여주고 있다. 비디오 디코더(1200)는 인코더(1100)가 실행한 코딩 작업을 인버트(invert)하는 디코딩 작업을 실행할 수 있으며, 그와 같이, 디코더(1200)는 인코더(1100)의 아키텍처의 카운터파트인 아키텍처를 포함할 수 있다. 비디오 디코더(1200)는 인 밴드 채널에 수신된 코딩된 비디오 데이터를 수신하여 디코딩하는 표준화된 디코더(1210)를 포함할 수 있다. 이는 아웃 오브 밴드 채널에 수신된 코딩된 비디오 데이터를 수신하여 디코딩하는 표준화된 디코더(1220)를 더 포함할 수 있다. 각각의 디코더(1210, 1220)는 각각의 디코딩 엔진(1230, 1240) 및 레퍼런스 픽처 캐시(1250, 1260)를 포함할 수 있다. 비디오 디코더(1200)는 디코딩된 비디오 데이터를 공통 출력 비디오 시퀀스로 병합하는 디멀티플렉서(1270), 포스트-프로세서(1280) 및 제어기(1290)를 더 포함할 수 있다.
디코더(1210, 1220)는 각각 인코더(1100)에서 카운터파트 코더(1130, 1140)에 의해 실행된 코딩 작업을 인버트할 수 있다. 따라서, 인 밴드 채널(IB CH)을 통해서 수신된 코딩된 비디오 데이터는 레퍼런스 픽처 캐시(1250)에 저장된 예측 데이터를 이용하여 디코딩 엔진(1230)에 의해 디코딩될 수 있다. 더욱이, 아웃 오브 밴드 채널(OB CH)을 통해서 수신된 코딩된 비디오 데이터는 암시 레퍼런스 픽처 캐시(1260)에 저장된 예측 데이터를 이용하여 디코딩 엔진(1240)에 의해 디코딩될 수 있다. 인코더(1100)의 경우와 같이, 디코딩 엔진(1230, 1240)은 독립적인 유닛으로 도시되어 있지만, 이들이 독립적으로 이용될 필요는 없다. 디코딩 엔진(1230, 1240)은 그들에 입력된 코딩된 비디오 데이터에 대해서 공통적인 코딩 작업을 실행할 수 있지만 이들은 예측 목적을 위해 다른 유형의 레퍼런스 프레임, 즉 표준-준수 레퍼런스 프레임 대 암시 레퍼런스 프레임을 이용할 수 있다. 따라서, 도 10의 디코더(1200)가 소비자 장치에 구현될 때, 디코딩 엔진(1230, 1240)은 표준-준수 코딩 엔진 또는 암시 레퍼런스 프레임을 참조하여 동작하는 코딩 엔진으로서 동작하도록 상이한 코딩 모드로 실행하는 공통 기능 유닛으로서 제공될 수 있다.
제어기(1290)는 디코더(1200)의 동작을 관리할 수 있다. 이 제어기는 비-표준화된 디코더(1220)로 하여금 아웃 오브 밴드 채널을 통해서 수신된 명령에 응답해서 암시 레퍼런스 프레임들을 생성하도록 할 수 있다. 이 제어기는 디코더 내의 도 8 또는 도 9의 방법의 동작을 관리할 수 있으며 디코더(1200)로 하여금 확인응답 메시지를 인코더(1100)에 되돌려줄 수 있게 할 수 있다.
본 발명의 원리의 응용은 다양한 실시간 비디오 코딩 응용 및 네트워킹 구현에서 찾아볼 수 있다. 도 2 및 도 10의 코딩/디코딩 시스템은 암시 레퍼런스 프레임들이 단말기 장치에 구축되어 있는 구현을 보여주고 있을지라도, 다른 구현들도 가능하다. 예를 들어, 도 1에 가상으로 도시된 바와 같이, 암시 레퍼런스 프레임들은 네트워크 안에 제공된 다지점 회의 유닛(MCU:multi-point conference unit)(130)에 의해 이용될 수 있다. MCU는 보통 복수의 단말기가 공통 비디오회의에 참여하고 있는 다자간 회의 서비스를 지원하는데 이용될 수 있다. 비디오회의 동안, 각각의 단말기는 단말기의 위치에서 국부적으로 캡처된 비디오 데이터를 코딩하여 이를 MCU(130)에 전송할 수 있다. MCU(130)는 전송된 비디오 데이터를 디코딩하고 전송된 데이터를 다른 단말기들 각각을 위한 비디오 시퀀스로 통합할 수 있다. 예를 들어, MCU는 단말기(2 및 3)로부터의 디코딩된 비디오 데이터를 단말기(1)에 코딩되어 전달되는 비디오 시퀀스(아마도, 분리 스크린 프리젠테이션(split screen presentation) 또는 "팔로우 더 스피커(follow the speaker)" 프리젠테이션)로 통합할 수 있다. 동시에, MCU(130)는 단말기(2)로의 코딩 및 전달을 위해 단말기(1 및 3)로부터의 디코딩된 비디오 데이터를 통합할 수 있다. 이러한 식으로, MCU(130)는, 각 단말기가 지점 대 지점 통신(각 단말기로부터 MCU(130)로)에 참여하게 하지만 코딩된 비디오 콘텐츠를 비디오 회의에 참여한 다른 단말기들 각각에 전송하고 이들로부터 코딩된 비디오 콘텐츠를 수신할 수 있게 해주는 중간 에이전트로서 역할을 한다.
그러한 실시 예에서, MCU(130)는 비디오 회의에 참여한 단말기들에 대한 암시 레퍼런스 프레임들을 이용할 수 있다. 단말기(110.2)가 암시 레퍼런스 프레임들을 지원하면, MCU(130)와 단말기(110.2) 간의 통신은 도 8 또는 도 9에 도시된 바와 같이 진행될 수 있다. 더욱이, 다른 단말기(즉, 단말기(110.3))가 암시 레퍼런스 프레임들을 지원하지 않을지라도 단말기(110.2)와의 통신은 이러한 식으로 진행될 수 있다.
물론, MCU(130)가 모든 다자간 비디오회의 응용에 관여할 필요는 없다. 몇몇 실시 예에서, 다자간 비디오회의는 중간 에이전트가 없어도 단말기들(110.1-110.3) 간에 직접 지원될 수 있다. 그러한 실시 예에서, 단말기들은 도 2 또는 도 10에 도시된 바와 같이 쌍으로 된 인코더와 디코더를 설치할 수 있다. 쌍으로 된 인코더/디코더들은 단말기들 간에 모두 쌍의 관계로 설치될 수 있다. 따라서, 단말기(110.1)가 단말기(110.2 및 110.3)와의 동시 통신을 구축한 다자간 비디오회의에 참여한다면, 단말기(110.1)는 단말기(110.2)와는 제1 쌍의 관계를 설정하고 단말기(110.3)와는 제2 쌍의 관계를 설정할 수 있다. 이 예에서, 도 2 또는 도 10의 아키텍처는 단말기(110.1)가 속하는 각각의 쌍의 관계에 대해 복제될 수 있다. 그리고, 물론, 단말기(110.1)는 다른 단말기(110.3)가 암시 레퍼런스 프레임들을 지원하지 않을지라도 그러한 암시 레퍼런스 프레임들을 지원하는 제1 단말기(즉, 단말기(110.2))와 쌍을 이룰 때 암시 레퍼런스 프레임을 이용할 수 있다.
앞의 논의는 본 발명의 다양한 실시 예에 따라 구축된 비디오 코딩 시스템에 이용될 수 있는 기능 블록들을 식별한다. 실제로, 이들 시스템은, 통합 비디오 카메라(예를 들어, 카메라-가능 폰, 엔터테인먼트 시스템 및 컴퓨터)를 갖춘 모바일 장치 및/또는 비디오회의 장치 및 카메라-가능 데스크톱 컴퓨터와 같은 유선 통신 시스템 등의 다양한 장치에 적용될 수 있다. 몇몇 응용에서, 위에 설명한 기능 블록들은 통합 소프트웨어 시스템의 요소로서 제공될 수 있고, 이 시스템에는 이들 블록이 컴퓨터 프로그램의 개별 요소로서 제공될 수 있다. 다른 응용에서, 기능 블록들은 디지털 신호 프로세서 또는 응용 주문형 집적 회로 내의 기능 유닛과 같은, 처리 시스템의 이산 회로 구성요소로서 제공될 수 있다. 본 발명의 또 다른 응용은 전용 하드웨어와 소프트웨어 구성요소의 하이브리드 시스템으로 구현될 수 있다. 더욱이, 여기 설명된 기능 블록들은 개별 유닛으로 제공될 필요는 없다. 예를 들어, 도 2 및 도 10이 비디오 코더와 디코더의 구성요소를 개별 유닛으로 보여주고 있을지라도, 하나 이상의 실시 예에서, 그들 모두 또는 일부가 통합될 수 있고 이들이 개별 유닛일 필요는 없다. 그러한 구현의 상세는 위에 다른 언급이 없다면 본 발명의 동작에 중요하지 않다.
더욱이, 여기에 보여준 도면들은 본 발명의 대상을 제시하는데 필요한 만큼만 세부 사항을 보여주고 있다. 실제로는, 비디오 코더와 디코더는 통상 도시된 코딩 파이프라인 전반에 데이터를 저장하기 위한 버퍼와 통신 네트워크와 그 카운터파트인 코더/디코더 장치와의 통신을 관리하기 위한 통신 송수신기를 포함해서, 여기에 설명한 것들 이외에 기능 유닛을 포함한다. 그러한 요소들은 명료함을 위해 앞의 논의에서 생략되었다.
본 발명의 몇몇 실시 예들이 구체적으로 도시되고 및/또는 설명되었다. 그러나, 본 발명에 대한 수정과 변형은 앞의 가르침에 포함되어 있으며 본 발명의 정신 및 의도된 범위를 벗어남이 없이 첨부 청구항의 범위에 속함이 이해될 것이다.
Claims (59)
- 비디오 코더 관리 방법으로서,
복수의 레퍼런스 픽처(reference pictures)의 코딩된 데이터를 디코딩하는 단계 - 코딩된 레퍼런스 픽처 데이터는 인코더와 디코더 간의 채널에서 전송됨 -,
디코딩된 레퍼런스 픽처들을 레퍼런스 픽처 캐시에 저장하는 단계,
복수의 저장된 레퍼런스 픽처로부터 암시 레퍼런스 픽처(implied reference picture)를 도출하는 단계, 및
상기 암시 레퍼런스 픽처를 상기 레퍼런스 픽처 캐시에 저장하는 단계
를 포함하는 비디오 코더 관리 방법. - 제1항에 있어서,
상기 암시 레퍼런스 픽처는 상기 채널을 통한 전송 없이 도출되는 비디오 코더 관리 방법. - 제1항에 있어서,
상기 레퍼런스 픽처들 간에 검출된 공통성(commonality)의 영역들로부터 암시 레퍼런스 픽처 데이터가 도출되는 비디오 코더 관리 방법. - 제1항에 있어서,
이미지 배경에 속하는 것으로서 식별된 상기 레퍼런스 픽처들의 픽셀 블록들로부터 암시 레퍼런스 픽처 데이터가 도출되는 비디오 코더 관리 방법. - 제4항에 있어서,
픽셀 블록들은 각각의 픽셀 블록들의 모션에 기초하여 상기 이미지 배경에 속하는 것으로서 식별되는 비디오 코더 관리 방법. - 제4항에 있어서,
레퍼런스 프레임의 픽셀 블록들은, 상기 픽셀 블록들의 모션 벡터들과 상기 레퍼런스 픽처의 전체 모션(global motion)의 비교에 기초하여 상기 이미지 배경에 속하는 것으로서 식별되는 비디오 코더 관리 방법. - 제4항에 있어서,
레퍼런스 프레임의 픽셀 블록들은, 상기 픽셀 블록들과, 공간적으로 이웃하는 픽셀 블록들 간의 상관성(correlation)에 기초하여 상기 이미지 배경에 속하는 것으로서 식별되는 비디오 코더 관리 방법. - 제1항에 있어서,
상기 저장된 암시 레퍼런스 픽처를 참조하여 새로운 입력 프레임을 예측 코딩(predictively coding)하는 단계를 더 포함하는 비디오 코더 관리 방법. - 제1항에 있어서,
상기 저장된 암시 레퍼런스 픽처를 참조하여 새로운 프레임의 코딩된 비디오 데이터를 디코딩하는 단계를 더 포함하는 비디오 코더 관리 방법. - 제9항에 있어서,
상기 코딩된 비디오 데이터는 예측 레퍼런스로서 암시 레퍼런스 프레임의 식별자를 포함하는 비디오 코더 관리 방법. - 제1항에 있어서,
상기 방법은 인코더에서 실행되고, 상기 레퍼런스 픽처들 및 암시 레퍼런스 픽처를 저장하는 상기 레퍼런스 픽처 캐시는 상기 인코더에 위치하는 비디오 코더 관리 방법. - 제11항에 있어서,
암시 레퍼런스 프레임을 도출하라고 디코더에 명령하는 메시지를 상기 디코더에 전송하는 단계를 더 포함하는 비디오 코더 관리 방법. - 제12항에 있어서,
상기 메시지는 상기 암시 레퍼런스 프레임을 도출하는데 이용될 롱 텀(long term) 레퍼런스 프레임들을 식별하는 비디오 코더 관리 방법. - 제12항에 있어서,
상기 메시지는 상기 암시 레퍼런스 프레임을 도출하는데 이용될 레퍼런스 프레임들을 식별하는 비디오 코더 관리 방법. - 제12항에 있어서,
상기 디코더로부터 상기 메시지에 대한 확인응답(acknowledgment)을 수신한 후에만 상기 저장된 암시 레퍼런스 픽처를 참조하여 새로운 입력 프레임을 예측 코딩하는 단계를 더 포함하는 비디오 코더 관리 방법. - 제1항에 있어서,
상기 방법은 디코더에서 실행되고, 상기 레퍼런스 픽처들 및 암시 레퍼런스 픽처를 저장하는 상기 레퍼런스 픽처 캐시는 상기 디코더에 위치하는 비디오 코더 관리 방법. - 제16항에 있어서,
상기 도출하는 단계는, 암시 레퍼런스 프레임을 도출하라고 상기 디코더에 명령하는 메시지가 인코더로부터 수신되는 것에 응답하여 수행되는 비디오 코더 관리 방법. - 제17항에 있어서,
상기 메시지는 상기 암시 레퍼런스 프레임을 도출하는데 이용될 롱 텀 레퍼런스 프레임들을 식별하는 비디오 코더 관리 방법. - 제17항에 있어서,
상기 메시지는 상기 암시 레퍼런스 프레임을 도출하는데 이용될 레퍼런스 프레임들을 식별하는 비디오 코더 관리 방법. - 제12항에 있어서,
상기 암시 레퍼런스 프레임이 도출된 후에, 상기 메시지의 확인응답을 상기 인코더에 전송하는 단계를 더 포함하는 비디오 코더 관리 방법. - 비디오 코딩 방법으로서,
모션 보상 예측 기술들(motion compensated prediction techniques)에 따라 입력 비디오 데이터를 코딩하는 단계,
레퍼런스 프레임들의 코딩된 데이터를 디코딩하는 단계,
디코딩된 레퍼런스 픽처들을 레퍼런스 픽처 캐시에 저장하는 단계,
상기 디코딩된 레퍼런스 픽처들 간에 검출된 공통성에 기초하여 복수의 저장되는 디코딩된 레퍼런스 픽처로부터 암시 레퍼런스 픽처를 도출하는 단계, 및
상기 암시 레퍼런스 픽처를 상기 레퍼런스 픽처 캐시에 저장하는 단계 - 암시 레퍼런스 픽처들은 나중에 수신되는 입력 비디오 데이터의 모션 보상 예측 코딩에 이용됨 -
를 포함하는 비디오 코딩 방법. - 제21항에 있어서,
상기 암시 레퍼런스 프레임을 참조하여 새로운 소스 프레임을 예측 코딩하는 단계를 더 포함하는 비디오 코딩 방법. - 제22항에 있어서,
상기 새로운 소스 프레임의 코딩된 비디오 데이터는 상기 암시 레퍼런스 프레임을 예측 레퍼런스로서 지정하는 상기 암시 레퍼런스 프레임의 식별자를 포함하는 비디오 코딩 방법. - 제21항에 있어서,
상기 레퍼런스 픽처들 간에 검출된 공통성의 영역들로부터 암시 레퍼런스 픽처 데이터가 도출되는 비디오 코딩 방법. - 제21항에 있어서,
이미지 배경에 속하는 것으로서 식별된 상기 레퍼런스 픽처들의 픽셀 블록들로부터 암시 레퍼런스 픽처 데이터가 도출되는 비디오 코딩 방법. - 제25항에 있어서,
픽셀 블록들은 각각의 픽셀 블록들의 모션에 기초하여 상기 이미지 배경에 속하는 것으로서 식별되는 비디오 코딩 방법. - 제25항에 있어서,
레퍼런스 프레임의 픽셀 블록들은, 상기 픽셀 블록들의 모션 벡터들과 상기 레퍼런스 픽처의 전체 모션의 비교에 기초하여 상기 이미지 배경에 속하는 것으로서 식별되는 비디오 코딩 방법. - 제25항에 있어서,
레퍼런스 프레임의 픽셀 블록들은, 상기 픽셀 블록들과, 공간적으로 이웃하는 픽셀 블록들 간의 상관성에 기초하여 상기 이미지 배경에 속하는 것으로서 식별되는 비디오 코딩 방법. - 제21항에 있어서,
암시 레퍼런스 프레임을 도출하라고 디코더에 명령하는 메시지를 상기 디코더에 전송하는 단계를 더 포함하는 비디오 코딩 방법. - 제29항에 있어서,
상기 메시지는 상기 암시 레퍼런스 프레임을 도출하는데 이용될 롱 텀 레퍼런스 프레임들을 식별하는 비디오 코딩 방법. - 제29항에 있어서,
상기 메시지는 상기 암시 레퍼런스 프레임을 도출하는데 이용될 레퍼런스 프레임들을 식별하는 비디오 코딩 방법. - 제29항에 있어서,
상기 디코더로부터 상기 메시지에 대한 확인응답을 수신한 후에만 상기 저장된 암시 레퍼런스 픽처를 참조하여 새로운 입력 프레임을 예측 코딩하는 단계를 더 포함하는 비디오 코딩 방법. - 비디오 디코딩 방법으로서,
모션 보상 예측 기술들에 따라 코딩된 비디오 데이터를 디코딩하는 단계,
디코딩된 레퍼런스 픽처들을 레퍼런스 픽처 캐시에 저장하는 단계,
상기 레퍼런스 픽처들 간에 검출된 공통성에 기초하여 복수의 저장된 레퍼런스 픽처로부터 암시 레퍼런스 픽처를 도출하는 단계, 및
상기 암시 레퍼런스 픽처를 상기 레퍼런스 픽처 캐시에 저장하는 단계 - 암시 레퍼런스 픽처들은 나중에 수신되는 입력 비디오 데이터의 모션 보상 예측 디코딩에 이용됨 -
를 포함하는 비디오 디코딩 방법. - 제33항에 있어서,
레퍼런스 채널들의 코딩된 비디오 데이터가 채널을 통해 수신되는 비디오 디코딩 방법. - 제33항에 있어서,
상기 레퍼런스 픽처들 간에 검출된 공통성의 영역들로부터 암시 레퍼런스 픽처 데이터가 도출되는 비디오 디코딩 방법. - 제33항에 있어서,
이미지 배경에 속하는 것으로서 식별된 상기 레퍼런스 픽처들의 픽셀 블록들로부터 암시 레퍼런스 픽처 데이터가 도출되는 비디오 디코딩 방법. - 제36항에 있어서,
픽셀 블록들은 각각의 픽셀 블록들의 모션에 기초하여 상기 이미지 배경에 속하는 것으로서 식별되는 비디오 디코딩 방법. - 제36항에 있어서,
레퍼런스 프레임의 픽셀 블록들은, 상기 픽셀 블록들의 모션 벡터들과 상기 레퍼런스 픽처의 전체 모션의 비교에 기초하여 상기 이미지 배경에 속하는 것으로서 식별되는 비디오 디코딩 방법. - 제36항에 있어서,
레퍼런스 프레임의 픽셀 블록들은, 상기 픽셀 블록들과, 공간적으로 이웃하는 픽셀 블록들 간의 상관성에 기초하여 상기 이미지 배경에 속하는 것으로서 식별되는 비디오 디코딩 방법. - 제33항에 있어서,
상기 도출하는 단계는 암시 레퍼런스 프레임을 도출하라고 디코더에 명령하는 메시지가 인코더로부터 수신되는 것에 응답하여 수행되는 비디오 디코딩 방법. - 제40항에 있어서,
상기 메시지는 상기 암시 레퍼런스 프레임을 도출하는데 이용될 롱 텀 레퍼런스 프레임들을 식별하는 비디오 디코딩 방법. - 제40항에 있어서,
상기 메시지는 상기 암시 레퍼런스 프레임을 도출하는데 이용될 레퍼런스 프레임들을 식별하는 비디오 디코딩 방법. - 제40항에 있어서,
상기 암시 레퍼런스 프레임이 도출된 후에, 상기 메시지의 확인응답을 상기 인코더에 전송하는 단계를 더 포함하는 비디오 디코딩 방법. - 비디오 인코더로서,
모션 보상 예측에 따라 입력 비디오 데이터를 코딩하며, 레퍼런스 픽처들의 코딩된 비디오 데이터를 디코딩하는 코딩 엔진,
디코딩된 레퍼런스 픽처들을 저장하는 레퍼런스 픽처 캐시, 및
상기 레퍼런스 픽처 캐시에 저장된 레퍼런스 픽처들로부터 암시 레퍼런스 프레임들을 도출하며, 암시 레퍼런스 프레임들을 상기 레퍼런스 픽처 캐시에 저장하는 픽처 분석기
를 포함하는 비디오 인코더. - 제44항에 있어서,
암시 레퍼런스 프레임을 도출하라고 디코더에 명령하는 메시지를 상기 디코더에 전송하는 송신기를 더 포함하는 비디오 인코더. - 제45항에 있어서,
상기 메시지는 상기 암시 레퍼런스 프레임을 도출하는데 이용될 롱 텀 레퍼런스 프레임들을 식별하는 비디오 인코더. - 제45항에 있어서,
상기 메시지는 상기 암시 레퍼런스 프레임을 도출하는데 이용될 레퍼런스 프레임들을 식별하는 비디오 인코더. - 제45항에 있어서,
상기 디코더로부터 상기 메시지에 대한 확인응답을 수신한 후에만, 저장된 암시 레퍼런스 픽처를 참조하여 새로운 입력 프레임을 예측 코딩하는 것을 더 포함하는 비디오 인코더. - 제44항에 있어서,
상기 레퍼런스 픽처 캐시는 상기 암시 레퍼런스 프레임들에 대한 식별자들을 저장하는 비디오 인코더. - 제44항에 있어서,
암시 레퍼런스 프레임은 또한 적어도 하나의 다른 암시 레퍼런스 프레임으로부터 도출되는 비디오 인코더. - 제44항에 있어서,
암시 레퍼런스 프레임은 적어도 하나의 다른 롱 텀 레퍼런스 프레임으로부터 도출되는 비디오 인코더. - 비디오 디코더로서,
레퍼런스 픽처들의 코딩된 비디오 데이터를 포함하여, 모션 보상 예측에 따라 코딩된 비디오 데이터를 디코딩하는 디코딩 엔진,
디코딩된 레퍼런스 픽처들을 저장하는 레퍼런스 픽처 캐시, 및
상기 레퍼런스 픽처 캐시에 저장된 레퍼런스 픽처들로부터 암시 레퍼런스 프레임들을 도출하며, 암시 레퍼런스 프레임들을 상기 레퍼런스 픽처 캐시에 저장하는 픽처 분석기
를 포함하는 비디오 디코더. - 제52항에 있어서,
상기 픽처 분석기는 인코더로부터 수신된 명령 메시지에 응답하여 암시 레퍼런스 픽처를 도출하는 비디오 디코더. - 제53항에 있어서,
상기 메시지는 상기 암시 레퍼런스 프레임을 도출하는데 이용될 롱 텀 레퍼런스 프레임들을 식별하는 비디오 디코더. - 제53항에 있어서,
상기 메시지는 상기 암시 레퍼런스 프레임을 도출하는데 이용될 레퍼런스 프레임들을 식별하는 비디오 디코더. - 제53항에 있어서,
암시 레퍼런스 프레임이 도출된 후에, 상기 메시지의 확인응답을 상기 인코더에 전송하는 송신기를 더 포함하는 비디오 디코더. - 제52항에 있어서,
상기 레퍼런스 픽처 캐시는 상기 암시 레퍼런스 프레임들에 대한 식별자들을 저장하는 비디오 디코더. - 제52항에 있어서,
암시 레퍼런스 프레임은 또한 적어도 하나의 다른 암시 레퍼런스 프레임으로부터 도출되는 비디오 디코더. - 제52항에 있어서,
암시 레퍼런스 프레임은 적어도 하나의 다른 롱 텀 레퍼런스 프레임으로부터 도출되는 비디오 디코더.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161429309P | 2011-01-03 | 2011-01-03 | |
US61/429,309 | 2011-01-03 | ||
US12/986,703 | 2011-01-07 | ||
US12/986,703 US8842723B2 (en) | 2011-01-03 | 2011-01-07 | Video coding system using implied reference frames |
PCT/US2012/020037 WO2012094290A1 (en) | 2011-01-03 | 2012-01-03 | Video coding system using implied reference frames |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130098423A true KR20130098423A (ko) | 2013-09-04 |
KR101607735B1 KR101607735B1 (ko) | 2016-03-30 |
Family
ID=46380766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020137017336A KR101607735B1 (ko) | 2011-01-03 | 2012-01-03 | 암시 레퍼런스 프레임을 이용하는 비디오 코딩 시스템 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8842723B2 (ko) |
EP (1) | EP2661896A4 (ko) |
JP (1) | JP5731672B2 (ko) |
KR (1) | KR101607735B1 (ko) |
CN (1) | CN103299644B (ko) |
DE (1) | DE112012000397T5 (ko) |
TW (1) | TWI505695B (ko) |
WO (1) | WO2012094290A1 (ko) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9055304B2 (en) * | 2011-07-01 | 2015-06-09 | Qualcomm Incorporated | Reduced resolution pixel interpolation |
EP3576412B1 (en) * | 2011-11-08 | 2021-09-01 | Nokia Technologies Oy | Reference picture handling |
US9195606B2 (en) | 2013-03-15 | 2015-11-24 | Intel Corporation | Dead block predictors for cooperative execution in the last level cache |
US10070142B2 (en) * | 2014-11-11 | 2018-09-04 | Cisco Technology, Inc. | Continuous generation of non-displayed reference frame in video encoding and decoding |
EP3292691A4 (en) * | 2015-05-29 | 2019-01-23 | HFI Innovation Inc. | METHOD FOR MANAGING DECODED IMAGE PADS FOR THE INTRA-IMAGE BLOCKS COPYING METHOD |
US10313685B2 (en) | 2015-09-08 | 2019-06-04 | Microsoft Technology Licensing, Llc | Video coding |
US10595025B2 (en) | 2015-09-08 | 2020-03-17 | Microsoft Technology Licensing, Llc | Video coding |
US20170105004A1 (en) * | 2015-10-07 | 2017-04-13 | Qualcomm Incorporated | Methods and systems of coding a predictive random access picture using a background picture |
US10063861B2 (en) | 2015-10-07 | 2018-08-28 | Qualcomm Incorporated | Methods and systems of performing predictive random access using a background picture |
US11032567B2 (en) * | 2018-07-20 | 2021-06-08 | Intel Corporation | Automatic adaptive long term reference frame selection for video process and video coding |
US11457080B1 (en) * | 2018-11-23 | 2022-09-27 | Amazon Technologies, Inc. | Service mesh management |
CN112714322B (zh) * | 2020-12-28 | 2023-08-01 | 福州大学 | 一种面向游戏视频的帧间参考优化方法 |
CN112822520B (zh) * | 2020-12-31 | 2023-06-16 | 武汉球之道科技有限公司 | 一种在线赛事视频的服务器编码方法 |
KR20230128066A (ko) * | 2021-04-09 | 2023-09-01 | 구글 엘엘씨 | 키 프레임 라이브러리를 사용한 고급 비디오 코딩 |
CN113852776B (zh) * | 2021-09-08 | 2024-06-04 | 维沃移动通信有限公司 | 插帧方法及电子设备 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3608489A1 (de) | 1986-03-14 | 1987-09-17 | Bosch Gmbh Robert | Verfahren zur verbesserung der bildsegmentierung einer bildfernsprech-szene |
JPH01198884A (ja) | 1987-10-14 | 1989-08-10 | Toshiba Corp | 画像伝送装置 |
GB8724789D0 (en) * | 1987-10-19 | 1987-11-25 | British Telecomm | Signal coding |
US4951140A (en) | 1988-02-22 | 1990-08-21 | Kabushiki Kaisha Toshiba | Image encoding apparatus |
US5812787A (en) | 1995-06-30 | 1998-09-22 | Intel Corporation | Video coding scheme with foreground/background separation |
JP3628810B2 (ja) | 1996-06-28 | 2005-03-16 | 三菱電機株式会社 | 画像符号化装置 |
JPH10145797A (ja) * | 1996-11-12 | 1998-05-29 | K D D Technol:Kk | 画像符号化方法および装置 |
JP3288985B2 (ja) | 1998-03-02 | 2002-06-04 | 日本電信電話株式会社 | 画像通信方法、画像通信システム、および、画像通信プログラムを記録した記録媒体 |
US6438165B2 (en) * | 1998-03-09 | 2002-08-20 | Lg Electronics | Method and apparatus for advanced encoder system |
JP3779494B2 (ja) | 1998-06-03 | 2006-05-31 | 松下電器産業株式会社 | 動き検出装置及び記録媒体 |
JP3348776B2 (ja) | 1999-04-12 | 2002-11-20 | 日本電気株式会社 | 動画像符号化装置及びその方法 |
US7773670B1 (en) * | 2001-06-05 | 2010-08-10 | At+T Intellectual Property Ii, L.P. | Method of content adaptive video encoding |
JP3823767B2 (ja) | 2001-07-18 | 2006-09-20 | 日本電信電話株式会社 | 動画像の前景背景領域分離方法、及びその方法を用いた条件付画素補填による動画像符号化方法 |
CN1288915C (zh) * | 2002-01-23 | 2006-12-06 | 诺基亚有限公司 | 视频序列的编码和解码方法及相关的视频编码器和解码器 |
US20040032906A1 (en) | 2002-08-19 | 2004-02-19 | Lillig Thomas M. | Foreground segmentation for digital video |
US8040949B2 (en) * | 2003-01-09 | 2011-10-18 | The Regents Of The University Of California | Video encoding methods and devices |
US7609763B2 (en) | 2003-07-18 | 2009-10-27 | Microsoft Corporation | Advanced bi-directional predictive coding of video frames |
US7586924B2 (en) * | 2004-02-27 | 2009-09-08 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Apparatus and method for coding an information signal into a data stream, converting the data stream and decoding the data stream |
US20060188025A1 (en) | 2005-02-18 | 2006-08-24 | Nokia Corporation | Error concealment |
US20070008323A1 (en) | 2005-07-08 | 2007-01-11 | Yaxiong Zhou | Reference picture loading cache for motion prediction |
US8879857B2 (en) * | 2005-09-27 | 2014-11-04 | Qualcomm Incorporated | Redundant data encoding methods and device |
BRPI0714119B1 (pt) * | 2006-07-11 | 2020-09-15 | Interdigital Vc Holdings, Inc | Métodos e aparelho que utilizam imagens de referência virtual |
KR100803611B1 (ko) * | 2006-11-28 | 2008-02-15 | 삼성전자주식회사 | 영상의 부호화, 복호화 방법 및 장치 |
US8428125B2 (en) * | 2006-12-22 | 2013-04-23 | Qualcomm Incorporated | Techniques for content adaptive video frame slicing and non-uniform access unit coding |
JP2010526455A (ja) | 2007-01-23 | 2010-07-29 | ユークリッド・ディスカバリーズ・エルエルシー | 画像データを処理するコンピュータ方法および装置 |
JP2010011075A (ja) * | 2008-06-26 | 2010-01-14 | Toshiba Corp | 動画像符号化及び動画像復号化の方法及び装置 |
US8218831B2 (en) | 2008-06-30 | 2012-07-10 | Cisco Technology, Inc. | Combined face detection and background registration |
US8385404B2 (en) * | 2008-09-11 | 2013-02-26 | Google Inc. | System and method for video encoding using constructed reference frame |
US8325796B2 (en) * | 2008-09-11 | 2012-12-04 | Google Inc. | System and method for video coding using adaptive segmentation |
US9078007B2 (en) * | 2008-10-03 | 2015-07-07 | Qualcomm Incorporated | Digital video coding with interpolation filters and offsets |
-
2011
- 2011-01-07 US US12/986,703 patent/US8842723B2/en not_active Expired - Fee Related
-
2012
- 2012-01-03 DE DE112012000397T patent/DE112012000397T5/de not_active Withdrawn
- 2012-01-03 EP EP12732137.0A patent/EP2661896A4/en not_active Ceased
- 2012-01-03 TW TW101100211A patent/TWI505695B/zh not_active IP Right Cessation
- 2012-01-03 CN CN201280004566.0A patent/CN103299644B/zh not_active Expired - Fee Related
- 2012-01-03 JP JP2013547718A patent/JP5731672B2/ja not_active Expired - Fee Related
- 2012-01-03 KR KR1020137017336A patent/KR101607735B1/ko not_active IP Right Cessation
- 2012-01-03 WO PCT/US2012/020037 patent/WO2012094290A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN103299644A (zh) | 2013-09-11 |
WO2012094290A1 (en) | 2012-07-12 |
DE112012000397T5 (de) | 2013-09-26 |
EP2661896A4 (en) | 2016-04-20 |
EP2661896A1 (en) | 2013-11-13 |
TW201242372A (en) | 2012-10-16 |
TWI505695B (zh) | 2015-10-21 |
CN103299644B (zh) | 2017-06-16 |
US8842723B2 (en) | 2014-09-23 |
KR101607735B1 (ko) | 2016-03-30 |
US20120170654A1 (en) | 2012-07-05 |
JP2014504823A (ja) | 2014-02-24 |
JP5731672B2 (ja) | 2015-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101607735B1 (ko) | 암시 레퍼런스 프레임을 이용하는 비디오 코딩 시스템 | |
US11973937B2 (en) | Signaling of maximum number of triangle merge candidates | |
US20230345027A1 (en) | Selective updating of hmvp table based on coded inter coded block | |
US11317094B2 (en) | Method and apparatus for video coding using geometric partitioning mode | |
US11671612B2 (en) | Method and apparatus for video coding using inter-prediction mode signaling to determine motion vectors | |
US11818377B2 (en) | Method and apparatus for video coding | |
US12113959B2 (en) | Motion vector prediction for video coding | |
AU2023204371A1 (en) | Method and apparatus for video coding | |
US11425414B2 (en) | Method and apparatus for video coding | |
US11553205B2 (en) | Method and apparatus for video coding | |
US20180184101A1 (en) | Coding Mode Selection For Predictive Video Coder/Decoder Systems In Low-Latency Communication Environments | |
US20240323420A1 (en) | Constraint of intra mode for geometric partition mode with inter and intra prediction | |
US10536726B2 (en) | Pixel patch collection for prediction in video coding system | |
US12125171B2 (en) | Video denoising method and apparatus, and storage medium | |
US20220058775A1 (en) | Video denoising method and apparatus, and storage medium | |
US20230396797A1 (en) | Translational motion vector coding in affine mode | |
US20240146903A1 (en) | Context design for coding and decoding syntax elements in inter prediction modes | |
US20230412794A1 (en) | Affine merge mode with translational motion vectors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |