KR20050122281A - 픽처 코딩 방법 - Google Patents

픽처 코딩 방법 Download PDF

Info

Publication number
KR20050122281A
KR20050122281A KR1020057020571A KR20057020571A KR20050122281A KR 20050122281 A KR20050122281 A KR 20050122281A KR 1020057020571 A KR1020057020571 A KR 1020057020571A KR 20057020571 A KR20057020571 A KR 20057020571A KR 20050122281 A KR20050122281 A KR 20050122281A
Authority
KR
South Korea
Prior art keywords
coded
pictures
picture
redundant
picture information
Prior art date
Application number
KR1020057020571A
Other languages
English (en)
Inventor
미스카 한눅셀라
Original Assignee
노키아 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 노키아 코포레이션 filed Critical 노키아 코포레이션
Publication of KR20050122281A publication Critical patent/KR20050122281A/ko

Links

Classifications

    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/29Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding involving scalability at the object level, e.g. video object layer [VOL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder

Abstract

본 발명은 픽처들(pictures)을 인코딩하기 위한 방법에 관한 것으로, 주된 코딩 픽처들 및 주된 코딩 픽처들의 중복 코딩 픽처들이 형성되고, 각 주된 코딩 픽처는 각각의 중복 코딩 픽처와 실질적으로 동일한 픽처 정보를 포함한다. 중복 코딩 픽처들중 적어도 하나는 각각의 주된 코딩 픽처의 픽처 정보의 일부에만 대응하는 픽처 정보를 포함한다. 본 발명은 또한 시스템, 인코더, 디코더, 전송 장치, 수신 장치, 소프트웨어 프로그램, 저장 매체, 및 비트스트림에 관한 것이다.

Description

픽처 코딩 방법{Picture coding method}
본 발명은 픽처들(pictures)을 인코딩하기 위한 방법에 관한 것으로, 주된 코딩 픽처들 및 주된 코딩 픽처들의 중복 코딩 픽처들이 형성된다. 본 발명은 또한 시스템, 인코더, 디코더, 전송 장치, 수신 장치, 소프트웨어 프로그램, 저장 매체, 및 비트스트림에 관한 것이다.
공개된 비디오 코딩 표준들은 ITU-T H.261, ITU-T H.263, ISO/IEC MPEG-1, ISO/IEC MPEG-2, 및 ISO/IEC MPEG-4 파트 2를 포함한다. 여기서는 이러한 표준들은 종래의 비디오 코딩 표준들로 지칭된다.
비디오 통신 시스템( Video Communication Systems )
비디오 통신 시스템은 대화형 및 비대화형 시스템으로 나뉘어질 수 있다. 대화형 시스템들은 비디오 회의 및 비디오 전화를 포함한다. 그러한 시스템들의 예시들은 ISDN, IP, 및 PSTN 각각의 네트워크에서 동작하는 비디오 회의/전화 시스템을 상세히 설명하는 ITU-T 권고 H.320, H.323, 및 H.324를 포함한다. 대화형 시스템들은 사용자 경험을 향상시키기 위해 종단간(end-to-end) 지연(오디오-비디오 캡처로부터 말단(far-end)의 오디오-비디오 표현)을 최소화하기 위한 의도로 특징지어진다.
비대화형 시스템들은 DVD들(Digital Versatile Disks) 또는 재생 장치의 대용량 메모리에 저장된 비디오 파일들, 디지털 TV, 및 스트리밍과 같은 저장된 콘텐트의 재생을 포함한다.
ISO/IEC 및 ITU-T의 JVT(Joint Video Team)에서 표준화 노력이 진행중이다. JVT의 연구는 H.26L로 불리는 ITU-T에서의 초기의 표준화 프로젝트에 기초한다. JVT 표준화의 목표는 ITU-T 권고 H.264 및 ISO/IEC 국제 표준 14496-10(MPEG-4 파트 10)과 동일한 표준 텍스트를 공개하는 것이다. 드래프트 표준은 본 논문에서는 JVT 코딩으로 지칭되며, 드래프트 표준에 따른 코덱은 JVT 코덱으로 지칭된다.
코덱 명세(specification) 자체는 개념적으로 비디오 코딩 계층(Video Coding Layer, VCL) 및 네트워크 제거 계층(Network Abstraction layer, NAL)을 구별한다. VCL은 코덱의 신호 처리 기능성(signal processing functionality), 변환과 같은 것들, 양자화, 움직임 검색/보상, 및 루프 필터를 포함한다. 그것은 대부분 오늘날의 비디오 코덱들, 움직임 보상을 가진 인터 픽처 예측을 사용하는 매크로블록-기반의 코더, 및 잔여 신호(residual signal)의 변환 코딩(transform coding)에 따른다. VCL 인코더의 출력은 슬라이스들(slices), 즉 정수의 매크로블록들의 매크로블록 데이터를 포함하는 (슬라이스에 있는 제1 매크로블록의 공간 주소, 초기 양자화 파라미터, 및 유사한 것을 포함하는) 슬라이스 헤더 및 비트스트링의 정보이다. 다른 매크로블록 할당이 정의되지 않는다면, 슬라이스들의 매클로블록들은 소위 탄력적 매크로블록 순서링 신택스(flexible macroblock ordering syntax)를 사용해서 스캔 순서에 따라 연속적으로 순서화(ordering)된다.
NAL은 VCL의 슬라이스 출력을 패킷 지향 멀티플렉스 환경들(packet oriented multiplex environments)에서의 사용 또는 패킷 네트워크들을 통한 전송에 적합한 네트워크 제거 계층 유닛들(Network Abstraction Layer Units, NALUs)로 캡슐화시킨다. JVT's Annex B는 그러한 NALU들을 바이트-스트림 지향 네트워크들을 통해 전송하기 위한 캡슐화 프로세스를 정의하고 있다.
H.263의 선택적인 레퍼런스 픽처 선택 모드 및 MPEG-4 파트2의 NEWPRED 코딩 툴은 각 픽처 세그먼트당 즉, H.263에서의 각 슬라이스당 움직임 보상을 위한 레퍼런스 프레임의 선택을 가능하게 한다. 더욱이, H.263의 선택적인 개선된 레퍼런스 픽처 선택 모드 및 JVT 코딩 표준은 각각의 매크로블록에 대하여 별개로 레퍼런스 프레임의 선택을 가능하게 한다.
레퍼런스 픽처 선택은 많은 타입들의 시간적 범위성 스킴들(temporal scalability schemes)을 가능하게 한다. 도 1은 시간적 범위성 스킴들의 예시를 도시하고 있으며, 여기서는 반복적인 시간 범위성(reculsive temporal scalability)로 지칭된다. 상기 예시적 스킴은 3개의 일정한 프레임 레이트들로 디코딩될 수 있다. 도 2는 비디오 중복 코딩(Video Redundancy Coding)으로 지칭되는 스킴을 기술하고 있으며, 여기서 픽처들의 시퀀스는 인터리빙 방식으로 2개 이상의 독립적으로 코딩되는 스레드들(threads)로 나뉘어진다. 이러한 것들에서의 화살표들 및 모든 이후의 숫자들은 움직임 보상의 방향을 나타내며, 프레임들 밑의 값들은 프레임들의 디스플레이 시낙 및 상대적인 캡처링에 대응한다.
도 8은 일반적인 비디오 통신 시스템(800)의 블록도를 도시하고 있다. 압축되지 않은 비디오는 큰 대역폭을 필요로 한다는 점 때문에, 입력 비디오(801)는 소스 코더(803)에 의해 전송 장치(802)에서 원하는 비트 레이트로 압축된다. 소스 코더(803)는 2 부분, 즉 파형 코더(803.1) 및 엔트로피 코더(entropy coder)(803.2)로 나뉘어질 수 있다. 파형 코더(803.1)는 손실이 많은 비디오 신호 압축을 수행하는 반면, 엔트로피 코더(803.2)는 무손실로 파형 코더(803.1)의 출력을 이진 시퀀스로 변환한다. 전송 코더(804)는 사용중인 전송 프로토콜들에 따라 압축된 비디오를 캡슐화한다. 전송 코더(804)는 또한 다른 방식들로 압축된 비디오를 조작한다. 예를 들면, 전송 코더(804)는 데이터를 인터리빙하고 변조할 수 있다. 다음에, 데이터는 서버 장치(들)(806), 게이트웨이들(미도시) 등을 포함할 수 있는 전송 채널(805)을 통해 수신측으로 전송된다. 수신기(807)는 디스플레이를 위해 재구성되는 비디오 신호를 획득하기 위해 역동작들을 수행한다. 수신기(807)는 전송 디코더(808) 및 소스 디코더(809)를 포함한다. 전송 디코더(808)는 사용중인 전송 프로토콜들에 따라 전송 채널(805)로부터 입력된 압축된 비디오를 디-캡슐화(de-capsulate)한다. 소스 코더(809)는 또한 2개의 성분들, 즉 엔트로피 디코더(809.1) 및 파형 디코더(809.2)로 나뉘어질 수 있다. 엔트로피 디코더(809.1)는 전송 디코더(808)로부터의 이진 시퀀스를 파형 디코더(809.1)로 입력되는 파형으로 변환한다. 파형 디코더(809.1)는 비디오 신호 압축해제(decompression)를 수행하며, 비디오 신호(810)를 출력한다. 수신기(807)는 또한 송신기로 피드백될 수 있다. 예를 들면, 수신기는 성공적으로 수신된 전송 유닛들의 레이트를 알릴 수 있다.
파라미터 세트 개념( Parameter Set Concept )
JVT 코덱의 한가지 매우 기본적인 설계 개념은 헤더 복사가 필요하지 않도록 하는 매커니즘을 만들기 위해, 자아-포함 패킷들(self-contained packets)을 생성하는 것이다. 이것이 얻어지는 방법은 미디어 스트림으로부터 하나 이상의 슬라이스에 관련된 정보를 없애는 것(decouple)이다. 이러한 높은 계층의 메타 정보는 슬라이스 패킷들을 포함하는 RTP 패킷 스트림으로부터 사전에 그리고 비동기식으로 신뢰 가능하도록 전송되어야 한다. 이러한 정보는 또한 그러한 목적에 대해 적합한 밴드외의(out-of-band) 전송 채널을 가지지 않는 그러한 어플리케이션에서 밴드내(in-band)에서 전송될 수 있다. 높은 레벨의 파라미터들의 결합은 파라미터 세트(Parameter Set)로 불린다. 파라미터 세트는 픽처 크기, 디스플레이 윈도우, 사용된 선택적 코딩 모드들, 매크로블록 할당 맵, 및 다른 것들과 같은 정보를 포함한다.
파라미터 세트 갱신들(Parameter Set Updates)을 슬라이스 패킷 스트림으로 동시에 전송할 필요없이, (픽처 크기와 같은) 픽처 파라미터들을 변경할 수 있기 위해서는, 인코더 및 디코더는 하나 이상의 파라미터 세트의 리스트를 유지할 수 있다. 각 슬라이스 헤더는 사용될 파라미터 세트를 나타내는 코드워드를 포함한다.
이러한 매커니즘은 패킷 스트림으로부터 파라미터 세트들(Parameter Sets)의 전송을 제거하도록 하며, 파라미터 세트들을 외부 수단에 의해, 예를 들면 용량 교환(capability exchange)의 부작용(side effect)으로 또는 (신뢰할만한 또는 신뢰할 수 없는) 제어 프로토콜을 통해 전송한다. 심지어 파라미터 세트들은 전혀 전송되지 않지만 어플리케이션 설계 사양에 의해 고정되는 것도 가능하다.
전송 순서( Transmission order )
종래의 비디오 코딩 표준들에서, 픽처들의 디코딩 순서는 B 픽처들에 대한 것을 제외하고는 디스플레이 순서와 같다. 종래의 B 픽처에서의 블록은 2개의 레퍼런스 픽처들로부터 시간적으로 양방향으로 예측될 수 있으며, 여기서 하나의 레퍼런스 픽처는 시간적으로 선행하며, 다른 레퍼런스 픽처는 디스플레이 순서에서 시간적으로 후행한다. 디코딩 순서에서 최근의 레퍼런스 픽처만이 디스플레이 순서에서 B 픽처의 뒤를 따를 수 있다(예외: H.263의 인터레이스 코딩(interlaced cding)에서는 시간적으로 다음의 레퍼런스 프레임의 필드 픽처들 모두는 디코딩 순서에 있어서 B 픽처에 선행할 수 있다). 종래의 B 픽처는 시간 예측(teporal prediction)을 위한 레퍼런스 픽처로서 사용될 수 없으며, 따라서 종래의 B 픽처는 어떠한 다른 픽처들의 디코딩에 영향을 주지 않고 처분될 수 있다.
JVT 코딩 표준은 초기의 표준과 비교하여 다음의 신규한 기술 특징들을 포함한다.
- 픽처들의 디코딩 순서는 디스플레이 순서와 분리된다. 픽처 번호는 디코딩 순서를 나타내며, 픽처 순서 계수(picture order count)는 디스플레이 순서를 나타낸다.
- B 픽처에 있는 블록에 대한 레퍼런스 픽처들은 디스플레이 순서에 있어서 B 픽처의 이전 또는 이후일 수 있다. 결과적으로, B 픽처는 양방향 픽처(bi-directional picture) 대신에 쌍-예측(bi-predictive) 픽처를 의미한다.
- 레퍼런스 픽처들로 사용되지 않는 픽처들은 명백하게 두드러진다. (인트라, 인터, B 등의) 어떠한 타입의 픽처라도 레퍼런스 픽처 또는 비-레퍼런스 픽처일 수 있다. (따라서, B 픽처는 다른 픽처들의 시간적 예측을 위한 레퍼런스 픽처로서 사용될 수 있다).
- 픽처는 다른 코딩 타입들로 코딩되는 슬라이스들을 포함할 수 있다. 바꾸어 말하면, 코딩된 픽처는 예를 들면, 인트라-코딩 슬라이스 및 B-코딩 슬라이스로 이루어질 있다.
디코딩 순서로부터 디스플레이 순서를 분리하는 것은 압축 효율 및 오류 강인화(error resilence)의 관점에서 이로울 수 있다.
잠재적으로 압축 효율을 향상시키는 예측 구조의 예시가 도 3에 제시되어 있다. 박스들은 픽처들을 나타내며, 박스들안의 대문자들은 코딩 타입들을 나타내며, 박스들안의 숫자들은 JVT 코딩 표준에 따른 픽처 번호들을, 그리고 화살표들은 예측 의존성들(prediction dependencies)을 나타낸다. 픽처 B17은 픽처들 B18에 대한 레퍼런스 픽처이다. 압축 효율은 종래의 코딩과 비교할 때 잠재적으로 개선되는데, 그 이유는 픽처들 B18에 대한 레퍼런스 픽처들은 PBBP 또는 PBBBP 코딩 픽처 패턴들을 가진 종래의 코딩과 비교할 때 시간적으로 좀 더 가깝기 때문이다. 압축 효율은 종래의 PBP 코딩 픽처 패턴과 비교할 때 잠재적으로 개선되는데, 그 이유는 레퍼런스 픽처들의 일부가 양방향으로 예측되기 때문이다.
도 4는 오류 강인화를 개선하는데 사용될 수 있는 인트라 픽처 연기 방법(intra picture postponement method)의 예시를 제시한다. 전통적으로, 인트라 픽처는 예를 들면, 만료된 인트라 픽처 리프레시 주기(expired intra picture refresh period)에 대한 응답으로서 또는 장면 커트(scene cut) 이후에 즉시 코딩된다. 인트라 픽처 연기 방법에서, 인트라 픽처는 인트라 픽처를 코딩할 필요성이 생긴 이후에 즉시 코딩되지 않으며, 시간적으로 다음 픽처가 인트라 픽처로서 선택된다. 코딩 인트라 픽처 및 인트라 픽처의 종래의 위치 사이의 각 픽처는 시간적으로 다음 픽처로부터 예측된다. 도 4에서 도시된 바와 같이, 인트라 픽처 연기 방법은 2개의 독립적인 인터 픽처 예측 체인들을 생성하는 반면에, 종래의 코딩 알고리즘들은 하나의 인터 픽처 체인을 생성한다. 2-체인 접근 방식(2-chain approach)은 1-체인의 종래의 접근방식보다 삭제 오류들(erasure errors)에 대해 더욱 강인하다. 만약 한 체인이 패킷 손실로 고생한다면, 다른 체인은 여전히 올바르게 수신될 수 있다. 종래의 코딩에서는, 패킷 손실은 인터 픽처 예측 체인의 나머지로 오류를 전파한다.
멀티미디어 스트림들의 전송( Transmission of multimedia streams )
멀티미디어 스트리밍 시스템은 스트리밍 서버 및 다수의 재생기들(players)로 이루어지며, 이것들은 네트워크를 통해 서버를 액세스한다. 전형적으로 네트워크는 패킷 지향이며, 보증된 서비스 품질에 대한 수단을 거의 제공하지 않는다. 재생기들은 서버로부터 라이브 멀티미디어 콘텐트 또는 미리 저장된 멀티미디어 콘텐트를 가져오고, 콘텐트가 다운로드중인 동안에 실시간으로 재생한다. 통신 타입은 점-대-점(point-to-point) 또는 멀티캐스트중 어느 하나일 수 있다. 점-대-점 스트리밍에서, 서버는 각 재생기에 대해 별개의 접속을 제공한다. 멀티캐스트 스트리밍에서는, 서버는 다수의 재생기들로 하나의 데이터 스트림을 전송하며, 네트워크 요소들은 필요한 경우에만 스트림을 복사한다.
재생기가 서버로의 접속을 설정하고, 멀티미디어 스트림을 요청할 때, 서버는 원하는 스트림을 전송하기 시작한다. 재생기는 즉시 스트림의 재생을 개시하지 않으며, 오히려 수초동안 입력되는 데이터를 버퍼링한다. 여기서 버퍼링은 초기 버퍼링(initial buffering)으로 지칭된다. 초기 버퍼링은 정지없는 재생을 유지하는데 도움을 주는데, 왜냐하면 간혹 전송 지연들이 증가하거나 또는 네트워크 데이터 처리량이 떨어지는 경우에, 재생기는 디코딩하며 버퍼링된 데이터를 재생할 수 있다.
무제한적인 전송 지연을 방지하기 위해서, 스트리밍 시스템들에서 신뢰할만한 전송 프로토콜들에 호의를 보이는 것은 보편적이지 않다. 대신에, 시스템들은 한편으로는 더욱 안정적인 전송 지연을 물려받았지만, 다른 한편으로는 데이터 손상 또는 손실로 고생하는 UDP와 같은 신뢰할 수 없는 전송 프로토콜들을 선호한다.
RTP 및 RTCP 프로토콜들은 실시간 통신을 제어하기 위하여 UDP의 위에서 사용될 수 있다. RTP는 수신 측의 패킷들의 올바른 순서를 재조립하기 위해, 그리고 샘플링 타임-스탬프와 각각의 패킷을 결합시키기 위해 전송 패킷들의 손실들을 검출하기 위한 수단을 제공한다. RTCP는 패킷들중 얼마나 많은 부분이 올바르게 수신되었는지에 대한 정보를 전달하며, 따라서 상기 정보는 흐름 제어 목적들을 위해 사용될 수 있다.
전송 오류들( Transmission errors )
2개의 주된 타입들의 전송 오류들이 존재하는데, 즉 비트 오류들 및 패킷 오류들이다. 비트 오류들은 전형적으로 이동 통신에서의 무선 액세스 네트워크 접속과 같은 회로-교환 채널과 관련되며, 무선 간섭과 같은 물리적 채널들의 결함들에 의해 야기된다. 그러한 결함들은 전송되는 데이터에서 비트 반전들, 비트 삽입들, 및 비트 제거들을 초래할 수 있다. 패킷 오류들은 전형적으로 패킷-교환 네트워크들의 구성요소들에 의해 야기된다. 예를 들면, 패킷 라우터는 혼잡하게 될 수 있는데, 즉 패킷 라우터가 입력으로 너무 많은 패킷들을 가질 수 있으며, 동일한 레이트로 패킷들을 출력할 수 없다. 이러한 경우에, 패킷 라우터의 버퍼들은 오버플로우되며, 일부 패킷들을 잃어버린다. 전송되는 것과 다른 순서의 패킷 복사 및 패킷 전달이 또한 가능하지만, 그것들은 전형적으로 패킷 손실들에 비해 덜 보편적인 것으로 간주된다. 패킷 오류들은 또한 사용된 전송 프로토콜 스택의 구현에 의해 야기될 수 있다. 예를 들면, 일부 프로토콜들은 송신기에서 계산되고, 소스-코딩된 데이터로 캡슐화되는 체크섬을 사용한다. 만약 데이터에 비트 반전 오류가 있다면, 수신기는 동일한 체크섬으로 종료될 수 없으며, 수신된 패킷을 폐기해야 할 것이다.
GPRS, UMTS, 및 CDMA-2000을 포함하는 제2 세대(2G) 및 제3 세대(3G) 이동 네트워크들은 2가지 기본적인 타입들의 무선 링크 접속인 승인 무선 접속(acknowledge radio link) 및 비승인 무선 접속(non-acknowledge radio link)을 제공한다. 승인 접속은 무선 링크 프레임의 무결성(integrity)이 수신자(이동국(Mobile Station, MS), 또는 기지국 서브시스템(Base Station Subsystem, BSS0)에 의해 체크되며, 전송 오류의 경우에 무선 링크의 반대 말단에 재전송이 요청된다. 링크 계층 재전송 때문에, 송신자(originator)는 프레임에 대한 긍정적인 승인이 수신될때까지 무선 링크를 버퍼링해야 한다. 거친(harsh) 무선 상태에서, 버퍼는 오버플로우될 것이며, 데이터 손실을 초래할 것이다. 그럼에도 불구하고, 스트리밍 서비스들을 위해 승인 무선 링크 프로토콜 모드를 사용하는 것이 이롭다는 것이 알려져 있다. 비승인 접속에서는 전형적으로 오류가 있는 무선 링크 프레임들은 폐기되기 때문이다.
패킷 손실들은 보정되거나 또는 은닉될 수 있다. 손실 보정(loss correction)은 아무런 손실이 도입되지 않은 것처럼 손실된 데이터를 완전하게 복구하는 능력을 지칭한다. 손실 은닉(loss concealment)은 전송 손실들이 재구성된 비디오 시퀀스에서 보일 수 없도록 전송 손실들의 영향들을 숨기는 능력을 지칭한다.
재생기가 패킷 손실을 검출하면, 재생기는 패킷 재전송을 요청할 수 있다. 초기 버퍼링 때문에, 재전송된 패킷은 그의 예약된 재생 시간 전에 수신될 수 있다. 일부 상업적 인터넷 스트리밍 시스템들은 전유 프로토콜들(proprietary protocol)을 사용해서 재전송 요구들을 구현한다. RTCP의 일부로서 선택적 재전송 요청 매커니즘을 표준화하려는 작업이 IETF에서 진행중이다.
이러한 모든 재전송 요청 프로토콜들에 대한 공통적인 특징은 이러한 프로토콜들은 많은 수의 재생기들로 멀티캐스팅하기에 적합하지 않다는 점인데, 왜나하면 네트워크 트래픽이 심하게 증가하기 때문이다. 결과적으로 멀티캐스트 스트리밍 어플리케이션들은 비-대화형(non-interactive) 패킷 손실 제어에 의존해야 한다.
점-대-점 스트리밍 시스템들은 또한 비-대화형 오류 제어 기술들로부터 이익을 얻을 수 있다. 우선, 일부 시스템들은 어떠한 대화형 오류 제어 매커니즘을 포함하지 않을 수 있거나, 또는 그들은 시스템을 단순화하기 위해 재생기들로부터의 어떠한 피드백도 가지지 않기를 바랄 수 있다. 둘째로, 손실된 패킷들의 재전송 및 다른 형태들의 대화형 오류 제어는 비대화형 오류 제어 방법들에 비해 전송된 데이터 레이트의 보다 많은 부분을 차지한다. 대화형 오류 제어 방법들은 이용 가능한 네트워크 처리율(throughput)의 주된 부분을 확보하지 않는다는 점을 스트리밍 서버들은 보장해야 한다. 사실상, 서버들은 대화형 오류 제어 동작들의 양을 제한해야 한다. 셋째로, 전송 지연은 서버 및 재생기간의 대화들(interactions)의 수를 제한할 수 있는데, 왜냐하면 바람직하게는 데이터 샘플이 재생되기 전에 특정 데이터 샘플을 위한 모든 대화형 오류 제어 동작들(interactive error control operations)이 행해져야 하기 때문이다.
비-대화형 패킷 손실 제어 매커니즘들은 후-처리(post-processing)에 의한 손실 은닉(loss concealment) 및 전방향 오류 제어(forward error control)로 분류될 수 있다. 전방향 오류 제어는 전송 손실들이 있다고 하더라도 수신기들이 전송된 데이터중 적어도 일부를 복구할 수 있도록 송신기가 그러한 여분(redundancy)을 전송된 데이터에 부가하는 기술들을 지칭한다. 전방향 오류 제어 방법들에는 2가지 부류가 있는데, 신호-의존 방법 및 신호-무의존 방법이 그것이다. 신호-의존 방법들(signal-dependent methods)은 비트스트림의 해석을 필요로 한다. 그러한 방법의 예시는 픽처 헤더 또는 시퀀스의 반복이다. 신호-무의존 방법들(signal-independent methods)은 비트스트림의 해석된 콘텐트에 불구하고 어떠한 비트스트림이라도 복구하는데 사용될 수 있다. 그러한 방법들의 예시들은 오류 보정 코드들(예를 들면, 패리티 코드들 및 리드-솔로몬(Reed-Solomon) 코드들)이다. 후처리에 의한 오류 은닉은 전체적으로 수신기-지향이다. 이러한 방법들은 오류가 있는 수신된 데이터의 올바른 표현을 예측하려고 시도한다.
대부분의 비디오 압축 알고리즘들은 시간적으로 예측된 INTER 또는 P 픽처들을 생성한다. 그 결과, 하나의 픽처에서의 데이터 손실은 손상된 것으로부터 시간적으로 예측되는 결과적인 픽처들에서의 가시적인 저하(degradation)를 초래한다. 비디오 통신 시스템은 디스플레이 이미지들의 손실을 은닉하거나 손상된 프레임과 관계없는 프레임이 수신될 때까지 최근의 올바른 픽처를 스크린에 정지시킬 수 있다.
주된 픽처들 및 중복 픽처들( Primary and redundant pictures )
주된 코딩 픽처는 픽처의 주된 코딩 표현이다. 디코딩된 주된 코딩 픽처는 전체 픽처 영역을 커버하는데, 즉 주된 코딩 픽처는 픽처의 모든 슬라이스들 및 매크로블록들을 포함한다. 중복 코딩 픽처는 주된 코딩 픽처가 손실되거나 손상되지 않는 한, 디코딩을 위해 사용되지 않는 픽처의 중복된 코딩 표현이다. 디코딩된 중복 코딩 픽처는 본질적으로 각각의 디코딩된 주된 코딩 픽처와 동일한 픽처 정보를 포함한다. 그러나, 디코딩된 중복 코딩 픽처에서의 샘플 값들은 대응하는 디코딩된 주된 코딩 픽처에서 같은 장소에 위치한 샘플 값들과 정확히 같을 필요는 없다. 주된 코딩 픽처당 중복 코딩 픽처들의 수는 0부터 코딩 표준에서 상세히 설명되는 제한(즉, JVT 코딩 표준에 따르면 127)까지 일 수 있다. 중복 코딩 픽처는 각각의 주된 코딩 픽처와 비교할 때 다른 레퍼런스 픽처들을 사용할 수 있다. 따라서, 만약 주된 코딩 픽처의 레퍼런스 픽처들중 하나가 손실되었거나 또는 손상되었고, 대응하는 중복 코딩 픽처의 모든 레퍼런스 픽처들이 올바르게 디코딩되었다면, 픽처 품질의 관점에서 주된 코딩 픽처 대신에 중복 코딩 픽처를 디코딩하는 것이 유리하다.
대부분의 종래의 비디오 코딩 표준들은 "코딩되지 않은(not-coded)" 또는 "스킵된(skipped)" 매크로블록들의 개념을 포함한다. 그러한 매크로블록의 디코딩 프로세스는 레퍼런스 픽처에서 공간적으로 대응하는 매크로블록의 복사로 이루어진다.
MPEG -4 비주얼에 따른 객체 기반의 코딩( Object - based coding according to MPEG-4 Visual )
MPEG-4 비주얼은 선택적인 객체-기반의 코딩 툴들을 포함한다. MPEG-4 비디오 객체들은 어떠한 형태일 수도 있으며, 더욱이 객체의 형태, 크기, 및 위치는 한 프레임으로부터 다음 프레임에 걸쳐 변할 수 있다. 그 일반적인 표현의 관점에서, 비디오 객체는 3개의 컬러 성분들(YUV) 및 알파 성분으로 이루어진다. 알파 성분은 이미지별 기반으로(image-by-image basis) 객체의 형태을 정의하고 있다. 이진 객체들(Binary objects)은 가장 단순한 클래스의 객체를 생성한다. 이진 객체들은 이진 알파 맵들, 즉 2-D 이미지들의 시퀀스에 의해 표현되며, 각 픽셀은 블랙 또는 화이트이다. MPEG-4는 이러한 객체들을 압축하기 위한 이진 형태의 모드만을 제공한다. 압축 프로세스는 알파 맵들(alpha maps)의 시퀀스를 코딩하기 위한 이진 형태 인코더에 의해 배타적으로 정의된다. 객체 형태을 표현하는 이진 알파 맵들의 시퀀스에 부가하여, 상기 표현은 객체 형태내에 있는 모든 픽셀들의 컬러들을 포함한다. MPEG-4 인코더들은 이진 형태의 인코더를 사용해서, 그 다음에는 내부의 텍스처 코딩(texture coding)을 위해 움직임 보상 이산 여현 변환(Discrete Cosine Transform, DCT)-기반의 알고리즘을 사용해서 이러한 객체들을 인코딩한다. 마지막으로, 텍스처링된 객체(textured object)를 그레이-레벨 형태으로 표현하는 것이 가능하다. 이러한 객체에 대해, 알파 맵(alpha map)은 256의 가능한 레벨들을 가진 그레이-레벨 이미지이다. 그레이-레벨 알파 정보는 비디오 구성 프로세스(video composition process) 동안에 객체의 투명성(transparency) 특징들을 구체화하는데 사용된다. MPEG-4는 알파 맵의 지원을 위한 이진 형태의 인코더 및 알파 맵 및 내부의 텍스처의 코딩을 위한 움직임 보상 DCT 기반의 알고리즘을 사용해서 이러한 객체들을 인코딩한다.
버퍼링( Buffering )
스트리밍 고객들은 전형적으로 상대적으로 많은 양의 데이터를 저장할 수 있는 수신 버퍼를 가지고 있다. 최초에, 스트리밍 세션이 설정될 때, 고객은 즉시 스트림의 재생을 개시하지 않으며, 오히려 입력되는 데이터를 수초동안 버퍼링한다. 상기 버퍼링은 연속적인 재생을 유지하는데 도움을 주는데, 왜냐하면 간혹 증가되는 전송 지연된 또는 네트워크 처리율이 떨어지는 경우에 고객이 버퍼링된 데이터를 디코딩하고 재생할 수 있기 때문이다. 그렇지 않고, 초기 버퍼링이 없다면, 고객은 디스플레이를 정지시켜야 하며, 디코딩을 중지하고, 입력 데이터를 기다려야 한다. 버퍼링은 또한 어떠한 프로토콜 레벨에서도 선택적인 재전송 또는 자동 재전송을 위해 필요하다. 만약 픽처의 어떠한 부분이 손실되었다면, 재전송 매커니즘이 손실된 데이터를 재전송하는데 사용될 수 있다. 만약 그의 예약된 디코딩 또는 재생 시간 이전에 재전송된 데이터가 수신되었다면, 손실은 완벽하게 복구될 수 있다.
코딩된 픽처들은 디코딩된 시퀀스의 본질적인 품질에서의 중요도에 따라 순위가 매겨질 수 있다. 예를 들면, 종래의 B 픽처들과 같은 레퍼런스가 아닌 픽처들은 주관적으로는 덜 중요한데, 왜냐하면 그들의 부존재는 어떠한 다른 픽처들의 디코딩에 영향을 미치지 않기 때문이다. 주관적 순위부여(subjective ranking)는 또한 데이터 파티션 또는 슬라이스 그룹 기반으로 이루어질 수 있다. 주관적으로 가장 중요한 코딩된 슬라이스 및 데이터 파티션들은 그들의 디코딩 순서가 나타내는 것보다 초기에 전송될 수 있는 반면에, 주관적으로 덜 중요한 코딩된 슬라이스들 및 데이터 파티션들은 그들의 본래의(natural) 코딩 순서가 나타내는 것보다 이후에 전송될 수 있다. 결과적으로, 가장 중요하지 않은 슬라이스들 및 데이터 파티션들과 비교할 때, 가장 중요한 슬라이스 및 데이터 파티션들의 어떠한 재전송된 부분들도 그들의 예약된 디코딩 또는 재생 시간 이전에 수신될 것이다.
중복 픽처들의 식별( Identification of Redundant Pictures )
JVT 코딩 신택스에는 픽처 헤더들이 존재하지 않는다는 사실 때문에, 슬라이스 헤더 신택스는 디코더들이 픽처 기반으로 동작하도록 하는 픽처 경계들을 검출하는 수단을 제공해야 한다. 만약 JVT 코딩 표준에 따르는 디코더가 주된 코딩 픽처들 및 중복 코딩 픽처들 모두를 포함하는 오류가 없는 비트스트림을 수신한다면, 디코더는 주된 코딩 픽처들 및 중복 코딩 픽처들의 경계들을 검출해야 하며, 표준에서 요구되는 정확한 샘플 값들을 재구성하기 위해서는 주된 코딩 픽처들만을 디코딩해야 한다. 더욱이, 만약 중복 픽처들이 RTP/UDP/IP와 같은 접속이 없는 채널(connectionless channel)을 통해 전달된다면, 그들 각각은 하나 이상의 IP 패킷으로 캡슐화될 수 있다. UDP의 무접속 속성 때문에, 패킷들은 그들이 전송된 것과는 다른 순서로 수신될 수 있다. 따라서, 수신기는 어느 코딩된 슬라이스들이 중복 코딩된 픽처들에 속하는지 그리고 어느 것이 주된 코딩 픽처들에 속하는지, 그리고 어느 중복 코딩 픽처들이 특정 주된 코딩 픽처에 대응하는지를 추론해야 한다. 만약 수신기가 이러한 것을 하지 않는다면, 상호간에 중복되는 슬라이스들이 불필요하게 디코딩될 수 있을 것이다.
도 1은 반복적 시간 범위성 스킴(recursive temporal scalability scheme)의 예시를 도시한다.
도 2는 비디오 중복 코딩(Video Redundancy Coding)으로 지칭되는 스킴을 기술하며, 여기서 픽처들의 시퀀스는 인터리빙 방식으로 2 이상의 독립적으로 코딩된 스레드들(threads)로 나누어진다.
도 3은 압축 효율을 잠재적으로 증가시키는 예측 구조의 예시를 제시한다.
도 4는 오류 강인화(error resilience)을 개선시키기 위해 사용될 수 있는 인트라 픽처 연기 방법(intra picture postponement method)의 예시를 제시한다.
도 5는 본 발명에 따른 시스템의 바람직한 실시예를 기술한다.
도 6은 본 발명에 따른 인코더의 바람직한 실시예를 기술한다.
도 7은 본 발명의 따른 디코더의 바람직한 실시예를 기술한다.
도 8은 일반적인 비디오 통신 시스템의 블록도를 도시한다.
오류가 발생하기 쉬운 비디오 전송에서 동등하지 않은 오류 방지를 제공하기 위해 픽처의 중복 코딩된 표현이 사용될 수 있다. 픽처의 주된 코딩 표현이 수신되지 않았다면, 중복 표현이 사용될 수 있다. 주된 코딩 픽처의 레퍼런스 픽처들중 하나의 레퍼런스 픽처가 손실되거나 또는 손상되고, 대응하는 중복 코딩 픽처의 모든 레퍼런스 픽처들이 올바르게 디코딩되었다면, 중복 코딩 픽처가 디코딩될 수 있다. 많은 경우들에서, 픽처의 다른 공간적 부분들의 주관적인 중요성(subjective importance)이 변할 수 있다. 본 발명은 전체의 픽처 영역을 커버할 수 없는 불완전한 중복 픽처들의 전송을 가능하게 한다. 결과적으로, 본 발명은 선택된 픽처들의 주관적으로 매우 중요한 부분들만의 보호를 가능하게 한다. 이것은 초기 표준과 비교할 때 압축 효율을 개선시키며, 동등하지 않은 오류 방지의 공간적 포커싱(spatial focusing)을 허가한다.
다음의 기술에서, 본 발명은 인코더-디코더 기반 시스템을 사용함으로써, 기술되지만, 본 발명은 또한 비디오 신호들이 저장되는 시스템들에서 구현될 수 있다. 저장된 비디오 신호들은 인코딩 및 디코딩 프로세스 이후에 저장된 디코딩된 신호들과 같은, 또는 인코딩 이후에 저장된 인코딩된 신호들과 같은, 인코딩 이전에 저장된 코딩되지 않은 신호들중 하나일 수 있다. 예를 들면, 인코더는 디코딩 순서에 따라 비트스트림들을 생성한다. 파일 시스템은 예를 들어 디코딩 순서로 캡슐화되고, 파일로서 저장된 오디오 및/또는 비디오 스트림들을 수신한다. 부가하여, 인코더 및 파일 시스템은 픽처들 및 NAL 유닛들의 주관적인 중요성을 알리는 특히, 서브-시퀀스들에 대한 정보를 포함하는 메타데이터를 생성한다. 상기 파일은 데이터베이스내에 저장될 수 있는데, 상기 데이터베이스로부터 직접 재생 서버는 NAL 유닛들을 독출하고 그것들을 RTP 패킷들로 캡슐화시킬 수 있다. 선택적인 메터데이터 및 사용중인 데이터 접속에 따라서, 직접 재생 서버는 가능하다면, 디코딩 순서와 다르게 패킷들의 전송 순서를 변형시키고, 서브-시퀀스들을 제거하고, 어떠한 SEI 메시지들이 전송될 것인지를 결정할 수 있다. 수신 단에서는, RTP 패킷들이 수신되고, 버퍼링된다. 전형적으로, NAL 유닛들은 우선 올바른 순서로 다시 순위부여가 되며, 이후에는 NAL 유닛들은 디코더로 전달된다.
서브-네트워크가 오류가 발생하기 쉬운 반면에 다른 서브-네트워크는 본질적으로 오류가 없는 링크를 제공하도록, 일부 네트워크들 또는 네트워크들간(inter-networks) 및/또는 비디오 통신을 위해 이러한 네트워크들에서 사용되는 통신 프로토콜들은 재구성될 수 있다. 예를 들면, 만약 이동 단말기가 공개 IP 기반의 네트워크에 있는 스트리밍 서버에 접속한다면, 신뢰할만한 링크 계층 프로토콜들이 무선 링크에서 사용될 수 있으며, 개인 이동 운영자 코어 네트워크는 모바일 운용자에 의해 제어되는 서브-네트워크가 본질적으로 오류가 없도록 오버-프로비전(over-provision)될 수 있다. 그러나, 공개 IP 기반의 네트워크(즉, 인터넷)는 오류가 발생하기 쉬운(error-prone) 최적의 서비스를 제공한다. 결과적으로, 전송 오류들에 대한 방지가 오류가 발생하기 쉬운 서브-네트워크에서 사용되어야 하며, 반면에 어플리케이션-레벨의 오류 방지는 본질적으로 오류가 없는 접속을 제공하는 서브-네트워크에서 유용하지 않다. 그러한 상황에서, 오류가 발생하기 쉬운 서브-네트워크를 오류가 없는 서브-네트워크에 연결하는 게이트웨이 구성요소를 가지는 것이 바람직하다. 바람직하게는, 상기 게이트웨이는 오류가 발생하기 쉬운 서브-네트워크에 접속된 단말기로부터 오류가 없는 서브-네트워크에 접속된 단말기로 전송되는 비트스트림을 분석한다. 만약 오류들이 비트스트림의 특정 부분을 치지 않았다면, 바람직하게는 게이트웨이는 상기 비트스트림의 그러한 부분에 대응하는 전방향 오류 제어를 위해 어플리케이션-레벨의 중복(redundancy)을 제거한다. 이러한 동작은 오류가 없는 네트워크에서의 트래픽 양을 감소시키며, 절약된 트래픽 양은 다른 목적들을 위해 사용될 수 있다.
본 발명에 따른 인코딩 방법은 주로 각각의 주된 코딩 픽처가 본질적으로 각각의 중복 코딩 픽처와 같은 픽처 정보를 포함하며, 중복 코딩 픽처들의 적어도 하나는 각각의 주된 코딩 픽처의 픽처 정보의 일부에만 대응하는 픽처 정보를 포함한다는 점을 특징으로 한다. 본 발명에 따른 디코딩 방법은 상기 주된 코딩 픽처들은 본질적으로 상기 각각의 중복 코딩 픽처들을 생성하기 위해 사용된 것과 같은 픽처 정보를 사용해서 생성되며, 상기 중복 코딩 픽처들중 적어도 하나는 상기 각각의 주된 코딩 픽처의 픽처 정보의 일부에만 대응하는 픽처 정보를 포함하는 단계; 상기 코딩 픽처 정보가 중복 코딩 픽처에 속한다는 것을 나타내는 파라미터를 비트스트림에서 검출하는 단계; 및 상기 파라미터를 사용해서 중복 코딩 픽처에 속하는 상기 코딩 픽처 정보의 디코딩을 제어하는 단계;를 포함하며, 상기 중복 코딩 픽처 정보는 상기 각각의 주된 코딩 픽처를 생성하기 위해 사용되는 상기 픽처 정보의 일부에만 대응하는 것을 특징으로 한다. 본 발명에 따른 시스템은 인코더가 주된 코딩 픽처들 및 상기 주된 코딩 픽처들의 중복 코딩 픽처들을 생성하기 위한 인코딩 수단을 포함한다는 점에서 주로 특징지워지며, 각각의 주된 코딩 픽처는 본질적으로 상기 각각의 중복 코딩 픽처들과 같은 픽처 정보를 포함하며, 상기 중복 코딩 픽처들중 적어도 하나는 상기 각각의 주된 코딩 픽처의 픽처 정보의 일부에만 대응하는 픽처 정보를 포함하며; 상기 디코더는 상기 코딩 픽처 정보가 중복 코딩 픽처에 속한다는 것을 나타내는 파라미터를 비트스트림에서 검출하기 위한 검출 수단; 및 상기 파라미터를 사용해서 중복 코딩 픽처에 속하는 상기 코딩 픽처 정보의 상기 디코딩을 제어하는 제어 수단;을 포함하며, 상기 중복 코딩 픽처 정보는 상기 각각의 주된 코딩 픽처를 생성하기 위해 사용되는 상기 픽처 정보의 일부에만 대응하는 것을 특징으로 한다. 본 발명에 따른 인코더는 주된 코딩 픽처들 및 상기 주된 코딩 픽처들의 중복 코딩 픽처들을 생성하는 인코딩 수단;을 포함하며, 각각의 주된 코딩 픽처는 본질적으로 상기 각각의 중복 코딩 픽처와 같은 픽처 정보를 포함하며, 상기 중복 코딩 픽처들중 적어도 하나는 상기 각각의 주된 코딩 픽처의 픽처 정보의 일부에만 대응하는 픽처 정보를 포함하는 것을 특징으로 한다. 본 발명에 따른 디코더는 상기 코딩 픽처 정보가 중복 코딩 픽처에 속한다는 것을 나타내는 파라미터를 비트스트림에서 검출하기 위한 검출 수단; 및 상기 파라미터를 사용해서 중복 코딩 픽처에 속하는 상기 코딩 픽처 정보의 상기 디코딩을 제어하는 제어 수단;을 포함하며, 상기 중복 코딩 픽처 정보는 상기 각각의 주된 코딩 픽처를 생성하기 위해 사용되는 상기 픽처 정보의 일부에만 대응하는 것을 특징으로 한다. 본 발명에 따른 인코딩을 위한 소프트웨어 프로그램은 픽처들을 인코딩하기 위한 기계로 실행 가능한 단계들을 포함하는 소프트웨어 프로그램으로, 상기 기계로 실행 가능한 단계들은 주된 코딩 픽처들 및 상기 주된 코딩 픽처들의 중복 코딩 픽처들을 생성하는 단계;를 포함하며, 각각의 주된 코딩 픽처는 본질적으로 상기 각각의 중복 코딩 픽처와 같은 픽처 정보를 포함하며, 상기 중복 코딩 픽처들중 적어도 하나는 상기 각각의 주된 코딩 픽처의 픽처 정보의 일부에만 대응하는 픽처 정보를 포함하는 것을 특징으로 한다. 본 발명에 따른 디코딩을 위한 소프트웨어 프로그램은 비트스트림으로부터 픽처들을 디코딩하기 위한 기계로 실행 가능한 단계들을 포함하는 소프트웨어 프고그램으로, 비트스트림에서 상기 코딩 픽처 정보가 중복 코딩 픽처에 속한다는 것을 나타내는 파라미터를 비트스트림에서 검출하는 단계; 및 상기 파라미터를 사용해서 중복 코딩 픽처에 속하는 상기 코딩 픽처 정보의 상기 디코딩을 제어하는 단계;를 위한 기계로 실행 가능한 단계들을 포함하며, 상기 중복 코딩 픽처 정보는 상기 각각의 주된 코딩 픽처를 생성하기 위해 사용되는 상기 픽처 정보의 일부에만 대응하는 것을 특징으로 한다. 본 발명에 따른 픽처들을 인코딩하기 위해 기계로 실행 가능한 단계들을 포함하는 소프트웨어 프로그램을 저장하기 위한 저장 매체는 주된 코딩 픽처들 및 상기 주된 코딩 픽처들의 중복 코딩 픽처들을 생성하기 위한 기계로 실행 가능한 단계들;을 포함하고, 각각의 주된 코딩 픽처는 본질적으로 상기 각각의 중복 코딩 픽처와 같은 픽처 정보를 포함하며, 상기 중복 코딩 픽처들중 적어도 하나는 상기 각각의 주된 코딩 픽처의 픽처 정보의 일부에만 대응하는 픽처 정보를 포함하는 것을 특징으로 한다. 본 발명에 따른 전송 장치는 픽처들을 인코딩하기 위한 인코더를 포함하는 전송 장치로서, 주된 코딩 픽처들 및 상기 주된 코딩 픽처들의 중복 코딩 픽처들을 생성하기 위한 인코딩 수단;을 포함하며, 각각의 주된 코딩 픽처는 본질적으로 상기 각각의 중복 코딩 픽처와 같은 픽처 정보를 포함하며, 상기 중복 코딩 픽처들중 적어도 하나는 상기 각각의 주된 코딩 픽처의 픽처 정보의 일부에만 대응하는 픽처 정보를 포함하는 것을 특징으로 한다. 본 발명에 따른 수신 장치는 상기 코딩 픽처 정보가 중복 코딩 픽처에 속한다는 것을 나타내는 파라미터를 비트스트림에서 검출하기 위한 검출 수단을 포함하는 디코더; 및 상기 파라미터를 사용해서 중복 코딩 픽처에 속하는 상기 코딩 픽처 정보의 상기 디코딩을 제어하는 제어 수단;을 포함하며, 상기 중복 코딩 픽처 정보는 상기 각각의 주된 코딩 픽처를 생성하기 위해 사용되는 상기 픽처 정보의 일부에만 대응하는 것을 특징으로 한다. 본 발명에 따른 비트스트림은 주된 코딩 픽처들 및 상기 주된 코딩 픽처들의 중복 코딩 픽처들을 포함하는 비트스트림으로서, 각각의 주된 코딩 픽처는 본질적으로 상기 각각의 중복 코딩 픽처와 같은 픽처 정보를 포함하며, 상기 중복 코딩 픽처들중 적어도 하나는 상기 각각의 주된 코딩 픽처의 픽처 정보의 일부에만 대응하는 픽처 정보를 포함하는 것을 특징으로 한다.
본 발명은 디코더로 하여금 주된 코딩 픽처들 및 중복 코딩 픽처들간의 경계들을 검출하도록 하고, 주된 코딩 픽처가 올바르게 디코딩된다면 중복 코딩 픽처들의 불필요한 디코딩을 방지하도록 하는 것을 특징으로 한다.
본 발명은 코딩 시스템들의 신뢰성을 개선시킨다. 본 발명을 사용함으로써, 심지어 비디오 스트림의 일부 패킷들이 디코더에서 이용 가능하지 않은 경우라도 픽처들의 올바른 디코딩 순서는 종래 기술에서보다 더욱 신뢰할만하게 결정될 수 있다.
일관성과 명확화를 위하여, 다음의 정의들, 주된 코딩 슬라이스들(primary coded slices) 및 중복 코딩된 슬라이스들(redundancy coded slices)이 본 발명의 설명의 용도를 위해 정의된다.
슬라이스 데이터 분할(Slice data partitioning)은 각각의 신택스 요소의 타입에 기초하여 슬라이스 신택스 구조를 슬라이스 데이터 파티션 신택스 구조들(Slice data partition syntax structures)로 분할하는 방법이다. JVT 코딩 표준에 있어서, 3개의 슬라이스 데이터 파티션 신택스 구조들이 있는데, 슬라이스 데이터 파티션 A, B, C가 그것이다. 슬라이스 데이터 파티션 A는 슬라이스 헤더에 모든 신택스 요소들을 포함하며, 예측된 샘플 값들 및 디코딩된 샘플 값들간의 차이를 코딩하기 위한 신택스 요소들보다는 슬라이스 데이터 신택스 구조들을 포함한다. 슬라이스 데이터 파티션 B는 인트라 매크로블록 타입들(I 및 SI 매크로블록들)의 디코딩된 샘플 값들 및 예측된 샘플 값들간의 차이를 코딩하기 위한 신택스 요소들을 포함한다. 슬라이스 데이터 파티션 C는 인터-예측(inter-predicted) 매크로블록 타입들(P, SP 및 B 매크로블록들)의 디코딩된 샘플 값들 및 예측된 샘플 값들간의 차이를 코딩하기 위한 신택스 요소들을 포함한다.
주된 코딩 데이터 파티션(primary coded data partition)은 주된 코딩 픽처(primary coded picture)에 속하는 데이터 파티션이다.
주된 코딩 픽처는 픽처의 주된 코딩 표현(primary coded representation)이다.
주된 코딩 슬라이스는 주된 코딩 픽처에 속하는 슬라이스이다.
중복 코딩 데이터 파티션은 중복 코딩 픽처에 속하는 데이터 파티션이다.
중복 코딩 픽처(redundant coded picture)는 주된 코딩 픽처(primary coded picture) 또는 디코딩 픽처(decoded picture)가 손상되는 경우에만 사용되어야 하는 픽처의 중복 코딩 표현이다. 상기 디코딩 중복 픽처는 전체 픽처 영역을 커버할 수 없을지도 모른다. 디코딩된 주된 픽처 및 어떠한 디코딩된 중복 슬라이스들의 함께 배치된 영역들간에는 인지 가능한 차이가 없어야 한다. 주된 코딩 픽처에 있는 모든 매크로블록들을 포함하기 위해 중복 코딩 픽처가 요구되지는 않는다.
중복 코딩 슬라이스는 중복 코딩 픽처에 속하는 슬라이스이다.
중복 픽처에 포함되지 않은 매크로블록들 및 "코딩되지 않은(not coded)" 매크로블록들 간에는 2가지 주요한 차이점들이 존재하는데, 우선 중복 코딩 픽처에 포함되지 않은 매크로블록들은 시그널링되지 않으며, 반면에 "코딩되지 않은(not coded)" 매크로블록들은 (전형적으로 "코딩되지 않은(not coded)" 매크로블록당 1비트에 의해) 비트스트림에서 코딩된다. 둘째로, 디코더들은 중복 픽처에 포함되지 않은 영역들을 디코딩하지 않아야 한다. 만약 어떠한 매크로블록도 수신된 주된 코딩 픽처에 포함되어 있지 않거나 또는 어떠한 대응하는 중복 코딩 픽처에도 포함되어 있지 않다면, 디코더들은 어떠한 전유의 오류 은닉 알고리즘(proprietary error concealment algorithm)을 사용해서 이러한 없어진 매크로블록들을 은닉해야 한다. 이와 대조적으로, "코딩되지 않은(not coded)" 매크로블록들을 위한 특정 표준 디코딩 과정(specific normative decoding process)이 존재한다.
다음에, 본 발명은 도 5의 시스템을 참조하여 상세하게 기술될 것이며, 상기 시스템은 디코더(1), 도 6의 선택적인 가정적 레퍼런스 디코더(Hypothetical Reference Decoder, HRD)(5), 도 7의 디코더(2)로 이루어진다. 인코딩될 픽처들은 예를 들면, 비디오 소스(3), 예컨대 카메라, 비디오 녹화기 등으로부터의 비디오 스트림의 픽처들일 수 있다. 비디오 스트림들의 픽처들(프레임들)은 슬라이스들과 같은 더 작은 부분들로 쪼개질 수 있다. 상기 슬라이스들은 블록들로 더 쪼개질 수 있다. 인코더(1)에서, 비디오 스트림은 전송 채널(4)을 통해 전송되는 정보 또는 저장 매체(미도시)로 전송되는 정보를 감소시키기 위해 인코딩된다. 비디오 스트림의 픽처들은 인코더(1)로 입력된다. 인코더는 인코딩될 일부 픽처들의 일부를 임시로 저장하기 위한 인코딩 버퍼(1.1)(도 6)를 가지고 있다. 상기 인코더(1)는 또한 메모리(1.3) 및 프로세서(1.2)를 포함하며, 여기서 본 발명에 따른 인코딩 작업들이 수행될 수 있다. 메모리(1.3) 및 프로세서(1.2)는 전송 장치(6)와 함께 보편적일 수 있거나, 또는 전송 장치(6)는 상기 전송 장치(6)의 다른 기능들을 위해 다른 프로세서 및/또는 메모리(미도시)를 가질 수 있다. 인코더(1)는 비디오 스트림을 압축하기 위해 움직임 추정(motion estimation) 및/또는 일부 다른 작업들을 수행한다. 움직임 추정에서 인코딩될 픽처(현재의 픽처) 및 이전의 및/또는 이후의 픽처의 유사점들이 검색된다. 만약 유사점들이 발견된다면, 비교된 픽처(compared picture) 또는 그의 일부는 인코딩될 픽처에 대한 레퍼런스 픽처로서 사용될 수 있다. JVT에서, 픽처들의 디코딩 순서(order) 및 디스플레이 순서(order)는 반드시 같을 필요는 없으며, 레퍼런스 픽처는 레퍼런스 픽처로서 사용되는 한, 버퍼(예를 들면, 인코딩 버퍼(1.1))에 저장되어야 한다. 인코더(1)는 또한 픽처들의 디스플레이 순서에 대한 정보를 전송 스트림에 포함시킨다. 실제로, 타이밍 정보 SEI 메시지 또는 (RTP 타임스탬프들과 같은) JVT 신택스 외부의 타임스탬프들중 어느 하나가 사용될 수 있다.
인코딩 프로세스로부터, 상기 인코딩된 픽처들(encoded pictures)은 인코딩 픽처 버퍼(1.2)로 이동된다. 상기 인코딩된 픽처들은 전송 채널(4)을 통해 인코더(1)로부터 디코더(2)로 전송된다. 디코더(2)에서, 인코딩된 픽처들은 가능한 한 인코딩된 픽처들에 대응하는 압축해제된 픽처들(uncompressed pictures)을 생성하기 위해 디코딩된다. 디코딩 이후에 바로 실질적으로 디스플레이되지 않는다면 각각의 디코딩된 픽처는 디코더(2)의 DPB(2.1)에 버퍼링되며, 레퍼런스 픽처로서는 사용되지 않는다. 유리하게도, 레퍼런스 픽처 버퍼링 및 디스플레이 픽처 버퍼링 모두는 결합되며, 그것들은 같은 디코딩 픽처 버퍼(2.1)를 사용한다. 이것은 같은 픽처들을 2개의 다른 장소들에 저장할 필요가 없게 하며, 따라서 디코더(2)의 메모리 요구 조건들을 감소시킨다.
디코더(1)는 또한 메모리(2.3) 및 프로세서(2.2)를 포함하며, 여기서 본 발명에 따른 디코딩 작업들이 수행될 수 있다. 상기 메모리(2.3) 및 프로세서(2.2)는 수신 장치(8)와 함께 보편적일 수 있거나, 또는 수신 장치(8)는 수신 장치(8)의 다른 기능들을 위한 다른 프로세서 및/또는 메모리(미도시)를 가질 수 있다.
인코딩( Encoding )
이제 인코딩-디코딩 프로세스를 더욱 상세하게 기술하기로 한다. 비디오 소스(3)로부터 나오는 픽처들은 인코더(1)로 입력되며, 바람직하게는 프리-인코딩 버퍼(pre-encoding buffer)(1.1)에 저장된다. 상기 픽처들을 저장하는 2개의 주된 이유들이 있다. 첫번째로, 인코딩될 픽처 이후에 도착하는 픽처들은 비트 레이트 제어 알고리즘으로 분석되며, 따라서 픽처들의 품질에는 현저한 변형들이 없다. 둘째로, 픽처들의 코딩 순서(및 디코딩 순서)는 픽처들의 캡처 순서와는 다르다. 이러한 종류의 장치는 압축 효율의 관점(예를 들면, PBBBP 프레임 시퀀스에서 다른 B 프레임들 사이의 B 프레임은 다른 2개의 B 프레임들에 대한 레퍼런스 프레임이다) 및/또는 오류 강인화(error resilience)의 관점(인트라 픽처 연기(intra picture postpone))에서 효과적일 수 있다.
인코딩 프로세스는 반드시 주된 픽처가 인코더로 입력된 이후 즉시 개시되지는 않지만, 어떠한 양의 픽처들이 인코딩 버퍼(1.1)에서 이용 가능한 이후에 개시된다. 그러면, 인코더(1)는 레퍼런스 프레임들로서 사용되기 위해 픽처들로부터 적절한 후보들을 검색하려고 시도한다. 다음에 인코더(1)는 인코딩 픽처들(encoded pictures)을 생성하기 위해 인코딩을 수행한다. 상기 인코딩 픽처들은 예를 들면, 예측 픽처들(predicted pictures)(P), 쌍-예측 픽처들(bi-predictive pictures)(B), 및/또는 인트라-코딩 픽처들(Intra-coded pictures)(I)일 수 있다. 인트라 코딩 픽처들은 어떠한 다른 픽처들을 사용하지 않고 디코딩될 수 있지만, 다른 타입의 픽처들은 그들이 디코딩될 수 있기 전에 적어도 하나의 레퍼런스 픽처는 필요로 한다. 위에서 언급된 픽처 타입들중 어떠한 것의 픽처들도 레퍼런스 픽처로서 사용될 수 있다.
바람직하게는, 인코더는 2개의 타임 스탬프들을 픽처들에 부착시키는데, 디코딩 타임 스탬프(Decoding Time Stamp, DTS) 및 출력 타임 스탬프(Output Time Stamp, OTS)가 그것이다. 디코더는 타임 스탬프를 사용해서 올바른 디코딩 시간 및 픽처들을 출력(디스플레이)할 올바른 시간을 결정할 수 있다. 그러나, 그러한 타임 스탬프들은 반드시 디코더로 전송될 필요는 없으며, 또한 디코더는 타임 스탬프들을 사용하지도 않는다.
인코더(1)는 오류 강인화를 개선시키기 위해 중복 코딩된 픽처들 또는 픽처들의 중복 코딩된 데이터 파티션들을 생성할 수 있다. 본 발명에 따르면, 인코더는 픽처를 디코딩하기 위한 모든 필요한 정보가 아닌 그 일부(들)만을 포함하는 중복 픽처들을 생성할 수 있다. 인코더(1)는 또한 동일한 픽처에 대하여 하나 이상의 다른 중복 코딩된 데이터 파티션들을 생성할 수 있으며, 다른 중복 코딩된 데이터 파티션들은 상기 픽처의 적어도 부분적으로는 다른 영역들로부터의 정보를 포함한다. 가장 작은 중복 코딩 픽처는 바람직하게는 슬라이스로 이루어진다. 상기 슬라이스는 하나 이상의 매크로블록들을 포함한다.
바람직하게는, 인코더(1)는 어떤 픽처들이 중복으로 코딩되어야 하는 영역들을 포함하는지를 결정한다. 이러한 선택의 기준은 다른 실시예들 및 다른 상황들에 따라 변할 수 있다. 예를 들면, 인코더(1)는 연속하는 픽처들간에 가능한 장면 변화가 존재하는지 또는 어떠한 다른 이유로 연속하는 픽처들간에 많은 변화들이 존재하는지를 검사할 수 있다. 각각, 인코더(1)는 픽처들의 어느 부분들이 중복으로 인코딩되어야 하는지를 결정하기 위해 픽처들의 일부 부분들에서 변화들이 있는지를 검사할 수 있다. 이것을 결정하기 위하여, 예를 들면 인코더(1)는 움직임 벡터들을 검사하여 중요한 영역들을 및/또는 전송/디코딩 오류들에 특히 민감한 영역들을 발견하고, 그러한 영역들의 중복 코딩된 데이터 파티션들을 생성할 수 있다.
스트림에 중복 슬라이스들이 존재하는지를 나타내기 위해 전송 스트림에는 어떠한 표시가 있어야 한다. 상기 표시는 바람직하게는 각 슬라이스의 슬라이스 헤더 및/또는 픽처 파라미터 세트에 삽입된다. 상기 표시의 한가지 바람직한 실시예는 중복 슬라이스들에 대해 2개의 신택스 요소들을 사용하는데, 그 첫번째 신택스 요소는 픽처 파라미터 세트에 있는 "redundant_slice_flag"이며, 다른 신택스 요소는 "redundant_pic_cnt"로, 이것은 슬라이스 헤더내에 존재한다. "redundant_pic_cnt"는 선택적이며, 참조된 픽처 파라미터에 있는 "redundant_slice_flag"가 1로 세팅될 때에만 슬라이스 헤더에 포함된다.
2개의 신택스 요소들의 의미론(semantics)은 다음과 같다. redundant_slice_flag는 픽처 파라미터 세트를 참조하는 모든 슬라이스 헤더들에 있는 redundant_pic_cnt 파라미터의 존재를 나타낸다. 만약 모든 파라미터들이 상기 슬라이스들에 대해 같다면, 픽처 파라미터 세트는 하나 이상의 슬라이스에 대해 공통일 수 있다. 만약 redundant_slice_flag의 값이 참(true)이라면, 이러한 파라미터 세트를 지칭하는 그러한 슬라이스들의 슬라이스 헤더들은 제2 신택스 요소(redundant_pic_cnt)를 포함한다.
redundant_pic_cnt의 값은 픽처 콘텐트들의 주된 표현에 속하는 데이터 파티션들 및 코딩된 슬라이스들에 대해 0이다. redundant_pic_cnt는 픽처 콘텐트들의 중복 코딩된 표현을 포함하는 데이터 파티션들 및 코딩된 슬라이스들에 대해서는 0보다 크다. 픽처의 디코딩된 주된 표현 및 어떠한 디코딩된 중복 슬라이스들의 함께 위치한 영역들 사이에는 인지 가능한 차이가 있어서는 안된다. redundant_pic_cnt의 값과 같은 값을 가지는 데이터 파티션들 및 중복 슬라이스들은 같은 중복 픽처에 속한다. 같은 redundant_pic_cnt를 가지는 디코딩된 슬라이스들은 오버랩될 수 없다. 0보다 큰 redundant_pic_cnt를 가지는 디코딩된 슬라이스들은 전체 픽처 영역을 커버할 수 없다. 상기 픽처들은 nal_storage_idc로 불리는 파라미터를 가질 수 있다. 만약 주된 픽처의 nal_storage_idc의 값이 0이라면, 대응하는 중복 픽처들에 있는 nal_storage_idc의 값은 0일 것이다. 만약 주된 픽처의 nal_storage_idc의 값이 0이 아니라면, 대응하는 중복 픽처들에 있는 nal_storage_idc의 값은 0이 아닐 것이다.
위에서 기술된 신택스 설계는 데이터 분할(partitioning)이 중복 슬라이스들에 대해 적용되지 않을 때 작 작용된다. 그러나, 데이터 분할이 사용될 때, 즉 각 중복 슬라이스가 3개의 데이터 파티션들, DPA, DPB, DPC를 가질 때에는 어느 중복 슬라이스가 문제인지를 디코더에게 알리기 위해 또 다른 메커니즘이 필요하다. 이를 얻기 위해, DPA의 슬라이스 헤더 외에도 DPB 및 DPC 모두의 슬라이스 헤더들에 redundant_pic_cnt가 포함된다. 만약 슬라이스 데이터 분할(slice data partitioning)이 사용중이라면, 상기 슬라이스의 디코딩을 가능하게 하기 위해, 슬라이스 데이터 파티션 B 및 C는 각각의 슬라이스 데이터 파티션 A과 연관되어야 한다. 슬라이스 데이터 파티션 A는 slice_id 신택스 요소를 포함하며, slice_id 신택스 요소의 값은 코딩된 픽처에 있는 슬라이스를 유일하게 식별한다. 만약 (참조된 픽처 파라미터 세트의 redundant_slice_flag의 값을 조건으로 하는) 슬라이스 데이터 파티션 A에 포함된 슬라이스 헤더에 redundant_pic_cnt가 또한 존재한다면, 슬라이스 데이터 파티션들 B 및 C는 redundant_pic_cnt 신택스 요소를 포함한다. redundant_pic_cnt 식텍스 요소의 값은 슬라이스 데이터 파티션들 B 및 C을 특정한 주된 코딩 픽처 또는 중복 코딩된 픽처에 연관시키기 위해 사용된다. redundant_pic_cnt에 부가하여, 슬라이스 데이터 파티션 B 및 C는 slice_id 신택스 요소를 포함하며, 상기 slice_id 신택스 요소는 데이터 파티션 및 같은 코딩된 픽처의 각각의 데이터 파티션 A를 결합시키기 위해 사용된다.
전송( Transmission )
인코딩된 픽처들의 전송 및/또는 저장 (및 선택적인 가상 디코딩)은 첫번째 인코딩된 픽처가 준비된 이후에 즉시 개시될 수 있다. 이러한 픽처는 디코더 출력 순서에서 반드시 첫번째 것일 필요는 없는데, 그 이유는 디코딩 순서 및 출력 순서는 같지 않을 수 있기 때문이다.
비디오 스트림의 첫번째 픽처가 인코딩될 때, 전송이 개시될 수 있다. 인코딩된 픽처들은 선택적으로 인코딩 픽처 버퍼(1.2)에 저장된다. 상기 전송은 또한 이후의 단계, 예를 들면 비디오 스트림의 어떠한 부분이 인코딩된 이후에 개시될 수 있다.
어떠한 전송 시스템들에서는 전송된 중복 픽처들의 수는 그중에서 특히 트래픽 양, 무선 링크에서의 비트 에러 레이트 등과 같은 네트워크 조건들에 의존한다. 바꾸어 말하면, 반드시 모든 중복 픽처들이 전송되지는 않는다.
디코딩( Decoding )
다음, 수신기(8)의 동작이 기술될 것이다. 수신기(8)는 픽처에 속하는 모든 패킷들을 수집하고, 그것들은 합리적인 순서로 가져온다. 순서의 엄격함은 사용되는 프로파일에 의존한다. 수신된 패킷들은 바람직하게는 수신 버퍼(9.1)(프리-디코딩 버퍼)에 저장된다. 수신기(8)는 사용할 수 없는 모든 것을 폐기하며, 나머지들은 디코더(2)로 전달한다.
만약 픽처의 주된 표현(primary representation) 또는 그의 일부가 손실되거나 또는 디코딩 오류(들)이 존재한다면, 디코더는 상기 픽처를 디코딩하기 위해 중복 코딩된 슬라이스들중 일부를 사용할 수 있다. 디코더(2)는 슬라이스 id:s 또는 문제된 픽처를 식별하는 다른 정보를 인코더(1)로 전송할 수 있다. 디코더(2)가 모든 필요한 이용 가능한 슬라이스들을 가진다면, 픽처의 디코딩을 개시할 수 있다. 중복 코딩된 데이터 파티션들의 사용에도 불구하고, 일부 슬라이스들은 디코더(2)에서 이용 가능하지 않을 수 있다. 그러한 경우에는 디코더(2)는 픽처 품질에 대한 오류의 영향들을 줄이기 위해 예를 들면 어떠한 오류 복구 방법들을 시도할 수 있거나, 디코더(2)는 오류가 있는 픽처를 폐기하고 대신 일부의 이전 픽처를 사용할 수 있다.
본 발명은 많은 종류의 시스템들 및 장치들에 적용될 수 있다. 인코더(1) 및 선택적으로 HRD(5)를 포함하는 전송 장치(6)는 유리하게도 인코딩된 픽처들을 전송 채널(4)로 전송하기 위한 송신기(7)를 또한 포함한다. 수신 장치(8)는 인코딩된 픽처들을 수신하기 위한 수신기(9), 디코더(2), 및 디코딩된 픽처들이 디스플레이될 수 있는 디스플레이(10)를 포함한다. 전송 채널은 예를 들면, 지상통신선(land line) 통신 채널 및/또는 무선 통신 채널일 수 있다. 전송 장치 및 수신 장치는 또한 본 발명에 따른 비디오 스트림의 인코딩/디코딩 프로세스를 제어하기 위한 필요한 단계들을 수행할 수 있는 하나 이상의 프로세서들(1.2, 2.2)를 포함한다. 따라서, 본 발명에 따른 방법은 주로 상기 프로세서들의 기계로 실행 가능한 단계들로서 구현될 수 있다. 픽처들의 버퍼링은 장치들의 메모리(1.3, 2.3)에서 구현될 수 있다. 인코더의 프로그램 코드(1.4)는 메모리(1.3)에 저장될 수 있다. 각각, 디코더의 프로그램 코드(2.4)는 메모리(2.3)에 저장될 수 있다.

Claims (23)

  1. 픽처들을 인코딩하기 위한 방법에 있어서,
    - 주된 코딩 픽처들(primary coded pictures) 및 상기 주된 코딩 픽처들의 중복 코딩 픽처들(redundant coded pictures)이 생성되는 단계;를 포함하고, 각각의 주된 코딩 픽처는 본질적으로 상기 각각의 중복 코딩 픽처와 같은 픽처 정보를 포함하며,
    - 상기 중복 코딩 픽처들 중 적어도 하나는 상기 각각의 주된 코딩 픽처의 픽처 정보의 일부에만 대응하는 픽처 정보를 포함하는 것을 특징으로 하는 인코딩 방법.
  2. 제1항에 있어서, 상기 방법은
    적어도 상기 주된 코딩 픽처들을 디코더로 전송하는 전송단계;를 더 포함하는 것을 특징으로 하는 인코딩 방법.
  3. 제1항에 있어서, 인코딩되는 상기 픽처들은
    슬라이스들을 포함하며, 상기 중복 코딩 픽처들은 상기 주된 코딩 픽처의 상기 슬라이스들중 일부를 포함하는 것을 특징으로 하는 인코딩 방법.
  4. 제1항에 있어서, 상기 각각의 주된 코딩 픽처의 일부만을 포함하는 상기 중복 코딩 픽처들은
    중복 코딩 데이터 일부들(portions)로서 생성되는 것을 특징으로 하는 인코딩 방법.
  5. 제4항에 있어서, 적어도 하나의 파라미터 세트가 상기 픽처들에 대해 생성되며, 슬라이스 헤더가 각 슬라이스에 대해 생성되며, 전송 스트림이 중복 코딩 데이터 파티션들의 슬라이스들을 포함하는지의 표시가 상기 파라미터 세트에 삽입되며, redundant_pic_cnt 파라미터가 상기 중복 코딩 데이터 파티션들의 각 슬라이스 헤더에 삽입되는 것을 특징으로 하는 인코딩 방법.
  6. 비트스트림으로부터 픽처들을 디코딩하기 위한 방법에 있어서,
    주된 코딩 픽처들 및 상기 주된 코딩 픽처들의 중복 코딩 픽처들이 상기 비트스트림에 포함되며, 상기 주된 코딩 픽처들은 본질적으로 상기 각각의 중복 코딩 픽처들을 생성하기 위해 사용된 것과 같은 픽처 정보를 사용해서 생성되며,
    상기 중복 코딩 픽처들중 적어도 하나는 상기 각각의 주된 코딩 픽처의 픽처 정보의 일부에만 대응하는 픽처 정보를 포함하는 단계;
    상기 코딩 픽처 정보가 중복 코딩 픽처에 속한다는 것을 나타내는 파라미터를 비트스트림에서 검출하는 단계; 및
    상기 파라미터를 사용해서 중복 코딩 픽처에 속하는 상기 코딩 픽처 정보의 디코딩을 제어하는 단계;를 포함하며, 상기 중복 코딩 픽처 정보는 상기 각각의 주된 코딩 픽처를 생성하기 위해 사용되는 상기 픽처 정보의 일부에만 대응하는 것을 특징으로 하는 디코딩 방법.
  7. 제6항에 있어서, 상기 방법은
    적어도 상기 주된 코딩 픽처들을 수신하는 수신 단계;를 더 포함하는 것을 특징으로 하는 디코딩 방법.
  8. 제7항에 있어서, 상기 방법은
    상기 중복 코딩 픽처들을 수신하는 단계;를 더 포함하는 것을 특징으로 하는 디코딩 방법.
  9. 제8항에 있어서, 상기 방법은
    주된 코딩 픽처들이 디코딩될 수 없는 영역들을 포함하는지를 결정하는 단계;를 포함하며, 상기 방법은
    상기 중복 코딩 픽처들이 디코딩될 수 없는 상기 주된 코딩 픽처들의 영역들에 대한 디코딩 가능한 정보를 포함하는지를 검사하는 단계; 및 상기 검사에 기초하여 발견되는 중복 코딩 픽처들을 디코딩하는 단계;를 포함하는 것을 특징으로 하는 디코딩 방법.
  10. 제9항에 있어서, 적어도 하나의 파라미터 세트(set)가 상기 픽처들에 대해 생성되며, 여기서 슬라이스 헤더가 각 슬라이스에 대해 생성되며, 여기서 전송 스트림이 중복 코딩 데이터 파티션들의 슬라이스들을 포함하는지의 표시가 상기 파라미터 세트에 삽입되고, redundant_pic_cnt 파라미터가 상기 중복 코딩 데이터 파티션들의 각 슬라이스 헤더에 삽입되며, 여기서 상기 표시 및 상기 redundant_pic_cnt 파라미터는 상기 주된 코딩 픽처들 및 상기 중복 코딩 픽처들을 구별하기 위해 사용되는 것을 특징으로 하는 디코딩 방법.
  11. 픽처들을 인코딩하기 위한 인코더로서,
    주된 코딩 픽처들 및 상기 주된 코딩 픽처들의 중복 코딩 픽처들을 생성하는 인코딩 수단;을 포함하며, 각각의 주된 코딩 픽처는 본질적으로 상기 각각의 중복 코딩 픽처와 같은 픽처 정보를 포함하며, 상기 중복 코딩 픽처들중 적어도 하나는 상기 각각의 주된 코딩 픽처의 픽처 정보의 일부에만 대응하는 픽처 정보를 포함하는 것을 특징으로 하는 인코더.
  12. 비트스트림으로부터 픽처들을 디코딩하기 위한 디코더로서, 상기 비트스트림은
    - 주된 코딩 픽처들 및 상기 주된 코딩 픽처들의 중복 코딩 픽처들을 포함하며, 상기 주된 코딩 픽처들은 본질적으로 상기 각각의 중복 코딩 픽처들을 생성하기 위해 사용된 것과 같은 픽처 정보를 사용해서 생성되고,
    - 상기 중복 코딩 픽처들중 적어도 하나는 상기 각각의 주된 코딩 픽처의 픽처 정보의 일부에만 대응하는 픽처 정보를 포함하며; 상기 디코더는
    상기 코딩 픽처 정보가 중복 코딩 픽처에 속한다는 것을 나타내는 파라미터를 비트스트림에서 검출하기 위한 검출 수단; 및
    상기 파라미터를 사용해서 중복 코딩 픽처에 속하는 상기 코딩 픽처 정보의 상기 디코딩을 제어하는 제어 수단;을 포함하며, 상기 중복 코딩 픽처 정보는 상기 각각의 주된 코딩 픽처를 생성하기 위해 사용되는 상기 픽처 정보의 일부에만 대응하는 것을 특징으로 하는 디코더.
  13. 픽처들을 인코딩하기 위한 인코더를 포함하는 전송 장치로서,
    주된 코딩 픽처들 및 상기 주된 코딩 픽처들의 중복 코딩 픽처들을 생성하기 위한 인코딩 수단;을 포함하며, 각각의 주된 코딩 픽처는 본질적으로 상기 각각의 중복 코딩 픽처와 같은 픽처 정보를 포함하며, 상기 중복 코딩 픽처들중 적어도 하나는 상기 각각의 주된 코딩 픽처의 픽처 정보의 일부에만 대응하는 픽처 정보를 포함하는 것을 특징으로 하는 전송 장치.
  14. 제13항에 있어서, 상기 전송 장치는
    적어도 상기 주된 코딩 픽처들을 디코더로 전송하기 위한 송신기;를 더 포함하는 것을 특징으로 하는 전송 장치.
  15. 제13항에 있어서, 인코딩될 상기 픽처들은
    슬라이스들을 포함하며, 상기 중복 코딩 픽처들은 상기 주된 코딩 픽처의 상기 슬라이스들중 일부를 포함하는 것을 특징으로 하는 전송 장치.
  16. 제13항에 있어서, 상기 전송 장치는
    상기 픽처들에 대한 적어도 하나의 파라미터 세트 및 각 슬라이스에 대한 슬라이스 헤더를 생성하는 수단; 및
    전송 스트림이 상기 중복 코딩 데이터 파티션들의 슬라이스들을 포함하는지의 표시를 상기 파라미터 세트에 삽입하고, redundant_pic_cnt 파라미터를 상기 중복 코딩 데이터 파티션들의 각 슬라이스 헤더에 삽입하기 위한 수단;을 포함하는 것을 특징으로 하는 전송 장치.
  17. 비트스트림으로부터 픽처들을 디코딩하기 위한 디코더를 포함하는 수신 장치로, 상기 비트스트림은
    - 주된 코딩 픽처들 및 상기 주된 코딩 픽처들의 중복 코딩 픽처들을 포함하며, 상기 주된 코딩 픽처들은 본질적으로 상기 각각의 중복 코딩 픽처들을 생성하기 위해 사용된 것과 같은 픽처 정보를 사용해서 생성되며,
    상기 중복 코딩 픽처들중 적어도 하나는 상기 각각의 주된 코딩 픽처의 픽처 정보의 일부에만 대응하는 픽처 정보를 포함하며; 상기 디코더는
    상기 코딩 픽처 정보가 중복 코딩 픽처에 속한다는 것을 나타내는 파라미터를 비트스트림에서 검출하기 위한 검출 수단; 및
    상기 파라미터를 사용해서 중복 코딩 픽처에 속하는 상기 코딩 픽처 정보의 상기 디코딩을 제어하는 제어 수단;을 포함하며, 상기 중복 코딩 픽처 정보는 상기 각각의 주된 코딩 픽처를 생성하기 위해 사용되는 상기 픽처 정보의 일부에만 대응하는 것을 특징으로 하는 수신 장치.
  18. - 주된 코딩 픽처들 및 상기 주된 코딩 픽처들의 중복 코딩 픽처들을 생성하기 위한 인코딩 수단을 포함하는 픽처들을 인코딩하기 위한 인코더로, 각각의 주된 코딩 픽처는 본질적으로 상기 각각의 중복 코딩 픽처들과 같은 픽처 정보를 포함하며, 상기 중복 코딩 픽처들중 적어도 하나는 상기 각각의 주된 코딩 픽처의 픽처 정보의 일부에만 대응하는 픽처 정보를 포함하는 인코더; 및
    적어도 상기 주된 코딩 픽처들을 디코더로 전송하기 위한 송신기;를 포함하는 시스템으로서, 상기 디코더는
    상기 코딩 픽처 정보가 중복 코딩 픽처에 속한다는 것을 나타내는 파라미터를 비트스트림에서 검출하기 위한 검출 수단; 및
    상기 파라미터를 사용해서 중복 코딩 픽처에 속하는 상기 코딩 픽처 정보의 상기 디코딩을 제어하는 제어 수단;을 포함하며, 상기 중복 코딩 픽처 정보는 상기 각각의 주된 코딩 픽처를 생성하기 위해 사용되는 상기 픽처 정보의 일부에만 대응하는 것을 특징으로 하는 시스템.
  19. 픽처들을 인코딩하기 위한 기계로 실행 가능한 단계들을 포함하는 소프트웨어 프로그램으로, 상기 기계로 실행 가능한 단계들은
    주된 코딩 픽처들 및 상기 주된 코딩 픽처들의 중복 코딩 픽처들을 생성하는 단계;를 포함하며, 각각의 주된 코딩 픽처는 본질적으로 상기 각각의 중복 코딩 픽처와 같은 픽처 정보를 포함하며,
    상기 중복 코딩 픽처들중 적어도 하나는 상기 각각의 주된 코딩 픽처의 픽처 정보의 일부에만 대응하는 픽처 정보를 포함하는 것을 특징으로 하는 소프트웨어 프로그램.
  20. 비트스트림으로부터 픽처들을 디코딩하기 위한 기계로 실행 가능한 단계들을 포함하는 소프트웨어 프로그램으로,
    - 주된 코딩 픽처들 및 상기 주된 코딩 픽처들의 중복 코딩 픽처들은 상기 비트스트림에 포함되며, 상기 주된 코딩 픽처들은 본질적으로 상기 각각의 중복 코딩 픽처들을 생성하기 위해 사용되는 것과 같은 픽처 정보를 사용해서 생성되며,
    - 상기 중복 코딩 픽처들중 적어도 하나는 상기 각각의 주된 코딩 픽처의 픽처 정보의 일부에만 대응하는 픽처 정보를 포함하며, 상기 소프트웨어 프로그램은
    중복 코딩 픽처에 속하는 상기 코딩 픽처 정보를 나타내는 파라미터를 비트스트림에서 검출하는 단계; 및
    상기 파라미터를 사용해서 중복 코딩 픽처에 속하는 상기 코딩 픽처 정보의 상기 디코딩을 제어하는 단계;를 위한 기계로 실행 가능한 단계들을 포함하며, 상기 중복 코딩 픽처 정보는 상기 각각의 주된 코딩 픽처를 생성하기 위해 사용되는 상기 픽처 정보의 일부에만 대응하는 것을 특징으로 하는 소프트웨어 프로그램.
  21. 픽처들을 인코딩하기 위해 기계로 실행 가능한 단계들을 포함하는 소프트웨어 프로그램을 저장하기 위한 저장 매체로서,
    주된 코딩 픽처들 및 상기 주된 코딩 픽처들의 중복 코딩 픽처들을 생성하기 위한 기계로 실행 가능한 단계들;을 포함하고, 각각의 주된 코딩 픽처는 본질적으로 상기 각각의 중복 코딩 픽처와 같은 픽처 정보를 포함하며,
    상기 중복 코딩 픽처들중 적어도 하나는 상기 각각의 주된 코딩 픽처의 픽처 정보의 일부에만 대응하는 픽처 정보를 포함하는 것을 특징으로 하는 저장 매체.
  22. 비트스트림으로부터 픽처들을 디코딩하기 위한 기계로 실행 가능한 단계들을 포함하는 소프트웨어 프로그램을 저장하기 위한 저장 매체로서,
    - 주된 코딩 픽처들 및 상기 주된 코딩 픽처들의 중복 코딩 픽처들이 상기 비트스트림에 포함되며, 상기 주된 코딩 픽처들은 본질적으로 상기 각각의 중복 코딩 픽처들을 생성하기 위해 사용된 것과 같은 픽처 정보를 사용해서 생성되며,
    - 상기 중복 코딩 픽처들중 적어도 하나는 상기 각각의 주된 코딩 픽처의 픽처 정보의 일부에만 대응하는 픽처 정보를 포함하며, 상기 소프트웨어 프로그램은
    상기 코딩 픽처 정보가 중복 코딩 픽처에 속한다는 것을 나타내는 파라미터를 비트스트림에서 검출하는 단계; 및
    상기 파라미터를 사용해서 중복 코딩 픽처에 속하는 상기 코딩 픽처 정보의 디코딩을 제어하는 단계;를 위한 기계로 실행 가능한 단계들을 포함하며, 상기 중복 코딩 픽처 정보는 상기 각각의 주된 코딩 픽처를 생성하기 위해 사용되는 상기 픽처 정보의 일부에만 대응하는 것을 특징으로 하는 저장 매체.
  23. 주된 코딩 픽처들 및 상기 주된 코딩 픽처들의 중복 코딩 픽처들을 포함하는 비트스트림으로서, 각각의 주된 코딩 픽처는 본질적으로 상기 각각의 중복 코딩 픽처와 같은 픽처 정보를 포함하며, 상기 중복 코딩 픽처들중 적어도 하나는 상기 각각의 주된 코딩 픽처의 픽처 정보의 일부에만 대응하는 픽처 정보를 포함하는 것을 특징으로 하는 비트스트림.
KR1020057020571A 2003-04-30 2004-04-29 픽처 코딩 방법 KR20050122281A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/427,737 2003-04-30
US10/427,737 US20040218669A1 (en) 2003-04-30 2003-04-30 Picture coding method

Publications (1)

Publication Number Publication Date
KR20050122281A true KR20050122281A (ko) 2005-12-28

Family

ID=33310239

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057020571A KR20050122281A (ko) 2003-04-30 2004-04-29 픽처 코딩 방법

Country Status (11)

Country Link
US (1) US20040218669A1 (ko)
EP (1) EP1618747A1 (ko)
JP (1) JP2006526908A (ko)
KR (1) KR20050122281A (ko)
CN (1) CN1781314A (ko)
AR (1) AR044118A1 (ko)
BR (1) BRPI0409491A (ko)
MX (1) MXPA05011533A (ko)
MY (1) MY137090A (ko)
TW (1) TWI253868B (ko)
WO (1) WO2004098196A1 (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101248675B (zh) * 2004-02-09 2010-12-15 松下电器产业株式会社 播放接收装置、播放接收方法和播放接收电路
JP4564350B2 (ja) * 2004-12-27 2010-10-20 株式会社東芝 信号処理装置
AU2006231216A1 (en) * 2005-04-07 2006-10-12 Nokia Corporation Buffering in streaming delivery
US8289370B2 (en) 2005-07-20 2012-10-16 Vidyo, Inc. System and method for scalable and low-delay videoconferencing using scalable video coding
WO2008060262A1 (en) * 2005-09-07 2008-05-22 Vidyo, Inc. System and method for scalable and low-delay videoconferencing using scalable video coding
US7933294B2 (en) 2005-07-20 2011-04-26 Vidyo, Inc. System and method for low-delay, interactive communication using multiple TCP connections and scalable coding
FR2894739A1 (fr) * 2005-12-12 2007-06-15 Thomson Licensing Sa Procede de codage, procede de decodage, dispositif de codage et dispositif de decodage de donnees video
US7827467B2 (en) * 2006-01-04 2010-11-02 Nokia Corporation Method for checking of video encoder and decoder state integrity
KR100889745B1 (ko) * 2006-01-09 2009-03-24 한국전자통신연구원 날 유닛 타입 표시방법 및 그에 따른 비트스트림 전달장치및 리던던트 슬라이스 부호화 장치
JP5313880B2 (ja) * 2006-04-20 2013-10-09 トムソン ライセンシング 冗長ビデオ符号化方法および装置
US8520733B2 (en) * 2006-06-30 2013-08-27 Core Wireless Licensing S.A.R.L Video coding
US7584495B2 (en) * 2006-06-30 2009-09-01 Nokia Corporation Redundant stream alignment in IP datacasting over DVB-H
CN101513068B (zh) * 2006-09-28 2013-10-09 汤姆森许可贸易公司 一种冗余编码方法、产生编码的设备和方法及接收编码的方法
US9872045B2 (en) 2006-10-16 2018-01-16 Conversant Wireless Licensing S.A R.L. Method, electronic device, system, computer program product and circuit assembly for reducing error in video coding
CA2676195C (en) * 2007-02-23 2013-07-23 Nokia Corporation Backward-compatible characterization of aggregated media data units
US8953685B2 (en) * 2007-12-10 2015-02-10 Qualcomm Incorporated Resource-adaptive video interpolation or extrapolation with motion level analysis
FR2932036B1 (fr) * 2008-06-03 2011-01-07 Thales Sa Procede et systeme permettant de proteger un flux video compresse contre les erreurs survenant lors d'une transmission
US20100027614A1 (en) * 2008-08-04 2010-02-04 Legend Silicon Corp. Error awareness and means for remedying same in video decoding
JP5100572B2 (ja) * 2008-08-25 2012-12-19 キヤノン株式会社 符号化装置
US8934530B2 (en) * 2011-02-01 2015-01-13 Vidyo, Inc. Spatial scalability using redundant pictures and slice groups
EP2684293A4 (en) 2011-03-10 2014-10-29 Vidyo Inc SET OF DEPENDENCY PARAMETERS FOR EVOLVING VIDEO CODING
US9826238B2 (en) 2011-06-30 2017-11-21 Qualcomm Incorporated Signaling syntax elements for transform coefficients for sub-sets of a leaf-level coding unit
CN102438150B (zh) * 2011-09-29 2013-10-30 华中科技大学 一种抗信道误码的图像无损压缩检纠错编解码方法
CN107801030B (zh) * 2012-04-23 2020-10-09 太阳专利托管公司 解码方法、解码装置以及编码方法、编码装置
US9313486B2 (en) 2012-06-20 2016-04-12 Vidyo, Inc. Hybrid video coding techniques
CN105103554A (zh) * 2013-03-28 2015-11-25 华为技术有限公司 用于保护视频帧序列防止包丢失的方法
CN104754341B (zh) * 2013-12-31 2019-02-26 华为技术有限公司 一种视频数据编码、解码的方法和装置
JP6857189B2 (ja) * 2016-02-26 2021-04-14 ヴァーシテック・リミテッドVersitech Limited 画像のロッシー圧縮およびロスレス圧縮のための形状適応モデルベースコーデック
CN108668170B (zh) * 2018-06-01 2021-07-02 北京市商汤科技开发有限公司 图像信息处理方法及装置、存储介质
CN113766319A (zh) * 2018-06-01 2021-12-07 北京市商汤科技开发有限公司 图像信息处理方法及装置、存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5289276A (en) * 1992-06-19 1994-02-22 General Electric Company Method and apparatus for conveying compressed video data over a noisy communication channel
US5557331A (en) * 1993-03-11 1996-09-17 Matsushita Electric Industrial Co., Ltd. Image encoding method, an image encoding circuit, an image encoding apparatus, and an optical disk
JP3629728B2 (ja) * 1994-08-31 2005-03-16 ソニー株式会社 動画像信号符号化方法、動画像信号符号化装置及び動画像信号記録媒体
US5734443A (en) * 1995-12-28 1998-03-31 Philips Electronics North America Corporation Method and device for performing source transitions in a video system which performs entropy encoding
GB2352350B (en) * 1999-07-19 2003-11-05 Nokia Mobile Phones Ltd Video coding
JP2004531925A (ja) * 2001-03-05 2004-10-14 インタービデオインコーポレイテッド 圧縮されたビデオビットストリームにおける冗長な動きベクトルを符号化し復号するシステム及び方法

Also Published As

Publication number Publication date
MY137090A (en) 2008-12-31
WO2004098196A1 (en) 2004-11-11
US20040218669A1 (en) 2004-11-04
JP2006526908A (ja) 2006-11-24
CN1781314A (zh) 2006-05-31
EP1618747A1 (en) 2006-01-25
AR044118A1 (es) 2005-08-24
BRPI0409491A (pt) 2006-05-02
MXPA05011533A (es) 2005-12-12
TWI253868B (en) 2006-04-21
TW200427335A (en) 2004-12-01

Similar Documents

Publication Publication Date Title
KR20050122281A (ko) 픽처 코딩 방법
US7116714B2 (en) Video coding
US8532194B2 (en) Picture decoding method
US8144764B2 (en) Video coding
KR100929558B1 (ko) 비디오 부호화 방법, 복호화 방법, 부호화기, 복호기, 무선 통신 장치 및 멀티미디어 터미널 장치
RU2385541C2 (ru) Изменение размера буфера в кодере и декодере
US7403660B2 (en) Encoding picture arrangement parameter in picture bitstream
JP5007012B2 (ja) ビデオ符号化方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application