KR20120096585A - 복수의 비디오 스트림을 공동 인코딩하는 방법 및 장치 - Google Patents

복수의 비디오 스트림을 공동 인코딩하는 방법 및 장치 Download PDF

Info

Publication number
KR20120096585A
KR20120096585A KR1020127019085A KR20127019085A KR20120096585A KR 20120096585 A KR20120096585 A KR 20120096585A KR 1020127019085 A KR1020127019085 A KR 1020127019085A KR 20127019085 A KR20127019085 A KR 20127019085A KR 20120096585 A KR20120096585 A KR 20120096585A
Authority
KR
South Korea
Prior art keywords
data
encoded
sequence
encoding
video streams
Prior art date
Application number
KR1020127019085A
Other languages
English (en)
Other versions
KR101353165B1 (ko
Inventor
장-프랑소와 마크
Original Assignee
알까뗄 루슨트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 알까뗄 루슨트 filed Critical 알까뗄 루슨트
Publication of KR20120096585A publication Critical patent/KR20120096585A/ko
Application granted granted Critical
Publication of KR101353165B1 publication Critical patent/KR101353165B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

복수의 비디오 스트림(lV1, lV2, lV3)을 공동 인코딩하는 방법은, 상기 복수의 비디오 스트림(lV1, lV2, lV3)을 수신하는 단계; 복수의 예측된 화소 블럭(PPB1, PPB2, PPB3)의 시퀀스를 구성하는 단계; 및 복수의 인코딩된 잔여 화소 데이터(ERPD1, ERPD2, ERPD3)의 시퀀스를 생성하기 위해 예측된 화소 블럭의 상기 복수의 시퀀스의 상기 예측된 화소 블럭(PPB1, PPB2, PPB3)을 상기 복수의 비디오 스트림(lV1, lV2, lV3)의 대응하는 블럭으로써 처리 및 엔트로피 인코딩하는 단계를 포함하고, 상기 복수의 예측된 화소 블럭(PPB1, PPB2, PPB3)의 시퀀스가 상기 복수의 비디오 스트림(lV1, lV2, lV3)으로부터 생성된 인코딩 구조 데이터(ESD, ESD1, JESD)로부터 구성되고, 상기 복수의 인코딩된 잔여 화소 데이터(ERPD1, ERPD2, ERPD3)의 시퀀스가 상기 복수의 비디오 스트림의 인코딩된 데이터로서 상기 인코딩 구조 데이터(ESD, ESD1, JESD)를 포함하는 참조 데이터(lREF)와 함께 제공된다. 디코딩하는 방법 및 인코더 및 디코더가 또한 개시된다.

Description

복수의 비디오 스트림을 공동 인코딩하는 방법 및 장치{METHOD AND ARRANGEMENT FOR JOINTLY ENCODING A PLURALITY OF VIDEO STREAMS}
본 발명은 복수의 입력 비디오 스트림을 공동 인코딩하는 방법에 관한 것이다.
수 개의 적용예에서, 수 개의 비디오 스트림이 송신 또는 저장전에 동시에 압축될 필요가 있다. 한가지 자명한 해결책은 각각의 스트림을 독립적으로 인코딩하는 것이다. 이는 전반적으로 처리하는 데 많은 전력을 소모하는데 그 이유는 대부분의 기존 인코더가 어느 정도 같은 기준 구조를 가지며, 그 기준 구조에서 처리 용량이 인코딩에 관련된 구문 요소(syntax elements)를 연산하는 것을 포함하기 때문이다. 대부분의 종래의 인코더는 수신된 입력 비디오 데이터 및 그 계산된 인코딩에 관련된 구문 요소로부터 예측된 화소 블럭의 시퀀스를 더 구성한다. 그 후에, 예측된 화소 블럭은 대응 입력 비디오 스트림 블럭으로부터 예측된 화소 블럭을 빼내거나 그 반대의 과정을 수행하는 것을 전반적으로 포함하는 처리가 수행되어 잔여 화소 블럭의 시퀀스가 획득된다. 이러한 처리는 잔여 화소 블럭의 시퀀스를 변환하는 것을 더 포함하고, 인코딩에 관련된 구문 요소에 대해 계속적인 양자화 및 엔트로피 인코딩를 수행해서 종래의 인코딩된 비디오 스트림을 획득한다.
그 인코딩 방법이 현재 널리 사용되지만, 인코딩 방법은 많은 처리 전력을 필요로 하는데 왜냐하면 인코더가 각 입력 스트림에 대해 인코딩에 관련된 구문 요소를 연산할 필요가 있기 때문이다. 이는 많은 처리 노력을 필요로 한다. 수 개의 입력 스트림이 공동 인코딩될 때 특히, 그 처리 노력은 인코딩될 때 입력 스트림의 수만큼 배가될 것이다.
다른 한편으로, 입력 스트림의 전체 세트의 압축 효율을 최대화하는 목적과 함께 모든 입력 스트림을 공동 인코딩하기 위한 대안적인 코딩 메카니즘이 개발되었다. 예로서, MVC로 약칭되는 "멀티뷰 비디오 코딩" 확장자는 H.264/AVC 비디오 코딩 표준의 부록 H로서 최근에 표준화되었다. MVC의 목적은 그 비디오 스트림들간의 유사성을 이용해서 입력 비디오 스트림 세트를 공동 인코딩하기 위한 양호한 압축 성능을 제공하기 위한 것이다. 그 명칭이 암시하듯이, 하나의 잠재적인 적용예는 수 개의 카메라에 의해 얻어진 소정의 장면의 수 개의 뷰(view)를 인코딩하기 위한 것이다. 다수의 뷰를 공동 압축하기 위한 MVC를 사용하게 되면 그 카메라들간의 거리가 짧을수록 보다 양호한 압축이 획득될 것이다. 그러나, MVC 방식의 결점은 코드화된 스트림들간의 강한 코딩 상호의존성을 생성한다는 것이다. 이는, 특히 디코더 측에서 복수의 인코딩된 스트림 중 하나의 비디오 스트림을 디코딩하기 위해서는 뷰간(inter-view) 예측 단계에서 요구되는 모든 다른 뷰로부터의 모든 데이터도 역시 디코딩될 필요가 있다는 결함을 제공하게 된다. 유사하게, 소정의 비디오 스트림을 표시하길 원한다면, 디코더는 MVC 인코딩 방법에 따라, 그 표시될 스트림이 의존하는 모든 인코딩된 스트림을 디코딩해야한다.
따라서, 본 발명의 목적은 인코더 및 디코더 측 모두에서 처리 전력을 덜 필요로 하는 복수의 비디오 스트림을 인코딩하는 대안의 인코딩 및 디코딩 방법을 기술하는 데 있다.
이러한 본 발명에 따르면, 본 발명의 목적은 복수의 비디오 스트림을 인코딩하는 방법을 제공함으로써 이루어지고, 상기 방법은, 상기 복수의 비디오 스트림을 수신하는 단계, 복수의 예측된 화소 블럭의 시퀀스를 구성하는 단계, 및 복수의 인코딩된 잔여 화소 데이터의 시퀀스를 생성하기 위해 상기 복수의 예측된 화소 블럭의 시퀀스의 상기 예측된 화소 블럭을 상기 복수의 비디오 스트림의 대응하는 블럭으로 처리하고 엔트로피 인코딩하는 단계를 포함하고, 상기 복수의 예측된 화소 블럭의 시퀀스가 상기 복수의 비디오 스트림으로부터 생성된 인코딩 구조 데이터로부터 구성되고, 인코딩된 잔여 화소 데이터의 상기 복수의 시퀀스가 상기 복수의 비디오 스트림의 인코딩된 데이터로서 상기 인코딩 구조 데이터를 포함하는 참조 데이터와 함께 제공된다.
이렇듯, 복수의 인코딩된 잔여 화소 데이터 스트림의 복수의 시퀀스가 인코딩 구조 데이터를 포함하는 참조 데이터와 함께 생성된다. 그러므로, 인코딩 구조 데이터가 상기 복수의 스트림 각각을 대신해서 한번 결정되기만 하면되므로 공동 인코딩 공정 자체가 더 쉬워진다.
실시예에서 상기 처리하고 엔트로피 인코딩하는 단계는 상기 복수의 예측된 화소 블럭의 시퀀스의 예측된 화소 블럭과 상기 복수의 비디오 스트림의 대응하는 블럭간의 차이로부터 잔여 화소 블럭의 복수의 시퀀스를 생성하는 것을 포함하여, 상기 각 시퀀스의 상기 잔여 화소 블럭을 변환하고 양자화하고 엔트로피 인코딩하여 상기 복수의 인코딩된 잔여 화소 데이터의 시퀀스를 획득한다.
다른 실시예에서 상기 인코딩 구조 데이터는 추가로, 인코딩된 인코딩 구조 데이터를 상기 참조 데이터로서 제공하기 위해 엔트로피 인코딩된다.
그 인코딩 구조 데이터가 상기 복수의 비디오 스트림 중 적어도 하나로부터 도출된 중간 스트림으로부터 생성될 수 있다.
그 중간 스트림은 예를 들어, 상기 복수의 비디오 스트림 중 적어도 2개를 평균화함으로써 획득될 수 있으나, 상기 복수의 스트림 중 하나의 선택일 수도 있다.
인코딩 구조 데이터가 상기 복수의 비디오 스트림 중 상기 적어도 2개의 비디오 스트림에 대한 인코딩 결정을 분석하고 상기 인코딩 구조 데이터에 포함되도록 단일 예측 선택을 선택하는 것에 의해 상기 복수의 비디오 스트림 중 상기 적어도 2개로부터도 생성될 수 있다.
실시예에서 상기 분석은 미리 결정된 최적화 기준에 대해 상기 인코딩 결정을 비교하는 것에 기반이 된다.
본 발명은 입력 인코딩 구조 데이터를 포함하는 참조 데이터 및 인코딩된 잔여 화소 데이터의 적어도 하나의 시퀀스를 포함하는 적어도 하나의 인코딩된 비디오 스트림을 디코딩하는 방법에도 관련되고, 상기 방법은, 상기 입력 인코딩 구조 데이터를 포함하는 상기 참조 데이터와 인코딩된 잔여 화소 데이터의 복수의 시퀀스를 수신하는 단계, 및 상기 인코딩 구조 데이터를 포함하는 상기 참조 데이터 및 상기 적어도 하나의 인코딩된 비디오 스트림에 속하는 인코딩된 잔여 화소 데이터의 적어도 하나의 시퀀스를 선택하여, 인코딩된 비디오 스트림에 속하는 인코딩된 잔여 화소 데이터의 상기 적어도 하나의 시퀀스를 상기 인코딩 구조 데이터로 엔트로피 디코딩하고 처리하여, 디코딩된 화소 블럭의 적어도 하나의 시퀀스를 적어도 하나의 디코딩된 비디오 스트림으로서 제공하는 단계를 포함한다.
이렇듯, 인코딩 구조 데이터를 포함하는 참조 스트림과 함께 복수의 인코딩된 잔여 화소 블럭을 수신하는 디코더는, 디코딩될 비디오에 속하는 인코딩된 잔여 화소 데이터의 알맞은 시퀀스 및 참조 스트림을 선택하기만 하면 된다. 최종적으로 디코딩된 화소 블럭을 생성하기 위해, 디코딩 또는 재구성은, 예를 들어, 엔트로피 디코딩 단계와, 예측 구성을 포함하는 처리 단계를 수행함으로써 오히려 쉽게 행해질 수 있다. 수 개의 비디오 스트림이 디코딩될 필요가 있는 경우에, 그 방법의 실시예는, 인코딩 구조가 디코딩될 모든 스트림에 대해 같고, 예를 들어, 예측 구성을 포함하는 상기 처리 단계는 각 스트림의 디코딩된 잔여 화소 블럭 부분에 동일한 동작을 적용하는 것을 의미하는 것이므로, 더 흥미롭다. 이 같은 처리 단계는 디코딩될 모든 스트림에 대해 동일하고, 그들은 예를 들어, 단일 명령(Single Instruction), 다중 데이터(Multiple data), SIMD로 단축된, 접근법을 사용해서 병렬 구현예에서 효과적으로 실행될 수 있다. 동일한 인코딩 구조가 모든 스트림에 의해 공유되고 예측 구성이 공동 병렬 처리에서 효과적으로 구현될 수 있으므로, 수 개의 인코딩된 스트림을 공동 디코딩하는 더 간단한 디코더가 획득된다.
실시예에서, 상기 적어도 하나의 인코딩된 비디오 스트림에 속하는 인코딩된 잔여 화소 데이터의 상기 적어도 하나의 시퀀스가 역 양자화 및 역 변환에 사용되어 디코딩된 잔여 화소 블럭의 적어도 하나의 시퀀스를 얻고, 적어도 하나의 화소 블럭의 예측이 디코딩된 잔여 화소 블럭의 상기 적어도 하나와 결합하기 위해 상기 인코딩 구조 데이터 및 버퍼링된 화소 블럭으로부터 구성되어 디코딩된 화소 블럭의 상기 적어도 하나의 시퀀스를 획득한다.
다른 변형예에서 상기 인코딩 구조 데이터는, 상기 참조 입력 데이터로부터 추출된 인코딩된 인코딩 구조 데이터를 엔트로피 디코딩함에 따라 상기 참조 데이터로부터 도출된다.
본 발명은 본 방법을 수행하는 인코더 및 디코더에도 관련된다.
부가적인 실시예는 첨부된 청구항에서 설명된다.
청구항에서 사용된 용어 '결합된'은 직접적인 연결만으로 제한하지 않도록 해석되야한다. 그러므로, 표현 '장치 B에 결합된 장치 A'의 범위가 장치 A의 출력을 장치 B의 입력에 직접 연결하는 장치 또는 시스템으로 제한되지 않아야한다. 그것은 다른 장치 또는 수단을 포함하는 경로로 되는, A의 출력 및 B의 입력간의, 경로가 존재하는 것을 의미한다. 청구항에 사용된 용어 '포함하는'은 이후에 열거된 수단으로 제한되도록 해석되지 않아야한다. 그러므로, 표현 '수단 A 및 B을 포함하는 장치'의 범위는 구성 A 및 B만으로 구성되는 장치로 제한되지 않는다. 본 발명에서, 그 장치의 관련 구성만이 A 및 B라는 것을 의미한다.
본 발명의 상기 및 다른 목적과 특성은 더 명백해지고 본 발명 자체가 첨부 도면을 참조해서 실시예의 다음 설명에 의해 양호하게 이해될 것이다.
도 1a는 종래의 인코더의 실시예의 기본 방식의 도시도.
도 1b는 종래의 MVC 인코더의 기본 실시예의 도시도.
도 2a는 공동 인코더, 중간 노드 및 개별적인 또는 공동 디코더를 포함하는 종단간 인코딩 및 송신 방식의 도시도.
도 2b는 본 발명에 따라 기존의 AVC 및 MVC와 같은 종래 기술 방법을 사용해서 얻어진 코딩 상호의존성, 및 실시예에 따르는 방법의 개요도.
도 3a는 본 발명에 따른 공동 인코더의 제 1 실시예(JE1)에 대한 도시도.
도 3b는 도 3a의 공동 인코더의 제 1 실시예(JE1)에 포함되는 단일 화상 인코더 모듈(E1)의 실시예에 대한 도시도.
도 3c는 본 발명에 따른 공동 인코더의 제 2 실시예(JE2)의 도시도.
도 3d는 도 3c의 공동 인코더의 제 2 실시예(JE2)에 포함되는 다른 단일 화상 인코더 모듈(E2)의 실시예의 도시도.
도 4는 본 발명에 따른 공동 인코더의 제 3 실시예(JE3)의 도시도.
도 5a는 본 발명에 따른 공동 인코더의 제 4 실시예(JE4)의 도시도.
도 5b는 도 5a의 "공동 형성 인코딩 결정(joint make encoding decisions)" 모듈(JED)의 제 1 실시예(JED1)의 상세도.
도 5c는 도 5a의 "공동 형성 인코딩 결정" 모듈(JED)의 제 2 실시예(JED2)의 상세도.
도 6a는 본 발명에 따른 디코더(JD1)의 제 1 실시예의 도시도.
도 6b는 본 발명에 따른 디코더(JD2)의 제 2 실시예의 도시도.
다음의 설명은 본 발명의 원리만을 설명하게 된다. 그러므로, 당업자는, 본원에 명백히 설명 또는 도시되 있지 않지만, 본 발명의 원리를 구체화하는 다양한 장치를 고안할 수 있다는 것을 알 수 있다. 본원에서 인용된 모든 예 및 조건적인 언어는 본 발명의 원리를 이해할 때 독자에 도움을 주는 교육적인 목적 및 발명자에 의해 본 기술을 더 이해하게 하려는 개념으로 되도록 주로 의도되고, 특정하게 재인용된 예 및 조건에 제한없이 이루어지게 된다. 또한, 본원의 원리, 양태, 실시예를 재인용하는 본원의 모든 설명뿐만 아니라 그 특정한 예는 그것의 구조적 및 기능적 등가물을 포함하게 된다. 또한, 그 등가물은, 구조에 관계없이, 같은 기능을 수행하기 위해 개발된 구성 즉 미래에 개발된 등가물뿐만 아니라 현재 공지된 등가물 둘 다 포함하는 것으로 의도된다.
당업자는 본원의 블럭도가 본 발명의 원리를 구체화하는 예시된 회로의 개념도를 나타내는 것을 알 수 있다. 유사하게, 어떤 흐름도, 순서도, 상태 변이도, 의사 코드 등은, 컴퓨터 또는 프로세서가 명백히 도시되지 않았지만, 컴퓨터 판독가능한 매체에서 거의 표현될 수 있어서 컴퓨터 또는 프로세서에 의해 실행될 수 있는 각종 공정을 표현한다.
본 문서에서 용어 "입력 비디오 스트림" 및 "출력 비디오 스트림"은 실시간 스트리밍 비디오의 형태를 가질 수 있는 입력 및 출력 데이터를 나타내고 (저장된) 데이터 파일들 또는 그 결합에 관련된다. 그러므로, 본 설명에서 설명된 실시예가 그 비디오 데이터의 온라인 및 오프라인 인코딩 및 그 결합체를 나타낸다.
다수의 적용예에서, 같은 콘텐츠이나 화소 단위까지는 완전히 같지 않은 콘텐츠를 나타내는 수 개의 비디오 스트림은 송신 또는 저장 전에 동시에 압축 또는 인코딩될 필요가 있다. 일반적인 예는 서로 근접하게 위치된 여러 카메라로써 화면을 캡쳐할 때 얻어진 비디오 스트림 세트이고, 다시점(multiview) 비디오로 불리운다. 그 적용예에서, 카메라로부터 최대 거리에 놓여있는 물체에 대응하는 화면의 일부에 대해 유사성이 증가한다. 그 물체에서, 다른 카메라들간의 차이는 보통 최소이다. 그 상황은, 예를 들어, 변형예에 인가된 컬러값, 조명값 등에 대해 다른 후처리 때문에 또는 각 버젼이 특정하게 워터마크되므로, 서로 약간 다르게 되는 같은 비디오 콘텐츠의 여러 변형예를 동시에 인코딩하길 원하는 경우에, 발생할 수 있다.
종래의 솔루션은 그 입력 비디오 스트림 각각을 분리해서 인코딩하여 인코딩되는 각 비디오 스트림에 대해 도 1a에 도시된 것과 같은 표준 인코더를 사용한다. 그 도 1a는 일반적인 비디오 인코더(ET)의 주요 구성을 도시한다. 인코딩 공정 자체가 표준화되지 않지만, 대부분의 기존 인코더는, 대부분의 처리가 보통은 비트레이트 또는 품질 측면에서 소정의 제약하에 가장 양호한 압축을 제공하는 인코딩에 관련된 구문 요소(syntax elements)를 연산하는 것을 포함하는, 동일한 참조 아키텍쳐를 따른다. 그 구문 요소는 인코딩되는 입력 비디오 스트림으로부터 계산된다. 그 입력 비디오 스트림은 몇몇 부가 입력 데이터뿐만 아니라 화소 컬러값과 같은 화소 비디오 데이터를 포함할 수 있다. 그 후자는 예를 들어, 화소폭 및 높이로 표현된 프레임 크기, 프레임율, 컬러 공간, 채도 샘플링 형태 등을 포함할 수 있다. 그 입력 비디오 스트림은 한편으로는 그 인코딩 결정을 형성하기 위해 사용된 블럭으로 진행하여, 그 비디오의 이미 디코딩된 부분을 기반으로 화소 데이터의 인트라 예측(intra-prediction) 및 인터 예측(inter-prediction)을 어떻게 구성하는 지를 디코더에게 나중에 설명하는 모든 정보뿐만 아니라 시퀀스 및 화상 파라미터 세트, 슬라이스 및 매크로블럭 헤더와 같은 데이터를 일반적으로 포함하는 인코딩에 관련된 구문 요소를 생성한다. H.264 코딩 표준을 예로서 사용할 때, 거기서 정의된 카테고리 2 구문 요소는 카테고리 0 또는 1, 시퀀스에 대한 구문 요소, 또는 화상 파라미터 세트와 같은 소위 비-VCL NAL(non-VCL NAL) 유닛의 일부 다른 구문 요소과 가능하게는 함께 그 인코딩에 관련된 구문 요소에 대응하기 위해 고려될 수 있다.
본 특허 출원에서 설명되는 일부의 실시예를 양호하게 이해하기 위해, 데이터 분할 특성을 갖는 H.264 코딩 표준이 아래에서 간단하게 설명된다.
H.264 표준에 따라, 각 비디오 프레임은 분할되고 매크로블럭 레벨에서 인코딩되고, 여기서, 각 매크로블럭은 화소의 16×16 블럭이다.
매크로블럭은 병렬화 또는 에러 장애 허용력(resilience)을 허여하기 위해 슬라이스로 함께 그룹화될 수 있다. 각 매크로블럭에 대해, 그 코드된 비트스트림은 첫째, 이미 디코딩된 매크로블럭을 기반으로 그 매크로블럭의 예측을 어떻게 연산하는 지를 디코더에 신호전송하는 데이터와, 둘째, 매크로블럭 화소값을 재구성하기 위해 예측에 디코딩되고 추가되는 잔여 데이터를 포함한다. 각 매크로블럭은, 매크로블럭의 예측이 현재의 슬라이스에서 재구성된 매크로블럭을 기반으로 형성되는 "인트라 예측", 또는 매크로블럭의 예측이 참조 프레임으로 불리우는 이미 디코딩된 프레임에서 화소 블럭을 기반으로 형성되는 "인터 예측"에서 인코딩된다. 인트라 예측 코딩 모드는 그 인코딩된 매크로블럭이 이미 인코딩되고, 디코딩되고 재구성되는 현재의 슬라이스에서 인접하는 샘플로부터 예측되는 현재의 슬라이스내에 공간 예측을 인가한다. 인트라 예측 모드에서 코드화된 매크로블럭은 l형 매크로블럭으로 불리운다. 인터 예측 코딩 모드는 그 인코딩된 매크로블럭이 이전 및/또는 미래의 참조 프레임 내의 샘플로부터 예측되는 임시 예측을 기반으로 된다. 인터 예측 모드에서 코드화된 매크로블럭은, 각 서브-블럭이 단일 참조 프레임으로부터 예측되는 경우에, P형 매크로블럭일 수 있거나, 각 서브-블럭이 하나 이상의 참조 프레임으로부터 예측되는 경우에, B형 매크로블럭일 수 있다.
디폴트 H.264 행위는 라스터-스캔 오더(즉, 좌에서 우로의 스캐닝 라인)로 매크로블럭을 슬라이스로 그룹화한다. 그러나, H.264 표준이 이하에서 FMO로 약칭되는 유연한 매크로블럭 오더링(flexible macroblock ordering)를 나타내는 다른 특성을 또한 도입한다. FMO는 비디오 프레임을 다수의 슬라이스 그룹으로 분할하고, 각 슬라이스 그룹이 비연속 위치에 잠재적으로 있을 수 있고 프레임 내에 어디든 있을 수 있는 매크로블럭 세트를 포함한다.
이송을 위해, 각 슬라이스는 디폴트 모드를 사용하는 유닛인 NAL로 이하에 약칭되는 네트워크 추상화 계층 내에 이송될 수 있다. 그러나, H.264/AVC 표준은 슬라이스를 이송하는 동안 에러 장애 허용력을 개선하기 위해 수 개의 NAL 유닛에 대한 각 슬라이스의 데이터 분할에 대한 추가 특성을 더 설명한다.
수 개의 분할에 대한 하나의 슬라이스의 데이터 분할의 특성에 따라, 하나의 슬라이스의 인코딩된 콘텐츠가 3개의 NAL 유닛: NAL 유닛 분할 A, NAL 유닛 분할 B, 및 NAL 유닛 분할 C로 분배된다.
그 표준에 따라, NAL 유닛 분할 A는 잔여 데이터가 아닌 모든 슬라이스에 관련된 구문 요소를 나타내면서, 그 슬라이스의 카테고리 2 구문 요소를 포함할 것이다. 그 카테고리 2 구문 요소는 인트라 예측 모드, 또는 동작 벡터, 인트라 코드화 또는 인터 코드화된 매크로 블럭 등을 포함하면서, 슬라이스 내의 각 매크로 블럭에 대해 슬라이스 헤더 및 헤더 데이터를 포함한다. NAL 유닛 분할 B는 인트라 예측 코딩을 사용하는 경우에 고려중인 슬라이스의 매크로블럭의 인트라 코드된 잔여 데이터인 카테고리 3 구문 요소를 포함하고, NAL 유닛 분할 C는 그런 코딩 형태를 사용하는 경우에 인터 코드된 잔여 데이터인 카테고리 4 구문 요소를 포함할 것이다.
도 1a에서, 입력 비디오는, 입력 비디오 스트림의 대응하는 블럭과 함께 예측된 화소 블럭을 처리하기 위해 함께 구성되는 수 개의 모듈로 또한 진행된다. 도 1a의 실시예에서, 제 1 모듈은 입력 비디오의 대응 화소 블럭으로부터, 예측 구성 블럭에 의해 제공되는 예측된 화소 블럭을 빼내거나 그 반대도 수행되도록 구성된다. 최종의 잔여 화소 블럭은 또한 변환되고 양자화된다. 다른 실시예에서 그들은 필터링 동작을 거치게 될 수 있다. H.264에서 최종 잔여 화소 데이터는 카테고리 3 및 4 구문 요소에 대응한다. 그들은 H.264에서 카테고리 2 구문 요소과 같은 관련된 구문 요소과 함께 결합된 엔트로피 인코딩을 거치게 될 것이다. 그 결합된 엔트로피 인코딩은 도 1a에 도시된 바와 같이, 우선, 제 1 엔트로피 인코딩이 수행되고 뒤이어 결합 단계가 수행되거나, 반대로, 그들을 엔트로피 인코딩하기 전에 데이터를 우선 결합함으로써 수행될 수 있다. "엔트로피 인코딩"은 표준에서 특정화되는 가변 길이 코딩(Exp-Golomb, CAVLC) 또는 산술 코딩(CABAC)뿐만 아니라 예를 들어, 인트라 예측 모드 또는 동작 벡터의 예측 코딩을 포함하는 구문 요소를 압축하기 위해 인가된 동작 세트를 포함하는 것으로 이해된다.
대부분의 종래의 인코더에서, 블럭 변환 및 양자화의 연산은 진행되나, 보통은 역방향의 피드백 단계가 존재한다. 그 피드백 단계는 인코더가 예측하기 위해 같은 세트의 디코딩된 프레임을 디코더로서 사용하는 것을 보증하기 위해 보통 추가된다. 이와 같은 인코더는, 피드백 단계가 존재하지 않는 "개방-루프"의 반대로서, "폐쇄-루프"라 불린다. 다른 한편으로, 인코더들간의 주요한 미분기는, 프레임 형태, 슬라이싱, 인트라 대 인터 예측의 선택, 인트라 예측 모드의 선택 및 동작 벡터의 연산을 선택하는 것을 의미하는 인코딩 관련된 구문 요소를 정의하는 데 있다. 그래서, 그 단계는 "인코딩 결정 형성" 블럭 내에서 일반적으로 수행되고 디코더에 대해 인코더에 상당한 추가적인 복잡도를 보통 추가한다.
상기 설명했듯이, 복수의 비디오 스트림의 인코딩은 인코딩되는 각 비디오 시퀀스에 대해 최신의 인코더를 사용해서 개별적인 비디오 스트림을 분리해서 인코딩함으로써 성취될 수 있다. 그러나, 그것은 많은 처리 노력을 필요로 한다.
대안으로서, MVC 인코딩은 압축을 개선하기 위해 도입되고, 현재의 H.264/AVC 표준의 제안된 확장자이다. 도 1b에서 개략적으로 도시했듯이, MVC 인코더는 도 1a의 인코더와 같은 정규 H.264/AVC 인코더(ET)에서 존재하는 구성과 같은 구성을 재사용함으로써 구현될 수 있다. MVC에 의해 다수의 입력 화상으로부터의 비디오 프레임의 전체 세트가 비디오 프레임의 단일 시퀀스로서 고려되고, 프레임 리-오더링(re-ordering)의 단계가 정규 H.264/AVC 인코딩에 앞선다. 그래서, 그 다수의 입력들을 공동 인코딩하기 위한 그 MVC 방법이 코딩 상호의존성을 생성한다. 그것은 다음의 예로 이해될 수 있는 데, 다음의 예에서 비디오 화면이 각 비디오 스트림 뷰-1, 뷰-2 및 뷰-3를 생성하는 3개의 카메라로써 캡쳐된다. 그 3개의 뷰들을 공동으로 효율적으로 압축 또는 인코딩하기 위해, 일반적인 MVC 코딩 구조는 도 2b(l)에 예시했듯이, 표준 H.264/AVC 인터 프레임 예측 메카니즘을 사용해서 뷰-1을 정규(단일) 비디오 스트림으로서 인코딩하고, 뷰-2 내의 표준 인터 프레임 예측과 공동으로 뷰-1로부터 예측된 화소 블럭을 사용해서 뷰-2를 인코딩하고 뷰-3 내의 표준 인터 프레임 예측과 공동으로 뷰-1 및 뷰-2로부터의 예측을 사용해서 뷰-3를 인코딩하고, 각 화살표는 참조로서 사용된 프레임으로부터 나오고 인터 예측을 위해 그 참조 프레임을 사용하는 프레임을 가르킨다. 그러므로, 뷰-2를 디코딩하기 위해서는, 뷰-1 및 뷰-2에 대한 데이터가 디코더에 송신되야된다. 뷰-3을 디코딩하기 위해서는, 뷰-1,뷰-2 및 뷰-3에 대한 데이터가 디코더에 송신될 필요가 있다. 그러므로, 단일 뷰 또는 비디오 스트림을 표시하기 위해 요구되는 데이터 및 처리 자원은 어떤 뷰를 요청하는 지에 따라 매우 달라진다.
그러므로, MVC가 압축 효율을 개선할 수 있지만, 그것은 연산적으로 매우 강한 결점을 여전히 갖는다.
도 2b(ll)는 정규 H.264/AVC 인코더를 사용해서 뷰의 인코딩을 분리하는 상호의존성을 도시한다. 그 경우에, 3개의 인코딩된 뷰가 코딩 상호의존성을 보여주지는 않으나 이미 언급했듯이, 그 결점은 각 뷰가 분리되서 압축되야하는 것이어서, 높은 연산 노력을 초래한다.
종래 방법의 그 결점은 본 발명에 따라 공동 인코더 및 디코더의 실시예에 의해 극복된다. 선택적인 중간 노드(lM)를 경유해 수 개의 디코더(JD 및 JD')에 결합된 공동 인코더(JE)의 고 레벨 방식은 도 2a에 도시된다. 본 실시예에서 3개의 비디오 입력 스트림(lV1 내지 lV3)은 공동 인코더(JE)에 제공된다. 그것은 그들로부터 공통 인코딩 구조 데이터를 도출하기 위해 사용된다. 그것은 그 공동 인코더(JE)의, OUTREF로 표기된, 참조 출력에 제공되는 참조 데이터(lREF)에 포함되면서 인코딩되거나 인코딩안된 인코딩 구조 데이터로서 선택적으로 엔트로피 인코딩되고 제공될 수 있다. 공동 인코더(JE)는 입력 비디오 스트림 각각에 대해 인코딩된 잔여 화소 데이터의 시퀀스를 또한 결정하기 위해서도 사용된다. 인코딩된 잔여 화소 데이터의 그 시퀀스가 lV1에 대해서는 ERPD1, lV2에 대해서는 ERPD2, 및 lV3에 대해서는 ERPD3로 각기 표기된다. 본 실시예에서, 그 데이터가 각 출력 단자(OUT1, OUT2, OUT3) 상에 분리된 출력 스트림 또는 데이터로서도 제공된다. 그러나, 다른 실시예에서 그 각 출력 데이터는 다중화 또는 시간-공유 방법으로 전달될 수 있어서 그들이 하나만의 출력 단자 상에 제공될 수 있다. 그 경우에 선택적인 중간 노드가 그들을 도출해야하고 알맞은 것을 정확한 목적지로 진행시켜 하나의 스트림으로 다시 결합된다. 중간 노드에서 수행되는 바와 같이 데이터를 도출하고 데이터를 또한 캡슐화하고 재전송하는 공정은 당업자에게 공지되어 더 논의되지 않는다.
그 중간 노드(lM)는 알맞은 데이터를 그 목적지에 더 진행하도록 식별 및 도출하기 위해서도 사용된다. 그것은 복수의 인코딩된 잔여 데이터 스트림을 필터링하고 도 2a의 2개의 디코더(JD 및 JD')로 되는 최종 목적지로 더 송신하기 위해 필요로 된 비디오 데이터를 이송 스트림으로 캡슐화함으로써 수행될 수 있다. 도 2s에서 디코더(JD')만이 제 3 비디오(lV)의 인코딩된 데이터를 수신하기 위해 필요로 하므로, 중간 노드(lM)는 그 뷰에 속하는 인코딩된 잔여 화소 데이터(ERRD3)로써 참조 데이터만을 도출하고, 그것을 공통 참조 데이터(lREF)와 함께 디코더(JD')에 제공한다. 그 디코더가 그 입력 데이터를 기반으로 제 3 비디오 스트림을 디코딩할 수 있다. 그 디코딩된 비디오 스트림은 DV3로 표기되고 출력 단자(DOUT)에 제공된다.
디코더(JD)는 제 1 및 2 비디오 스트림의 인코딩된 데이터를 수신하기 위해 사용되어, 그 중간 노드가 참조 인코딩 구조 데이터(lREF)와 함께 lV1 또는 lV2의 인코딩된 잔여 화소 데이터(ERPD1 또는 ERPD2)를 제공한다. 그 디코더(JD)에서 모든 그 정보가 원래의 비디오 스트림(lV1 및 lV2)을 가능한 한 양호하게 재구성할 목적으로 정확하게 디코딩된 비디오 데이터를 얻기 위해 디코딩하는 데 사용된다. 디코딩 스트림은 DV1 및 DV2로 표기되고 각 출력 단자(DOUT1 및 DOUT2)에 제공된다. 중간 노드가 존재하지 않는 경우에, 모든 인코딩된 잔여 화소 데이터가 직접 송신되고 디코더에 제공된다. 그 후에, 그 디코더가 디코딩되는 비디오에 속하는 인코딩되는 잔여 화소 데이터뿐만 아니라 참조 인코딩 구조 데이터를 입력 데이터로부터 도출하기 위해 사용된다. 디코딩된 화소 블럭으로 최종적으로 되기 위해, 디코딩 또는 재구성은, 엔트리피 디코딩 단계와 예측 구성을 보통 포함하는 처리 단계를 수행함으로써 오히려 쉽게 행해질 수 있다. 인코딩 구조가 디코딩되는 모든 스트림에 대해 동일하므로, 예측 구성은 각 스트림의 이미 디코딩된 부분에 동일한 동작을 인가하는 데 있다. 그 처리 단계가 디코딩되는 모든 스트림에 대해 동일하므로, 그들이 예를 들어, 단일 명령(Single Instruction), 다중 데이터(Multiple Data), SIMD로 단축된, 접근법을 사용해서, 병렬 구현예에서 효과적으로 실행될 수 있다. 그러므로, 동일한 인코딩 구조가 모든 스트림에 의해 공유되고 예측 구성은 공동 병렬 처리에서 효과적으로 구현될 수 있으므로, 수 개의 인코딩된 스트림을 공동으로 인코딩하는 더 단순한 디코더가 획득될 수 있다.
모든 뷰가 공통 인코딩 구조(lREF)로부터 인코딩됨에 따라, 그 인코딩된 뷰들간의 최종 상호의존성은 도 2b(lll)에 도시된 바와 같이 단순하게 된다.
그 공동 인코더에 의해 인코딩되는 인코딩된 비디오 스트림을 디코딩하기 위해 사용된 공동 인코더 및 디코더에 대한 수 개의 실시예는 현재 설명된다.
도 3a에 도시된 공동 인코더(JE1)의 제 1 실시예는 각 입력 단자(lN1 및 lN2) 상에서 lV 및 lV2로 표기되는 2개의 입력 비디오 스트림을 수신하기 위해 사용된다. ESD(encoding structure data)는 2개의 비디오 스트림들 중 하나를 우선 종래와 같이 인코딩함으로써 결정되어, 중간 참조 스트림으로서 선택된다. 그 선택이 S로 표기된 선택 모듈에서 발생한다. 그 선택은 수 개의 방법으로 행해질 수 있다. 예를 들어, 입력 스트림들 중 하나가 중간 스트림으로서 임의로 선택될 수 있다. 대안적으로, 입력 스트림은 특정한 기준에 따라 또는 경험적인 방법으로 선택될 수 있다. 그 기준은 모든 입력 스트림으로부터 평균 화소값 스트림의 연산에 기초하여 그 평균 스트림에 가장 양호하게 근접하는 입력 스트림이 중간 스트림으로서 선택될 수 있다. 그 선택/근접성은 예를 들어, PSNR 또는 SSIM 값을 사용하는 어떤 미터법에 다시 기반할 수 있다. 장면의 멀티뷰 비디오 캡쳐에 대응하는 입력 스트림의 경우에, 카메라를 선형적으로 배열되는 경우에 중간 뷰를 예로 하는 가장 중심의 뷰에 가장 양호하게 대응하는 스트림이 중간 스트림으로서 선택될 수 있다. 서로에 대해 수 개의 제어 파라미터 값을 사용해서 약간 다른 이미지 필터링을 인가함으로써 얻어지는 입력 스트림의 경우에, 중간 제어 파라미터 값, 또는 입력 스트림을 생성하기 위해 사용된 모든 제어 파라미터 값의 평균에 최근접한 제어 파라미터 값에 대응하는 그 스트림이 선택될 수 있다. 그 필터링은 예를 들어, 색 변화, 조명, 대비, 블러링 등에 대한 다른 값을 인가하는 것을 포함할 수 있고, 그 경우에 변화하는 제어 파라미터가 색 변화 또는 조명 또는 대비를 나타낸다. 그 제어 파라미터의 평균값을 계산한 후 그 평균값에 가장 양호하게 대응하는 스트림을 선택하는 것은 중간 스트림으로 되게 된다.
대안적으로, 그 얻어진 인코딩 구조로 하여금 입력 스트림의 전체 압축에 대해 가장 양호한 평균율-왜곡 성능을 제공하게 하는 입력 비디오는 참조 스트림으로 되도록 또한 선택될 수 있다.
당업자는 상기 언급된 선택 절차를 실현하는 상세한 실시예를 생성하는 데 사용된다. 그러므로, 도 3a에 도시된 것과 같은 선택 모듈(S)의 상세한 실시예는 더 상세하게 설명되지 않을 것이다.
도 3a에 도시된 공동 인코더 실시예(JE1)에서 제 1 비디오 스트림은 중간 스트림으로서 선택되고, 도 3a의 선택 모듈(S)의 SREF 출력 단자상에 제공된다. 그 후에, 그 중간 스트림이 예를 들어, 도 1a에 도시된 인코더와 같은 종래의 인코더(ET)에 의해 종래 기술로 인코딩될 것이다. EVlT로 표기되는 인코딩된 스트림은 인코딩된 데이터의 엔트로피 인코딩을 위해 엔트로피 디코더에 또한 제공되어, 필터가 코딩 구조 자체에 속하는 모든 구문 요소를 계속해서 파싱(parsing)하거나 분석하고 도출할 수 있다. 그것은 잔여 화소 데이터(RPD1)로부터 인코딩 구조 데이터(ESD1)를 분리하게 한다. 그 분석은 일반적으로 필터 동작 자체의 부분이나, 어떤 전용 모듈에 의해 또한 수행될 수 있다. 그 필터링 동작의 결과는 한편으로는 인코딩 구조 데이터 또는 스트림(ESD1), 다른 한편으로는 RPD로 표기되는 잔여 화소 데이터이다. 그 후, ESD1은 도시된 모듈(E1)과 같은 인코더 모듈의 실시예에 대해 입력 참조 데이터로서 사용될 수 있어서 동일한 출원인과 발명자에 의해 및 명칭 "method and arrangement for video coding"으로 동시 계류중인 특허 출원의 요지로 되는 인코더와 강한 유사성을 보인다.
그 인코더 모듈의 실시예(E1)는 도 3b에 도시된다. 그 실시예는 입력 비디오 스트림을 수신하는 제 1 입력 단자(lNEl)를 포함하여, 실제 스트림이나 이미 설명했듯이 저장된 파일일 수 있다. 도 3a-b의 실시예에서 그 입력 비디오는 lV1이다. 그 실시예(E1)는 PPB2로 표기된 예측된 화소 블럭의 시퀀스를 구성하기 위해 및 그 예측된 화소 블럭 및 그 들어오는 비디오 스트림(lV2)의 대응하는 블럭으로부터, RPB2로 표기된, 잔여 화소 블럭의 시퀀스를 생성하기 위해 또한 사용된다. 종래의 인코더와의 차이는 그 실시예(E1)가 필터에 의해 제공되는 ESD1와 같은 인코딩 구조 데이터를 포함하는 참조 데이터를 수신하면서, lNRef로 표기된, 추가의 입력 단자를 포함한다는 것이다. 그 입력 인코딩 구조 데이터(ESD1)는 lV2의 예측된 화소 블럭을 구성하기 위해 현재 사용된다. 그로 인해, 도 1a의 이미 설명된 종래의 인코더(ET)의 복잡도와 비교해서 아주 낮은 복잡도를 갖는 E1이 된다. 인코딩 구조가 그 예측된 화소 블럭을 구성하는 것을 기반으로 추가 입력으로서 됨에 따라, 종래 기술 "인코딩 결정 형성"에서 수행된 바와 같은 비디오 시퀀스의 상세화된 분석이 더 이상 필요로 되지 않는다. 그러므로, E1에 의해 수행된 인코딩 공정의 복잡도가 상당히 감소된다.
잔여 화소 블럭(RPB2)은 종래 기술의 인코더에서 유사한 명칭의 모듈에서 수행된 도 3b의 실시예에서 변환, 양자화 및 엔트로피 인코딩을 또한 거치게 되어 ERPD2로 표기되는 인코딩된 잔여 화소 데이터를 획득한다. 그러나, 다른 실시예에서 모든 처리가 하나의 단일 프로세서에서 이루어질 수 있어서, 다른 모듈들간의 명백한 구별이 되지 않는다.
인코딩된 잔여 화소 데이터(ERPD2)는 도 3b의 모듈(E1)의 제 1 출력 단자(OUTE1)에 출력 데이터로서 제공된다. 본 실시예에서 인코딩 구조 데이터(ESD1)는 또한 엔트로피 인코딩되어 인코딩된 인코딩 구조(EESD1)를 기준 출력 단자(OUTrefE1)에 제공한다.
도 3a에서, 필터에 의해 제공된 잔여 화소 데이터(RPD1)는 같은 명칭의 모듈에서 다시 엔트로피 인코딩된다. 그 인코딩된 잔여 화소 데이터(ERPD1)가 공동 인코더(JE1)의 제 1 출력 단자(OUT1)에 제공된다. E1에 의해 제공된 제 2 입력 비디오(lV2)의 인코딩된 잔여 화소 데이터(ERPD2)가 그 공동 인코더(JE1)의 제 2 출력 단자(OUT2)에 또한 제공된다. 인코딩된 인코딩 구조 데이터(EESD1)가 그 공동 인코더(JE1)의 기준 출력 단자(OUTREF)에 참조 데이터(lREF)로서 제공된다.
다른 대안의 실시예(JE2)는 도 3c에 도시된다. 본 실시예에서 제 1 입력 비디오 스트림은 종래 기술로 인코딩되는 중간 스트림으로서 선택 모듈(S)에 의해 다시 선택된다. 종래 기술의 인코딩은 NAL 유닛 분할을 갖는 H.264 표준에 따르고, 하나의 슬라이스의 인코딩된 콘텐츠가 3개의 NAL 유닛: NAL 유닛 분할 A, NAL 유닛 분할 B, NAL 유닛 분할 C로 분배된다. 그 표준에서, NAL 유닛 분할 A는 잔여 데이터가 아닌 모든 슬라이스에 관련된 구문 요소를 표현하면서, 그 슬라이스의 카테고리 2 구문 요소를 포함할 것이고, 인코딩 구조 데이터에 관련된다. 카테고리 2 구문 요소는 인트라 또는 인터 코딩된 매크로블럭 등을 위해, 인트라 예측 모드 또는 동작 벡터를 포함하는, 슬라이스 내의 각 매크로 블럭에 대한 슬라이스 헤더 및 헤더 데이터를 포함한다. NAL 유닛 분할 B은 인트라 예측 코딩을 사용하는 경우에 고려중인 슬라이스의 매크로블럭의 인터 잔여 데이터인 카테고리 3 구문 요소를 포함하고 NAL 유닛 분할 C는 그런 코딩 형태를 사용하는 경우에 인터 코드화된 잔여 데이터인 카테고리 4 구문 요소를 포함한다. 그 종래의 인코더가 ETH로 표기되고 그 인코딩된 중간 스트림이 EV1Hh로 표기된다. 그것이 그 분할을 NAL 유닛으로 포함함에 따라, 필터는 인코딩된 인코딩 구조 데이터(EESD1)를 포함하는 NAL 유닛 분할 A를 인코딩된 잔여 데이터(ERPD1)를 포함하는 나머지 분할(B 및 C)로부터 쉽게 분리할 수 있다. 2개의 분할이 공동 인코더(JE2)의 제 1 출력 단자(OUT1)에 인코딩된 잔여 화소 데이터(ERPD1)로서 쉽게 제공될 수 있다.
EESD1은 다른 단일 비디오 인코더 모듈(E2)에 대한 입력 데이터로서 역할하고, EESD1을 기준 입력으로서 사용하면서 EV2의 잔여 화소 데이터를 결정하기 위해 또한 사용된다. 이 모듈(E2)의 실시예는 도 3d에서 상세하게 도시된다. 그 실시예만이 비-인코딩된 구조 데이터를 대신해서 참조 데이터(lREF)로서 인코딩된 인코딩 구조 데이터를 수신하기 위해 사용된다는 점에서 도 3b에 도시된 E1과 다르다. 그러므로, E2는 EESD1로부터 비-인코딩된 인코딩 구조 데이터를 결정하기 위해 사용된 엔트로피 디코더(ED1)를 더 포함한다. 그 인코딩 구조 데이터는 lV2에 대한 잔여 화소 데이터(RPD2)를 결정하기 위해 인코더(E1)을 수행시키는 것과 유사한 방법으로 사용될 것이다. 그것들은 또한 처리되고 엔트로피 인코딩되어서 인코딩된 잔여 화소 데이터(ERPD2)를 생성해서 출력 단자(OUTE2)에 제공한다. 공동 인코더(JE2)가 출력 기준 단자(OUTREF)에 참조 데이터(lREF)로서 EESD1을 미리 제공함에 따라, 엔트로피 인코딩(ESD1)에 대해 다시 E2가 필요가 없다. 그러나, 변형된 공동 인코더는 변형된 E2를 포함할 수 있고 여기서 ESD가 JE2의 출력 단자에 제공되기 위해 다시 엔트로피 인코딩된다.
그 공동 인코더는 예를 들어, 스테레오- 또는 멀티뷰-비디오의 압축을 위해 특히 사용된다. 예를 들어, 스테레오스코피 기반의 3차원 비디오 또는 자유 시점 비디오를 사용하는 적용예에서, 사용자가 같은 물체 또는 화면의 수 개의 뷰를 일반적으로 캡쳐해야한다. 예를 들어, 스테레오스코피에서, 2개의 비디오들이 일반적으로 서로 매우 근접하고 있다. 광범위한 시점을 스패닝하는 다수의 비디오 스트림을 캡쳐할 때, 각종 스트림은 서로 근접한 관점으로써 스트림의 클러스터로 일반적으로 그룹화될 수 있다. 2개 이상의 스트림을 근접한 관점으로써 저장 또는 송신하기 위해, 종래 기술의 방법은 각종 뷰를 독립적으로 압축하고 저장/송신한다. 그 종래 기술에서, 복잡도 및 저장/송신 비용은 인코딩하는 뷰들의 수에 선형적으로 스케일될 것이다. 그 공동 인코더(JE1 및 JE2)는 비디오 스트림들중 하나만을 우선 인코딩하고, 예를 들어, JE2에서처럼 NAL 유닛 분할을 갖는 H.264 표준 인코딩 방법을 사용해서 인코딩하는 경우에, 나머지 유사한 비디오 스트림을 효과적으로 인코딩하기 위해 얻어진 스트림의 분할 A에 관련하는 인코딩 구조를 재사용하는 대안을 제공한다. 그것은 후자의 스트림에 대한 인코딩 복잡도를 획기적으로 감소시키고, 그 코딩 표준을 종래의 인코더에서 사용하는 경우에, 모든 스트림으로 하여금 같은 분할 A를 저장/송신 매체상에 공유되게 한다.
도 4에 도시된 공동 인코더의 제 3 실시예(JE3)에서, 공통 인코딩 구조 데이터(EESD)가 모든 또는 일부의 입력 스트림으로부터 얻어진, lS로 표기된, 중간 스트림으로부터 생성된다. 그것은 수 개의 방법으로 다시 행해질 수 있다. 예를 들어, 모든 입력 스트림의 모든 화소값을 평균화하거나, 적용에 따라 소정의 기준을 실행하는 스트림만을 평균화하거나, 또는 입력 스트림의 전체 압축에 대해 레이트-왜곡 성능을 최적화하는 스트림의 화소 데이터에 대한 다른 조작하는 방법이 있다.
본 실시예(JE3)에서 그 중간 스트림(lS)은 입력 스트림을 화소 레벨로 평균화함으로써 생성되고, 그 단계에서 표준 H.264 인코딩을 예로 하는 종래의 인코딩이 그 중간 스트림에 다시 인가된다. 그 종래의 인코더가 다시 ETH로 표기된다. 최종 인코딩된 중간 스트림이 ElSTh로 표기된다. 그 인코딩된 스트림은, 그 하나만이 입력 비디오 스트림(lV1 및 lV2)의 인코딩하는 동안 더 필요로 함에 따라, 분할 A를 필터링하기 위해 다시 필터링될 수 있다. 그 후에, 인코딩 구조 데이터(EESD)를 포함하는 분할 A는 공동 인코더(JE3)의 기준 출력 단자(OUTREF)에 참조 데이터(lREF)로서 제공되고, JE3내에 포함된 2개의 단일 인코더 모듈(E2)에서도 사용될 수 있다. 그 단일 인코더 모듈(E2)의 동작은 도 3d를 참조해서 앞선 문단에서 설명되었다.
그러므로, 도 4의 최좌측 인코더 모듈(E2)은 lV1 및 EEDS를 수신하고 그로부터 lV1에 대한 인코딩된 잔여 화소 데이터(ERPD1)를 생성하기 위해 사용된다. 최우측 인코더 모듈(E2)은 lV2 및 EESD를 수신하고 그로부터 lV2에 대한 인코딩된 잔여 화소 데이터(ERPD2)를 생성하기 위해 사용된다. ERPD1, ERPD2 및 EESD가 JE3의 각 출력 단자(OUT1, OUT2 및 OUTREF)에 제공된다.
도 5a에 도시된 공동 인코더(JE4)의 또 다른 실시예에서, 인코딩 구조 데이터는 인코딩 알고리즘을 모든 입력 스트림에 공동으로 인가함으로써 2개의 입력 스트림(lV1 및 lV2)으로부터 결정된다. 그 공동 인코더(JE4)의 구조가 도 1a의 어떤 시점에서의 기술적 수준을 갖는 인코더(ET)와 일부 유사성을 보이나 주요한 차이는 단일 JESD(Joint Encoding Structure Data) 스트림을 출력하도록 모든 스트림의 버퍼링된 화소 데이터뿐만 아니라 다수의 입력 비디오 스트림을 공동으로 처리하기 위해 사용되는 "인코딩 결정 형성" 블럭(JED)에 있게 된다. 그러나, 다른 실시예는 그 버퍼링된 화소 데이터를 더 고려하지 않고 그 단일 JESD 스트림이 2개 이상만의 입력 비디오 스트림으로부터 도출되는 것을 가능하게 한다.
그 공동 인코딩 구조가 공동 인코더(JE4)내에서도 사용되어 lV1 및 lV2에 대해 예측된 화소 블럭(PPB1 및 PPB2) 각각의 시퀀스를 구성한다. 잔여 화소 블럭(RPB1 및 RPB2)의 각 시퀀스가 예측된 화소 블럭(PPB1 및 PPB2)의 각 시퀀스 및 각 입력 비디오 스트림(lV2 및 lV1)으로부터 대응하는 블럭들간의 차로부터 생성된다. 잔여 화소 블럭의 각 시퀀스가 예를 들어, 변환되고 양자화되는 바와 같이 또한 처리되어 공동 인코더(JE4)의 각 출력 단자(OUT1 및 OUT2)에 제공되는, ERPD1 및 ERPD2로 표기되는, 인코딩된 잔여 화소 데이터의 각 시퀀스를 얻기 위해 계속해서 엔트로피 인코딩되는 양자화된 화소 데이터(QRPD1 및 QRPD2)의 각 시퀀스를 획득한다. 인코딩 구조 데이터(JESD)는 본 실시예에서 인코딩된 인코딩 구조 데이터(EJESD)로서 전달되기 전에 엔트로피 인코딩 단계를 또한 거치게 되어, 공동 인코더(JE4)의 기준 출력 단자(OUTREF)에 참조 데이터(lREF)로서 제공된다.
"공동 인코딩 결정" 블럭(JED)의 2개의 실시예가 도 5b 및 5c를 참조해서 현재 설명된다. 다수의 다른 것도 가능하다는 것을 알 수 있다.
도 5b에 도시된 제 1 실시예(JED1)은 lV1에 대해 "인코딩 결정 1 형성" 및 lV2에 대해 "인코딩 결정 2 형성"으로 표기되는 수 개의 공지된 "단일 인코딩 결정 형성" 블럭을 포함한다. 그것들은 각 입력 비디오 스트림(lV1 및 lV2), 각 버퍼링된 화소 데이터 1 및 버퍼링된 화소 데이터 2로부터 ESD1 및 ESD2로 표기되는 인코딩 구조 데이터를 독립해서 구성하기 위해 사용된다. 그 얻어진 인코딩 구조 데이터(ESD1 및 ESD2)는 모든 입력 비디오 스트림(lV1 및 lV2)에 대한 공동 인코딩 성능에 대해 비교된다. 그 비교는 슬라이스의 입상도 레벨로 수행될 수 있다. 그러나, 당업자는 그것을 매크로블럭 또는 프레임 레벨에서와 같은 다른 입상도 레벨로 일반화시킬 수 있다.
공동 인코딩 데이터 구조(JESD)는 각기 독립적으로 연산된 인코딩 구조 데이터(ESD1 및 ESD2)에 대해 2개의 입력 비디오(lV1 및 lV2)에 대한 그 특정한 슬라이스의 ESD1 및 ESD2에 내재하는 대응하는 예측 및 잔여 양자화 단계를 인가함에 이해 슬라이스로 계산될 수 있다. 그 후에, 그 특정한 인코딩 구조 데이터(ESD1 또는 ESD2)의 공동 성능이 어떤 측정법을 사용해서 평가된다. 그 측정법은 예를 들어, 레이트-왜곡 품질의 결정을 기반으로 될 수 있다. 그 레이트-왜곡 성능에 대해 가장 양호한 품질의 측정값을 생성하는 인코딩 구조 데이터는 공동 인코딩 구조 데이터(JESD)로 되도록 선택된다. 그런 품질 측정값은 예를 들어, 원래의 슬라이스 및 그 특정한 ESD1 또는 ESD2로써 코드화된 슬라이스간의 PSNR의 모든 입력 스트림에 대한 합계를 측정하는 것을 포함할 수 있다. 그런 경우에, 최대 측정값은 그 비교 단계에서 구해진다. 대안적으로, 그 특정한 ESD1 또는 ESD2에 대해 요구된 인코딩 크기의 합계는 그 특정한 인코딩 구조를 사용해서 얻어진 모든 입력 비디오의 잔여분과 함께 결정될 수 있다. 그런 경우에 그 측정에서 최소값을 생성하는 ESD가 선택될 것이다.
도 5c에 도시된 제 2 실시예(JED2)에서, 입력 비디오 스트림(lV1 및 lV2)은 단일 공동 인코딩 구조 데이터 스트림을 생성하기 위해 공동으로 분석된다. 각 매크로블럭에 대해, 인트라 예측의 경우에 인트라 코딩 모드 및 인터 예측의 경우에 동작 벡터의 대응하는 결정뿐만 아니라, 인트라 또는 인터 예측으로 되는, 각 매크로블럭에 대한 예측 모드의 선택과 같은 코딩 결정이 이루어진다. 그 코딩 결정은 EJESD, ERPD2 및 ERPD1의 인코더의 모든 코드화된 출력 스트림의 레이트-왜곡 성능을 공동으로 최적화할 목적으로 이루어진다. 그 최적화는 예를 들어, 설정된 비트레이트 예산하에서 인코더의 모든 출력 스트림의 디코딩된 이미지 품질을 최대화함으로써 행해진다. 대안적으로, 모든 스트림에 대해 요구된 이미지 품질을 보증하는 데 필요한 비트레이트가 최소화될 수 있다. 예로서, 모든 입력 비디오에 대한 P 슬라이스에서 설정된 매크로블럭을 공동으로 처리하는 절차가 현재 설명된다. 각 입력 비디오 스트림(lV1 및 lV2)의 각 매크로블럭 및 기준으로서 사용될 수 있는 이미 코드화된 화소값의 버퍼로부터 대응하는 블럭에서, 인트라 예측을 사용하는 예측된 블럭 세트 및 가능한 인트라 코딩 모드(도 5c에서 i로 나타냄)가 계산되거나 인트라 예측의 경우에 가능한 동작 벡터쌍(x,y) 및 참조 프레임(n)의 세트가 계산된다. 입력 비디오(lV1)에 대한 가능한 예측 선택 세트가 인트라 모드를 나타내는 i를 갖는 Pred1, 및 2차원 동작 벡터를 나타내는 x,y 및 그 동작 벡터를 결정하는 사용되는 참조 프레임수를 나타내는 n을 갖는 Pred1,(x,y)-n으로 표기된다. 유사하게, 입력 비디오 2 에서, 가능한 예측 선택 세트가 인트라 코딩 모드를 나타내는 i를 갖는 Pred2 및 Pred2,(x,y)-n으로 표기된다. 모든 그 예측 모드는 모든 입력 스트림에서 공동 측정법을 사용해서 비교된다. 단일 예측 모드가 그 비교를 기반으로 선택되고, 도 5c에서 선택된 Pred 모드로 표기된 그 선택된 예측이 그 매크로블럭에 대한 공동 인코딩 구조 데이터(JESD)의 일부로 된다. 각 입력 비디오 스트림에 대해 각기 MBpred1 및 MBpred2로 표기된 그 특정한 매크로블럭에 대해 대응하는 예측된 블럭이 입력 스트림(lV1 및 lV2)의 대응하는 블럭과 가능하게는 함께 또한 처리되어 그렇게 얻어진 공동 인코딩 구조 데이터 스트림(JESD)에 포함되는 양자화 파라미터(QP)를 결정한다.
다른 실시예(JED1)에서처럼, 다수의 가능성은 비교 예측 모듈에 의해 수행되는 바와 같이 예측의 비교에 인가되는 측정법을 형성하기 위해 존재한다. 예를 들어, 모든 잔여분의 총 에너지를 최소화할 목적은 가능하다. 그 총 에너지가 모든 입력 비디오에 대한 원래의 및 예측된 화소값간의 제곱차, 및 블럭의 모든 화소에 대한 원래의 및 예측된 화소값간의 제곱차의 합계로서 계산될 수 있다.
양자화 파라미터(QP) 자체의 선택은 예를 들어, 고정된 선택을 기반으로 될 수 있거나, 코드화된 매크로블럭의 총 크기가 설정된 크기의 (비트) 예산에 맞추도록, 선택될 수 있다.
본 실시예(JED2)에서 예측 모드 및 양자화 파라미터(QP)의 선택이 결합되지 않는다. 최신의 인코더와 같이, 당업자는 인코딩 루프(엔트로피 코딩을 포함할 수 있는)의 피드백을 기반으로 예측 모드 및 양자화 파라미터(QP) 모두를 선택하기 위한 방식을 일반화시킬 수 있고, 여기서, 파라미터가 요구된 최소 품질하에서 모든 입력 비디오 스트림에 대한 예를 들어, 인코딩된 MB의 총 크기를 최소화함으로써 총 비트 예산하에서 코드화된 매크로블럭의 총 품질(모든 입력 비디오 스트림에 대한)을 최대화하기 위해, 또는 압축을 최대화하기 위해 선택된다.
또한, 이전의 문단에서 설명된 원리가 양자화 파라미터(QP) 선택을 최적화하기 위해서도 개발될 수 있다. 그것은 QP 매크로블럭값을 최적화하는 라그랑주 최적화와 같은 최신 기술을 사용하는 것을 포함할 수 있어서 전체적인 레이트-왜곡 성능(슬라이스, 프레임 또는 시퀀스 레벨로)을 최적화한다.
도시된 실시예(JE1 내지 JE4)의 대부분은 인코딩된 스트림(데이터 분할을 사용하는 경우에 분할 A로 잠재적으로 패키지된)의 인코딩 구조가 인코더에 의해 만들어진 모든 중요한 코딩 결정: 인트라 및 인터 예측 모드, 화상 버퍼 관리, 동작 벡터 등을 포함한다는 사실을 이용한다. 일단, 그 인코딩 구조가 고정되면, 데이터 분할을 사용하는 경우에, 분할(B 및 C)과 같은 잔여 데이터의 인코딩 공정이 선택된 예측 모드를 인가하고, 잔여 데이터를 연산하고, 정수 블럭 변화 및 양자화를 인가하고 최종적으로 그 얻어진 결과를 엔트로피 코딩하는 것으로만 구성된다. 가장 간단한 형태로, N개의 입력 스트림의 인코딩이 입력 스트림들 중 하나에 각기 대응하는 공통 분할(A) 및 N개(공유안된)의 분할로 구성되는 출력을 생성한다. 하나의 설정되는 코드화된 스트림은 전용화된 분할을 공통 분할로써 조립함으로써 N+1개의 생성된 분할로부터 도출될 수 있다. 디코더가 그 2개의 분할을 처리할 수 있어서 요구된 뷰를 표시한다.
본 발명을 양호하게 사용하는 경우에 강한 유사성을 갖는 입력 스트림에 인가하므로, 특정한 인코딩 구조가 모든 입력 스트림에 대해 효과적인 코딩 결정을 포함할 수 있다. 그러므로, 수 개의 원래의 입력 비디오 스트림의 공동 인코딩에 대해, 모든 스트림에 사용되는 특정한 인코딩 구조로 만들어진 공유된 분할 및 코드화된 잔여 데이터로 만들어진 개별적인 스트림당 전용화된 분할을 제공하는 것은 간단하나 매우 효과적인 방법을 제공한다.
중간 스트림의 선택 또는 생성을 기반으로 하는 실시예에서, 본 발명에 따른 인코더의 또 다른 실시예는 이전에 설명된 실시예들중 하나를 도 1a를 참조해서 설명된 최신의 인코딩 메카니즘과 결합할 수 있다. 예로서, 그 실시예는 중간 스트림의 인코딩 구조를 사용해서 인코딩되는 각 입력 스트림의 각 슬라이스에 대해 도 3c를 참조로 설명된 방법에 따라 그 슬라이스의 잔여 데이터를 우선 연산하기 위해, 그 슬라이스의 예측된 화소 블럭을 추가시킨 후, 피드백 단계에 의해 연산되는 그 얻어져서 디코딩된 슬라이스를 입력 비디오의 같은 슬라이스와 비교하기 위해 사용될 수 있다. 원래의 슬라이스에 대해 예를 들어, PSNR로 약칭되는 최대 신호 대 잡음비를 사용해서 측정되는 디코딩화된 슬라이스의 품질이 소정의 임계값 이하이고, 원래의 슬라이스는 도 1a의 인코더와 같은 최신의 인코더로 다시 보내져서 가장 양호한 품질의 코드화된 슬라이스를 생성하는 새로운 인코딩 구조를 연산한다. 그 경우에, 그 슬라이스에 대한 연산된 코딩 구조가 대응하는 입력 스트림에 관련되는 인코딩된 스트림에 추가된다. 유사하게, 디코딩 공정 동안, 그 슬라이스에 대해 연산되는 인코딩되는 구조는 공통 인코딩 구조를 대신해서 사용될 필요가 있다.
비디오 화상 자체의 슬라이싱은 인코딩 공정 동안에도 선택될 수 있어서 매크로블럭을 다수의 입력 비디오 스트림에 걸쳐 유사성의 기능으로 FMO 슬라이스로 그룹화한다. 뷰에 유사성을 갖는 매크로블럭의 슬라이스가 공통 인코딩 구조를 사용해서 인코딩되는 반면에 다른 입력 비디오에 더 많은 차이를 갖는 매크로블럭의 슬라이스가 각 비디오 입력에 대한 그 FMO 슬라이스에 관련되는 전용화된 인코딩 구조를 출력하는 최신의 인코딩 공정을 독립적으로 사용해서 인코딩된다.
최신의 인코더 및 이전의 실시예에서 도시된 인코더간의 스위칭 결정은 예를 들어, 프레임 레벨 또는 시퀀스 레벨에서 더 거친 입상도로 이루어짐을 알 수 있다.
상기 언급된 공동 인코더와 협조하는 디코더의 2개의 실시예는 도 6a 및 6b를 참조로 현재 설명된다.
도 6a의 디코더(JD1)는 각 입력 단자(lNR1, lNR2, 및 lNR3)에서, ERPD1, ERPD2, 및 ERPD3로 표기되는, 인코딩된 잔여 화소 데이터의 복수의 시퀀스를 수신하기 위해 사용된다. 본 실시예는 입력 인코딩 구조 데이터(ESD)를 포함하는 참조 입력 데이터(lREF)를 수신하는 기준 입력 단자(lNE)를 더 포함한다. 그 디코더가 ESD를 포함하는 참조 인코딩 구조 데이터(lREF)와 함께 그 디코더로 하여금 디코딩되게 하는 인코딩된 비디오 스트림에 속하는 인코딩된 잔여 화소 데이터의 하나 이상의 시퀀스를 선택하기 위해 또한 사용된다. 도 6a의 실시예에서, 디코더(JD1)는 인코딩된 비디오 스트림(EV1 및 EV2)(본 도면에 도시안됨)을 디코딩만 해야해서, 그 디코더가 모든 도착하는 데이터로부터 참조 인코딩 구조 데이터(ESD) 및 인코딩된 잔여 화소 데이터(ERPD1 및 ERPD2)를 도출 또는 필터링하기 위해 사용된다. 그 필터링 또는 도출 동작은 도 6a의 필터링 모듈에 의해 수행되나, 다른 실시예도 가능하다.
도 6a의 실시예에서 참조 입력 데이터(lREF)는 비-인코딩된 형태로 인코딩 구조 데이터(ESD)를 포함해서, 그 디코더가 lREF에서 추가된 처리 단계를 수행해서 그로부터 인코딩 구조 데이터(ESD)를 도출한다. JD1은 잔여 화소 데이터(ERPD1 및 ERPD2)를 엔트로피 디코딩하고 인코딩된 잔여 화소 데이터의 적어도 하나의 시퀀스를 처리하기 위해 사용되어 인코딩된 비디오(EV1 및 EV2)에 대해, DRPB1 및 DRPB2로 표기되는, 적어도 하나의 시퀀스 디코딩된 잔여 화소 블럭을 획득한다. 그 처리가 도 6a에 도시된 역 블럭 변환에 이어지는 역 양자화 단계를 수행하는 것을 포함할 수 있으나, 다른 실시예도 가능하다. 디코더(JD1)는 인코딩 구조 데이터(ESD) 및 각 버퍼링된 화소 데이터로부터 화소 블럭(EPPB1 또는 EPPB2)의 각 예측을 구성하기 위해서도 사용된다. 각 예측(EDPB1, EDPB2)은 각 디코딩된 잔여 화소 블럭(DRPB1 및 DRPB2)과 결합되어 디코딩된 화소 블럭의 각 시퀀스를 생성한다. 그것들은 DPB1 및 DPB2로 표기되고 그들이 각 출력 단자(DOUT1 및 DOUT2)에 각 디코딩된 비디오 스트림(DV1 및 DV2)으로서 제공될 것이다.
도 6b에 도시된 실시예(JD2)는 디코더(JD2)내에서 엔트로피 디코딩되는 인코딩된 인코딩 구조 데이터로서 참조 데이터를 제공한다는 차이를 가지면서 도 6a의 JD1과 유사하다.
본 발명의 원리가 특정한 장치와 연결해서 상기 설명되었지만, 그 설명이 첨부된 청구항에서 한정했듯이 예에 의해 이루어지고 본 발명의 범위를 제한하지 않음을 알 수 있다.

Claims (17)

  1. 복수의 비디오 스트림(lV1, lV2, lV3)을 공동 인코딩하는 방법으로서,
    상기 복수의 비디오 스트림(lV1, lV2, lV3)을 수신하는 단계와,
    복수의 예측된 화소 블럭의 시퀀스(PPB1, PPB2, PPB3)를 구성하는 단계와,
    복수의 인코딩된 잔여 화소 데이터의 시퀀스(ERPD1, ERPD2, ERPD3)를 생성하기 위해 상기 복수의 예측된 화소 블럭의 시퀀스의 상기 예측된 화소 블럭(PPB1, PPB2, PPB3)을 상기 복수의 비디오 스트림(lV1, lV2, lV3)의 대응하는 블럭으로써 처리하고 엔트로피 인코딩하는 단계를 포함하고,
    상기 복수의 예측된 화소 블럭의 시퀀스(PPB1, PPB2, PPB3)가 상기 복수의 비디오 스트림(lV1, lV2, lV3)으로부터 생성된 인코딩 구조 데이터(ESD, ESD1, JESD)로부터 구성되고, 상기 복수의 인코딩된 잔여 화소 데이터의 시퀀스(ERPD1, ERPD2, ERPD3)가 상기 복수의 비디오 스트림의 인코딩된 데이터로서 상기 인코딩 구조 데이터(ESD, ESD1, JESD)를 포함하는 참조 데이터(lREF)와 함께 제공되는
    방법.
  2. 제 1 항에 있어서,
    상기 인코딩 구조 데이터(ESD, JESD, ESD1)는 추가로, 인코딩된 인코딩 구조 데이터(EESD, EJESD, EESD1)를 상기 참조 데이터(lREF)로서 제공하기 위해 엔트로피 인코딩되는
    방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 인코딩 구조 데이터(ESD,ESD1)는 상기 복수의 비디오 스트림 중 적어도 하나로부터 도출된 중간 스트림으로부터 생성되는
    방법.
  4. 제 3 항에 있어서,
    상기 중간 스트림은 상기 복수의 비디오 스트림 중 적어도 2개의 비디오 스트림을 평균화하거나 상기 복수의 스트림 중 하나의 스트림(lV1)을 상기 중간 스트림으로서 선택함으로써 획득되는
    방법.
  5. 제 1 항에 있어서,
    상기 인코딩 구조 데이터(JESD)는, 상기 복수의 비디오 스트림 중 적어도 2개의 비디오 스트림에 대한 인코딩 결정을 분석하고 상기 인코딩 구조 데이터에 포함되도록 단일 예측을 선택하는 것에 의해 상기 복수의 비디오 스트림 중 상기 적어도 2개의 비디오 스트림으로부터 생성되는
    방법.
  6. 제 5 항에 있어서,
    상기 분석은 미리 결정된 최적화 기준에 대해 상기 인코딩 결정을 비교하는 것에 기초하는
    방법.
  7. 입력 인코딩 구조 데이터(ESD)를 포함하는 참조 데이터(lREF) 및 인코딩된 잔여 화소 데이터(ERPD1, ERPD2)의 적어도 하나의 시퀀스를 포함하는 적어도 하나의 인코딩된 비디오 스트림(EV1, EV2)을 디코딩하는 방법으로서,
    입력 인코딩 구조 데이터(ESD)를 포함하는 상기 참조 데이터(lREF)와 인코딩된 잔여 화소 데이터(ERPD1, ERPD2, ERPD3)의 복수의 시퀀스를 수신하는 단계와,
    상기 인코딩 구조 데이터(ESD)를 포함하는 상기 참조 데이터 및 상기 적어도 하나의 인코딩된 비디오 스트림(EV1, EV2)에 속하는 인코딩된 잔여 화소 데이터(ERPD1, ERPD2)의 적어도 하나의 시퀀스를 선택하여, 상기 적어도 하나의 인코딩된 비디오 스트림(EV1, EV2)에 속하는 인코딩된 잔여 화소 데이터의 상기 적어도 하나의 시퀀스(ERPD1, ERPD2)를 상기 인코딩 구조 데이터(ESD)로 엔트로피 디코딩하고 처리하여, 디코딩된 화소 블럭의 적어도 하나의 시퀀스(DPB1, DPB2)를 적어도 하나의 디코딩된 비디오 스트림(DV1, DV2)으로서 제공하는 단계를 포함하는
    방법.
  8. 제 7 항에 있어서,
    상기 적어도 하나의 인코딩된 비디오 스트림에 속하는 인코딩된 잔여 화소 데이터의 상기 적어도 하나의 시퀀스가 역 양자화 및 역 변환에 제공되어, 디코딩된 잔여 화소 블럭의 적어도 하나의 시퀀스(DRPB1, DRPB2)를 획득하고,
    적어도 하나의 예측 화소 블럭(EPPB1, EPPB2)이 디코딩된 잔여 화소 블럭(DRPB1, DRPB2)의 상기 적어도 하나와 결합하기 위해 상기 인코딩 구조 데이터(ESD) 및 버퍼링된 화소 블럭으로부터 구성되어, 디코딩된 화소 블럭의 상기 적어도 하나의 시퀀스(DPB1, DPB2)를 획득하는
    방법.
  9. 복수의 비디오 스트림(lV1, lV2, lV3)을 인코딩하는 인코더(JE, JE1, JE2, JE3, JE4)로서,
    상기 인코더는, 상기 비디오 스트림(lV1, lV2, lV3)을 수신하고, 복수의 예측된 화소 블럭(PPB1, PPB2, PPB3)의 시퀀스를 생성하고, 복수의 인코딩된 잔여 화소 데이터(ERPD1, ERPD2, ERPD3)의 시퀀스를 생성하기 위해 상기 복수의 예측된 화소 블럭의 시퀀스와 상기 비디오 스트림(lV1, lV2, lV3)의 대응하는 블럭을 처리 하고 엔트로피 인코딩하도록 구성되고,
    상기 인코더(JE, JE1, JE2, JE3, JE4)는 추가로, 상기 복수의 비디오 스트림으로부터 인코딩 구조 데이터(ESD, ESD1, JESD)를 생성하고, 상기 인코딩 구조 데이터(ESD, ESD1, JESD)로부터 상기 복수의 예측된 화소 블럭(PPB1, PPB2, PPB3)의 시퀀스를 구성하고, 상기 복수의 인코딩된 잔여 화소 데이터(ERPD1, ERPD2, ERPD3)의 시퀀스와 상기 인코딩 구조 데이터(EESD)를 포함하는 참조 데이터(lREF)를 상기 복수의 비디오 스트림의 인코딩된 데이터로서 각 출력 단자(OUT1, OUT2, OUT3, OUTREF)에 제공하도록 구성되는
    인코더.
  10. 제 9 항에 있어서,
    상기 인코더는 추가로, 상기 복수의 예측된 화소 블럭의 시퀀스의 예측된 화소 블럭(PPB1, PPB2, PPB3)과 상기 복수의 비디오 스트림(lV1, lV2, lV3)의 대응하는 블럭간의 차이로부터 복수의 잔여 화소 블럭(RPB1, RPB2, RPB3)의 시퀀스를 생성하고, 상기 각 시퀀스의 상기 잔여 화소 블럭(RPB1, RPB2, RPB3)을 변환, 양자화 및 엔트로피 인코딩하여 상기 복수의 인코딩된 잔여 화소 데이터의 시퀀스(ERPD1, ERPD2, ERPD3)를 획득하도록 구성되는
    인코더(JE, JE1, JE2, JE3, JE4).
  11. 제 10 항에 있어서,
    상기 인코더는 추가로, 상기 참조 데이터를 인코딩된 인코딩 구조 데이터(EESD)로서 제공하기 위해 상기 인코딩 구조 데이터(ESD)를 엔트로피 인코딩하도록 구성되는
    인코더(JE, JE1, JE2, JE3, JE4).
  12. 제 10 또는 11 항에 있어서,
    상기 인코더는 추가로, 상기 복수의 비디오 스트림(lV1, lV2)중 적어도 하나로부터 도출된 중간 스트림으로부터 상기 인코딩 구조 데이터(ESD)를 생성하도록 구성되는
    인코더(JE, JE1, JE2, JE3).
  13. 제 11 항에 있어서,
    상기 인코더는 추가로, 상기 복수의 비디오 스트림(lV1, lV2)중 적어도 2개의 비디오 스트림을 평균화하거나 상기 복수의 스트림 중 하나의 스트림(lV1)을 중간 스트림으로서 선택함으로써 상기 중간 스트림을 생성하도록 구성되는
    인코더(JE,JE3).
  14. 제 9 항에 있어서,
    상기 인코딩 구조 데이터가 상기 복수의 비디오 스트림 중 상기 적어도 2개의 비디오 스트림에 대한 인코딩 결정을 분석하고 상기 인코딩 구조 데이터에 포함되도록 단일 예측 결정을 선택하는 것에 의해 상기 복수의 비디오 스트림 중 적어도 2개의 비디오 스트림으로부터 생성되는
    인코더(JE, JE4).
  15. 입력 인코딩 구조 데이터(ESD)를 포함하는 참조 데이터 및 인코딩된 잔여 화소 데이터의 적어도 하나의 시퀀스(ERPD1, ERPD2)를 포함하는 적어도 하나의 인코딩된 비디오 스트림을 디코딩하는 디코더(JD, JD1, JD2)로서,
    입력 인코딩 구조 데이터(ESD)를 포함하는 참조 입력 데이터(lREF)와 상기 디코더는 인코딩된 잔여 화소 데이터(ERPD1, ERPD2, ERPD3)의 복수의 시퀀스를 수신하도록 구성되고,
    상기 디코더는 추가로, 상기 적어도 하나의 인코딩된 비디오 스트림(EV1, EV2)에 속하는 인코딩된 잔여 화소 데이터(ERPD1, ERPD2)의 적어도 하나의 시퀀스를 선택하고 상기 참조 입력 데이터(lREF)로부터 상기 인코딩 구조 데이터(ESD)를 도출하여, 상기 인코딩 구조 데이터와 함께 인코딩된 잔여 화소 데이터(ERPD1, ERPD2)의 상기 적어도 하나의 시퀀스를 엔트로피 디코딩하고 처리하여, 디코딩된 화소 블럭(DPB1, DPB2)의 적어도 하나의 시퀀스를 적어도 하나의 디코딩된 비디오 스트림(DV1, DV2)으로서 제공하도록 구성되는
    디코더(JD, JD1, JD2).
  16. 제 15 항에 있어서,
    상기 디코더는 추가로, 상기 적어도 하나의 인코딩된 비디오 스트림에 속하는 인코딩된 잔여 화소 데이터의 상기 적어도 하나의 시퀀스상에서 역 양자화 및 역 변환을 수행하도록 구성되어, 디코딩된 잔여 화소 블럭(DRPB1, DRPB2)의 적어도 하나의 시퀀스를 획득하고,
    적어도 하나의 예측 화소 블럭(EPPB1, EPPB2)이 상기 적어도 하나의 디코딩된 잔여 화소 블럭(DRPB1, DRPB2)과 결합하기 위해 상기 인코딩 구조 데이터(ESD) 및 버퍼링된 화소 블럭으로부터 구성되어, 디코딩된 화소 블럭의 상기 적어도 하나의 시퀀스(DPB1, DPB2)가 획득되는
    디코더.
  17. 제 15 또는 16 항에 있어서,
    상기 디코더는 추가로, 상기 참조 입력 데이터(lREF)로부터 도출되는 인코딩된 인코딩 구조 데이터(EESD)를 엔트로피 디코딩함으로써 상기 인코딩 구조 데이터(ESD)를 도출하도록 구성되는
    디코더(JD2).
KR1020127019085A 2009-12-21 2010-12-20 복수의 비디오 스트림을 공동 인코딩하는 방법 및 장치 KR101353165B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP09290986.0 2009-12-21
EP09290986A EP2355511A1 (en) 2009-12-21 2009-12-21 Method and arrangement for jointly encoding a plurality of video streams
PCT/EP2010/070200 WO2011076713A1 (en) 2009-12-21 2010-12-20 Method and arrangement for jointly encoding a plurality of video streams

Publications (2)

Publication Number Publication Date
KR20120096585A true KR20120096585A (ko) 2012-08-30
KR101353165B1 KR101353165B1 (ko) 2014-01-27

Family

ID=42126071

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127019085A KR101353165B1 (ko) 2009-12-21 2010-12-20 복수의 비디오 스트림을 공동 인코딩하는 방법 및 장치

Country Status (6)

Country Link
US (1) US20120257674A1 (ko)
EP (1) EP2355511A1 (ko)
JP (1) JP5947218B2 (ko)
KR (1) KR101353165B1 (ko)
CN (1) CN102668564B (ko)
WO (1) WO2011076713A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102595108B (zh) * 2011-01-05 2017-02-01 中兴通讯股份有限公司 一种语法元素的编码方法及装置
US9591328B2 (en) 2012-01-20 2017-03-07 Sun Patent Trust Methods and apparatuses for encoding and decoding video using temporal motion vector prediction
MX2013008942A (es) * 2012-02-03 2013-09-12 Panasonic Corp Metodo de codificacion de imagenes, metodo de decodificacion de imagenes, aparato de codificacion de imagenes, aparato de decodificacion de imagenes y aparato de codificacion y decodificacion de imagenes.
CA2866121C (en) 2012-03-06 2018-04-24 Panasonic Intellectual Property Corporation Of America Moving picture coding method, moving picture decoding method, moving picture coding apparatus, moving picture decoding apparatus, and moving picture coding and decoding apparatus
US9762903B2 (en) * 2012-06-01 2017-09-12 Qualcomm Incorporated External pictures in video coding
JP5907016B2 (ja) * 2012-09-12 2016-04-20 富士通株式会社 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、及び動画像通信装置
CN103533353B (zh) * 2013-09-29 2016-11-09 同济大学 一种近似视频编码系统
CN103974070B (zh) * 2014-04-25 2017-08-15 广州市香港科大霍英东研究院 基于多用户输入输出的无线视频传输方法及系统
US11361800B2 (en) * 2017-08-04 2022-06-14 RACYICS GmbH Method for characterization of standard cells with adaptive body biasing
WO2021054380A1 (ja) * 2019-09-20 2021-03-25 日本放送協会 符号化装置、復号装置、及びプログラム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07327242A (ja) * 1994-05-31 1995-12-12 Sanyo Electric Co Ltd 立体動画像圧縮符号化装置及び立体動画像復号再生装置
JPH0993583A (ja) * 1995-09-27 1997-04-04 Nec Corp 画像信号符号化装置
JP3519594B2 (ja) * 1998-03-03 2004-04-19 Kddi株式会社 ステレオ動画像用符号化装置
JP2001186543A (ja) * 1999-12-24 2001-07-06 Sanyo Electric Co Ltd データ符号化装置及び復号化装置
JP3963296B2 (ja) * 1999-12-27 2007-08-22 株式会社Kddi研究所 動画像の伝送レート変換装置
US6700933B1 (en) * 2000-02-15 2004-03-02 Microsoft Corporation System and method with advance predicted bit-plane coding for progressive fine-granularity scalable (PFGS) video coding
JP3812269B2 (ja) * 2000-02-24 2006-08-23 日本ビクター株式会社 動画像符号化装置及びその方法
JP2001285876A (ja) * 2000-03-30 2001-10-12 Sony Corp 画像符号化装置とその方法、ビデオカメラ、画像記録装置、画像伝送装置
JP4193406B2 (ja) * 2002-04-16 2008-12-10 三菱電機株式会社 映像データ変換装置および映像データ変換方法
EP1365592A3 (en) * 2002-05-20 2005-02-09 Broadcom Corporation System, method, and apparatus for decoding flexibly ordered macroblocks
KR20050026318A (ko) * 2003-09-09 2005-03-15 삼성전자주식회사 인트라 스킵 모드를 포함하는 비디오 인코딩_디코딩 장치및 방법
EP2538674A1 (en) * 2004-12-10 2012-12-26 Electronics and Telecommunications Research Institute Apparatus for universal coding for multi-view video
KR100703749B1 (ko) * 2005-01-27 2007-04-05 삼성전자주식회사 잔차 재 추정을 이용한 다 계층 비디오 코딩 및 디코딩방법, 이를 위한 장치
JP4874578B2 (ja) * 2005-06-13 2012-02-15 三菱電機株式会社 画像符号化装置
US8369406B2 (en) 2005-07-18 2013-02-05 Electronics And Telecommunications Research Institute Apparatus of predictive coding/decoding using view-temporal reference picture buffers and method using the same
US7617436B2 (en) * 2005-08-02 2009-11-10 Nokia Corporation Method, device, and system for forward channel error recovery in video sequence transmission over packet-based network
JP2007180981A (ja) * 2005-12-28 2007-07-12 Victor Co Of Japan Ltd 画像符号化装置、画像符号化方法、及び画像符号化プログラム
JP2007180982A (ja) * 2005-12-28 2007-07-12 Victor Co Of Japan Ltd 画像復号装置、画像復号方法、及び画像復号プログラム
US8126054B2 (en) * 2008-01-09 2012-02-28 Motorola Mobility, Inc. Method and apparatus for highly scalable intraframe video coding
JP2009246489A (ja) * 2008-03-28 2009-10-22 Kddi R & D Laboratories Inc 映像信号切替装置
CN101562745B (zh) * 2008-04-18 2012-07-04 华为技术有限公司 一种多视点视频图像编码和解码的方法及装置
CN101494778B (zh) * 2008-10-13 2011-03-23 西南交通大学 一种多视点可伸缩编码框架
CN101557519B (zh) * 2009-05-20 2011-01-05 北京航空航天大学 一种多视点视频编码方法

Also Published As

Publication number Publication date
CN102668564A (zh) 2012-09-12
KR101353165B1 (ko) 2014-01-27
JP5947218B2 (ja) 2016-07-06
EP2355511A1 (en) 2011-08-10
WO2011076713A1 (en) 2011-06-30
CN102668564B (zh) 2017-03-15
US20120257674A1 (en) 2012-10-11
JP2013515415A (ja) 2013-05-02

Similar Documents

Publication Publication Date Title
KR101353165B1 (ko) 복수의 비디오 스트림을 공동 인코딩하는 방법 및 장치
KR102435382B1 (ko) 디코더 측 mv 도출 및 리파인먼트를 위한 개선
US10291934B2 (en) Modified HEVC transform tree syntax
TW201717633A (zh) 用於視訊編碼及解碼的彈性參考影像管理
GB2488830A (en) Encoding and decoding image data
JP7436641B2 (ja) 時間スケーラビリティのためのピクチャタイミング及び復号ユニット情報
CN111953996B (zh) 视频解码的方法和装置
CN110636302B (zh) 视频解码、编码方法和装置、存储介质及解码器、编码器
JP5913542B2 (ja) 動画像符号化のための方法および構成
US11102514B2 (en) Conditionally parsed extension syntax for HEVC extension processing
JP2022513980A (ja) ビデオコーディング方法及び機器
CN110636288B (zh) 视频解码、编码方法和装置及电子设备
KR20220035252A (ko) 비디오 코딩 방법 및 장치
JP7478253B2 (ja) デカップリング変換パーティション分割
US10742979B2 (en) Nonlinear local activity for adaptive quantization
CN110572675B (zh) 视频解码、编码方法和装置、存储介质与解码器、编码器
CN110677647B (zh) 视频解码、编码方法和装置、存储介质与解码器、编码器
CN110572680B (zh) 视频解码、编码方法和装置,存储介质与解码器、编码器
WO2019110560A1 (en) Devices and methods for video reconstruction from multiple source videos
RU2808148C1 (ru) Способ и устройство для кодирования видео
RU2804382C1 (ru) Способ и устройство для кодирования видео
RU2806278C2 (ru) Устройство и способ кодирования видео
RU2793708C1 (ru) Способ и устройство для передачи размера списка кандидатов-предикторов для внутрикадровой компенсации блока
Αλεξάκος Evaluation of multiple slices and tiles in HEVC video encoding
WO2023229817A1 (en) Systems and methods for combining subblock motion compensation and overlapped block motion compensation

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170106

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180105

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 6