KR20080016637A - 인 밴드 에러 패턴을 사용한 에러 복원 - Google Patents

인 밴드 에러 패턴을 사용한 에러 복원 Download PDF

Info

Publication number
KR20080016637A
KR20080016637A KR1020077029202A KR20077029202A KR20080016637A KR 20080016637 A KR20080016637 A KR 20080016637A KR 1020077029202 A KR1020077029202 A KR 1020077029202A KR 20077029202 A KR20077029202 A KR 20077029202A KR 20080016637 A KR20080016637 A KR 20080016637A
Authority
KR
South Korea
Prior art keywords
marker
bitstream
error
modified
decoding
Prior art date
Application number
KR1020077029202A
Other languages
English (en)
Other versions
KR100939951B1 (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 KR20080016637A publication Critical patent/KR20080016637A/ko
Application granted granted Critical
Publication of KR100939951B1 publication Critical patent/KR100939951B1/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/68Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving the insertion of resynchronisation markers into the bitstream
    • 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
    • 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
    • H04N19/895Methods 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 in combination with error concealment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4344Remultiplexing of multiplex streams, e.g. by modifying time stamps or remapping the packet identifiers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Error Detection And Correction (AREA)

Abstract

멀티미디어 데이터를 디코딩하는 방법 및 장치가 개시된다. 일 방법은 인코딩된 비트스트림을 수신하는 단계, 이 비트스트림에서 하나 이상의 잘못된 비트의 위치를 식별하는 단계, 하나 이상의 잘못된 비트를 나타내는 마커를 생성하는 단계, 및 변형된 비트스트림을 생성하기 위해 비트스트림에 마커를 삽입하는 단계를 포함한다. 이 방법은 하나 이상의 잘못된 비트를 나타내는 마커를 사용하여 변형된 비트스트림을 디코딩하는 단계를 더 포함할 수 있다. 이 방법은 마커에 직면하는 경우 에러 핸들링 프로세스를 개시하는 단계를 더 포함할 수 있다.
에러 복원

Description

인 밴드 에러 패턴을 사용한 에러 복원{ERROR RECOVERY USING IN BAND ERROR PATTERNS}
35 U.S.C.§119 하의 우선권 주장
본 특허 출원은 2005년 5월 13일 출원되고 발명의 명칭이 "Application Layer Interactions And Error Signaling" 인 가출원 제 60/680,633 호 및 2006년 4월 4 일 출원되고 발명의 명칭이 "Error Recovery Using In Band Error Patterns" 인 가출원 제 60/789,273 호에 대해 우선권을 주장하며, 이 출원들은 본 양수인에게 양도되었으며, 본 명세서에 참조로서 명백하게 통합되었다.
I. 배경
기술분야
본 발명은 핸드헬드 디바이스 상에서 실시간 스트리밍 미디어를 디코딩하는 방법 및 장치에 관한 것이다.
배경기술
인터넷 및 무선 통신의 폭발적인 성장 및 큰 성공뿐만 아니라 멀티미디어 서비스에 대한 증가하는 요구에 기인하여, 인터넷 및 이동/무선 채널을 통한 스트리밍 미디어가 현저하게 주목받고 있다. 이종 인터넷 프로토콜 (IP) 네트워크에서, 비디오는 서버에 의해 제공되고 하나 이상의 클라이언트에 의해 스트리밍될 수 있다. 유선 접속은 다이얼-업, 통합 서비스 디지털 네트워크 (ISDN), 케이블, 디지털 가입자국 라인 프로토콜 (총칭하여 xDSL 이라 함), 광섬유, 로컬 영역 네트워크 (LAN), 광역 네트워크 (WAN) 등을 포함한다. 송신 모드는 유니캐스트일 수도 있도 멀티캐스트일 수도 있다.
이동/무선 통신은 이종 IP 네트워크와 유사하다. 이동/무선 채널을 통한 멀티미디어 콘텐츠의 전송은, 이러한 채널들이 다중 경로 페이딩, 쉐도잉, 심볼간 간섭 및 잡음 방해에 기인하여 종종 심각하게 손상되기 때문에 매우 도전적이다. 이동성 및 경합적 트래픽과 같은 몇몇 다른 이유 또한 대역폭 변동 및 손실을 유발한다. 채널 잡음 및 서빙되고 있는 사용자의 수가 채널 환경의 시변 특성을 결정한다.
이종 IP 네트워크 및 이동 통신 시스템 모두에서 더 높은 데이터 레이트 및 더 높은 서비스 품질의 요구가 급격하게 증가하고 있다. 그러나, 한정된 지연 시간, 한정된 송신 전력, 한정된 대역폭 및 다중 경로 페이딩과 같은 요소들이 실제 시스템에 의해 핸들링되는 데이터 레이트를 계속하여 제한한다. 멀티미디어 통신에서, 더 상세하게는 에러 유발성 환경에서는, 단일 디코딩값에서의 에러조차도 공간적으로 및 시간적으로 전파하는 아티팩트의 디코딩을 유발할 수 있기 때문에, 송신된 미디어의 에러 회복력 (resilience) 은 소망하는 서비스 품질을 제공하는데 결정적이다. 요구되는 데이터 레이트를 유지하면서 에러를 최소화하기 위해 다양한 인코딩 측정값이 사용되고 있지만, 이러한 기술들 모두는 디코더측에 도달하는 에러를 갖는 문제점을 겪는다.
디코더에 의해 수신되는 잘못된 비트의 수를 최소화하도록 의도되는, 또는 에러 발생시에 데이터 손상을 효율적으로 핸들링하기 위한 다수의 코딩 방식이 존재한다. 예를 들어, 리드-솔로몬 (Reed-Solomon) 코딩과 같은 채널 코딩이 소스 코딩 데이터의 강인성을 개선하기 위해 사용된다. 가변하는 중요도 레벨을 갖는 소스 코딩 데이터에 에러 보호의 가변 레벨을 제공하기 위해, 또는 데이터 패킷의 파티셔닝 및 드롭을 통해 코딩 비디오 데이터의 가용 네트워크 대역폭으로의 레이트 적용을 허용하기 위해, 조인트 소스-채널 코딩 방법이 사용되고 있다. 이것은, 공통 전송 프로토콜이 소스 디코더에 잘못된 데이터를 전달하지 않기 때문이다.
또한, 데이터 에러를 핸들링하기 위해 다른 기술이 사용된다. 예를 들어, 하나 이상의 불량한 또는 잘못된 비트를 갖는 패킷이 수신된 경우 역순으로 패킷을 디코딩함으로써 에러 복원을 위해 (예를 들어, MPEG-4 에서) 가역 가변 길이 코딩과 같은 소스 코딩 기술이 사용되고 있다. 소스 코딩 기술에 있어서 코딩 효율에서의 절충이 존재하며, 이것은 소정의 비트 레이트에 대해 디코딩된 비디오의 품질로 해석된다. MPEG-1, MPEG-2, MPEG-4 (총칭하여 MPEG-x 라 함), H.261, H.262, H.263 및 H.264 (총칭하여 H.26x 라 함) 와 같은 하이브리드 코딩 표준은 비트스트림에서의 재동기화 포인트를 디코더에서의 에러 핸들링의 주 방법으로 사용한다.
과도한 초기 손상에서 데이터 손실의 하나의 원인은 부정확한 코드워드 에뮬레이션에 기인한다. 초기 비트 에러 위치의 식별은 사소한 작업이 아니며, 통상적으로 MAC 층 또는 물리층 컴포넌트에서 비트 에러 위치의 식별을 지원하는 특 별한 설계없이는 가능하지 않다. 따라서, 비트스트림 손상의 검출시에, 디코더는 디코딩을 중지하고, 다음의 재동기화 포인트를 발견하기 위해 비트스트림에서 전방으로 이동해야 할 것이고, 프로세스에서 방대한 양의 잠재적으로 양호한 데이터를 스킵할 것이다. 원래의 (예를 들어, 진정한) 코드워드와 동일한 길이인 상이한 코드워드의 에뮬레이션은 전술한 일련의 이벤트에 대해 어느 정도의 문제가 될 수도 있지만, 실제로는 그렇지 않다. 이러한 종류의 에러가 디코더의 정확한 비트스트림 해석에서의 실패를 초래할 수도 있는 여러 방식이 존재한다. 예를 들어, 가장 최신의 코덱에서는, 그 값이 비트스트림의 다음 부분의 신택스에 영향을 미치는 비트스트림에서의 객체 (압축 관련 파라미터) 가 존재한다. 따라서, 이러한 객체에 대한 부정확한 값은 부정확한 비트스트림 해석을 초래할 것이다.
공지된 에러 핸들링 기술은, 디코더가 비트 에러를 핸들링하기 위한 한정된 능력을 갖기 때문에 비효율적인 디코더 이용을 초래할 수 있고, 패킷의 드롭 및 재동기화가 가장 통상적인 솔루션이다. 디코더로 하여금, 멀티미디어 데이터에서 잘못된 비트를 충분하게 어드레스하면서 계속하여 효율적으로 동작하게 허용하는 개선된 비트 에러 핸들링 방법이 요구된다.
II. 요약
본 명세서에 개시된 시스템, 방법 및 디바이스는 각각 다수의 양태를 가지며, 어떠한 것도 단독으로 바람직한 속성을 책임지지 않는다. 본 발명의 범주를 한정하지 않으면서, 이하, 더 우수한 특성을 간략하게 설명한다. 이러한 설 명을 고려하고, 더 상세하게는 "상세한 설명"이라 명명된 섹션을 판독한 후, 본 발명의 이러한 특성이 멀티미디어 데이터 프로세싱 장치 및 방법을 위한 개선을 제공하는 방법을 이해할 것이다.
일 양태에서, 멀티미디어 데이터를 프로세싱하는 방법은, 인코딩된 비트스트림을 수신하는 단계, 인코딩된 비트스트림에서 잘못된 데이터를 식별하는 단계, 잘못된 데이터와 관련된 마커를 생성하는 단계, 및 변형된 비트스트림을 생성하기 위해 인코딩된 비트스트림에 마커를 삽입하는 단계를 포함한다. 이 방법은 변형된 비트스트림을 디코딩하기 위해 마커를 사용하는 단계를 포함할 수 있다. 또한, 이 방법은 디코딩 동안 마커에 직면하면 에러 핸들링을 개시하는 단계를 포함할 수 있다.
또 다른 양태에서, 멀티미디어 데이터를 프로세싱하는 장치는, 멀티미디어 데이터의 인코딩된 비트스트림을 수신하도록 구성된 통신 컴포넌트, 및 비트스트림에서 하나 이상의 잘못된 비트의 위치를 식별하고, 그 하나 이상의 잘못된 비트를 나타내는 마커를 생성하고, 변형된 비트스트림을 생성하기 위해 비트스트림에 그 마커를 삽입하도록 구성된 프로세서를 포함한다. 이 장치는, 디코딩 동안 마커에 직면한 경우 에러 핸들링을 개시하도록 더 구성될 수도 있다. 이 장치는, 변형된 비트스트림을 디코딩하도록 구성된 디코더를 더 포함할 수 있으며, 디코더는, 디코딩 동안 마커에 직면한 경우 에러 핸들링을 활성화시키기 위해 마커를 사용하도록 더 구성될 수 있다.
또 다른 양태에서, 멀티미디어 데이터를 프로세싱하는 장치는, 인코딩된 비 트스트림을 수신하는 수단, 비트스트림에서 하나 이상의 잘못된 비트의 위치를 식별하는 수단, 하나 이상의 잘못된 비트를 나타내는 마커를 생성하는 수단, 및 변형된 비트스트림을 생성하기 위해 비트스트림에 마커를 삽입하는 수단을 포함한다.
또 다른 양태는, 멀티미디어 데이터를 프로세싱하는 방법을 구체화하는 컴퓨터 판독가능 매체를 포함하며, 이 방법은, 인코딩된 비트스트림을 수신하는 단계, 비트스트림에서 하나 이상의 잘못된 비트의 위치를 식별하는 단계, 하나 이상의 잘못된 비트를 나타내는 마커를 생성하는 단계, 및 변형된 비트스트림을 생성하기 위해 비트스트림에 마커를 삽입하는 단계를 포함한다. 이 방법은 변형된 비트스트림을 디코딩하는 단계를 더 포함할 수도 있고, 마커는 디코딩 동안 하나 이상의 잘못된 비트를 나타내기 위해 사용된다. 이 방법은, 디코딩 동안 마커에 직면하는 경우 에러 핸들링을 개시하는 단계를 더 포함할 수 있다.
또 다른 양태는, 멀티미디어 데이터를 프로세싱하는 프로세서를 포함하며, 이 프로세서는, 인코딩된 비트스트림을 수신하고, 비트스트림에서 하나 이상의 잘못된 비트의 위치를 식별하고, 하나 이상의 잘못된 비트를 나타내는 마커를 생성하고, 변형된 비트스트림을 생성하기 위해 비트스트림에 마커를 삽입하도록 구성된다. 또한, 이 프로세서는, 변형된 비트스트림을 디코딩하도록 구성될 수 있고, 마커는 디코딩 동안 하나 이상의 잘못된 비트를 나타내기 위해 사용된다. 이 프로세서는, 디코딩 동안 마커에 직면하면 에러 핸들링을 개시하도록 더 구성될 수 있다.
III. 도면의 간단한 설명
도 1a 는 스트리밍 멀티미디어를 전달하기 위한 통신 시스템의 일 예의 블록도이다.
도 1b 는 스트리밍 멀티미디어를 전달하기 위한 통신 시스템의 또 다른 예의 블록도이다.
도 2 는 송신기 및 디코더에서의 분할 작업에 사용하기 위한 다중층 프로토콜 스택의 블록도이다.
도 3 은 비트스트림 데이터로서 디코더로 패싱되는 패킷의 일 예를 도시한다.
도 4 는 전송층 및 애플리케이션층에 도시된 복수의 PLP 를 포함하는 비트스트림의 일 예이다.
도 5 는 스트리밍 멀티미디어 데이터를 디코딩하는 일 방법의 흐름도이다.
도 6 은 멀티미디어 데이터를 프로세싱하는 장치의 블록도이다.
IV. 상세한 설명
다음의 설명에서는, 실시형태들의 철저한 이해를 제공하기 위해 특정 세부사항이 제공된다. 그러나, 이러한 특정한 세부사항없이도 이 실시형태들이 실시될 수도 있음은 당업자에게 자명할 것이다. 예를 들어, 실시형태들을 불필요하게 모호하게 하지 않기 위해, 회로는 블록도로 도시될 수도 있다. 다른 예에서는, 주지의 회로, 구조 및 기술은 실시형태들을 모호하게 하지 않기 위해 상세히 도시되지 않을 수도 있다.
또한, 실시형태들은, 플로우차트, 흐름도, 구조도 또는 블록도로서 도시되는 프로세스로서 설명될 수도 있다. 흐름도는 순차적인 프로세스로서 동작을 설명할 수도 있지만, 다수의 동작들은 병렬로 또는, 동시에 수행될 수도 있다. 또한, 동작의 순서는 재배열될 수도 있다. 동작이 완료되는 경우 프로세스는 종료된다. 프로세스는 방법, 함수, 공정, 서브루틴, 서브프로그램 등에 대응할 수도 있다. 프로세스가 함수에 대응하는 경우, 그 종료는 호출 함수 또는 주 함수로의 함수의 리턴에 대응한다.
또한, 본 명세서에 개시된 바와 같이, "저장 매체"는, 판독 전용 메모리 (ROM), 랜덤 액세스 메모리 (RAM), 자기 디스크 저장 매체, 광 저장 매체, 플래시 메모리 디바이스 및/또는 정보를 저장하기 위한 다른 머신 판독가능 매체를 포함하는, 데이터를 저장하기 위한 하나 이상의 디바이스를 나타낼 수도 있다. 용어 "머신 판독가능 매체"는 휴대용 또는 고정식 저장 디바이스, 광 저장 디바이스, 무선 채널, 및 명령(들) 및/또는 데이터를 저장, 보유 또는 운반할 수 있는 다양한 다른 매체를 포함하지만 이에 한정되는 것은 아니다.
또한, 본 명세서에 개시된 실시형태들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드 또는 이들의 임의의 조합에 의해 구현될 수도 있다. 예를 들어, 인코더 또는 디코더는 수신기 또는 송신기에서 하드웨어, 펌웨어, 또는 미들웨어로 하나의 프로세서에 통합될 수도 있고, 디코더는 프로세서 상에서 실행되는 마이크로코드 또는 소프트웨어, 또는 이들의 조합으로 구현될 수도 있다. 다른 방법으로, 인코더 또는 디코더는 장치의 주 프로세서와는 다른 특정 디코더 컴포넌트 상에서 하드웨어, 펌웨어, 미들웨어로 구현될 수도 있고, 특정 디코더 컴 포넌트 상에서 실행되는 마이크로코드 또는 소프트웨어로 구현될 수도 있다. 소프트웨어, 펌웨어, 미들웨어 또는 마이크로코드로 구현되는 경우, 요구되는 작업을 수행하기 위한 프로그램 코드 또는 코드 세그먼트는 저장 매체와 같은 머신 판독가능 매체에 저장될 수도 있다. 프로세서가 이러한 필요 작업을 수행할 수도 있다. 코드 세그먼트는, 공정, 함수, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령, 데이터 구조 또는 프로그램 스테이트먼트의 임의의 조합을 나타낼 수도 있다. 코드 세그먼트는, 정보, 데이터, 아규먼트, 파라미터 또는 메모리 콘텐츠를 패싱 및/또는 수신함으로써 또 다른 코드 세그먼트 또는 하드웨어 회로에 커플링될 수도 있다. 정보, 아규먼트, 파라미터, 데이터 등은 메모리 공유, 메시지 패싱, 토큰 패싱, 네트워크 송신 등을 포함하는 임의의 적절한 수단을 통해 패싱, 포워딩 또는 송신될 수도 있다.
또한, 이하 개시되는 디바이스의 하나 이상의 엘리먼트는 그 디바이스의 동작에 영향을 미치지 않으면서 재배열될 수도 있음은 당업자에게 자명할 것이다. 유사하게, 이하 개시되는 디바이스의 하나 이상의 엘리먼트는 그 디바이스의 동작에 영향을 미치지 않으면서 결합될 수도 있다.
다음의 상세한 설명은 어떠한 특정 실시형태로 의도된다. 그러나, 본 발명은 다수의 상이한 방식으로 구현될 수 있다. 본 명세서에서, "하나의 실시형태" 또는 "일 실시형태"에 대한 참조는, 그 실시형태와 관련되어 개시되는 특정한 특성, 구조 또는 특징이 하나 이상의 실시형태에 포함됨을 의미한다. 본 명세서의 여러 부분에 있는 "일 실시형태에서", "일 실시형태에 따르면", 또는 "몇몇 실시형태에서"라는 구문은 필수적으로 동일한 실시형태를 완전히 참조하는 것은 아니며, 다른 실시형태를 상호 배척하는 개별적인 또는 또 다른 실시형태를 나타내는 것도 아니다. 또한, 몇몇 실시형태에는 나타나고 다른 실시형태에는 나타나지 않는 다양한 특성이 개시된다. 유사하게, 몇몇 실시형태에 대해서는 요건이지만 다른 실시형태에 대해서는 요건이 아닌 다양한 요건이 개시된다.
스트리밍 멀티미디어 데이터를 전달하는 통신 시스템에서의 디코더는, 손상된 또는 손실된 데이터와 같은 하나 이상의 잘못된 비트를 포함하는 비트스트림을 수신할 수 있다. 디코더가 비트스트림을 디코딩하는 중에 잘못된 데이터를 직면하는 경우, 복원 프로세스 및/또는 에러 핸들링 프로세스를 이용하기 위한 필요때문에 통상적으로 디코딩 프로세스가 방해된다. 멀티미디어 비트스트림에서 잘못된 데이터를 디코딩하려는 시도에 의해 유발되는 방해를 회피하거나 적어도 최소화하는 개선된 디코딩 능력을 제공하는 방법 및 장치가 본 명세서에 개시된다. 일 방법은, 예를 들어, 물리층 또는 전송층 레벨에서, 디코더에 의해 수신된 멀티미디어 비트스트림에서 하나 이상의 잘못된 비트의 위치를 식별하는 단계, 및 하나 이상의 잘못된 비트를 나타내는 마커를 생성하는 단계를 포함한다. 에러 마커는 변형된 비트스트림을 생성하기 위해 비트스트림에 삽입된다. 비트스트림으로의 에러 마커의 삽입은 비트스트림에 있어서 "인-밴드" 이고, 따라서, 마커가 원래 수신된 데이터에 따라서 전송되고, 임의의 다른 층 또는 사이드 채널에서는 전송되지 않는 것을 의미한다. 예를 들어, 에러 마커는 자체로 비트스트림의 일부로서 판독되도록 데이터에 순서대로 삽입될 수 있다. 따라서, 에러 마커 는, 애플리케이션층과 같은 디코더의 상위층에 전송되는 비트스트림의 일부가 된다.
디코더가 변형된 비트스트림을 디코딩하는 동안 마커에 직면하면, 디코더는, 예를 들어, 에러 은닉, 신택스 체크와 같은 에러 핸들링 프로세스를 시작할 수 있고, 또는 단순히 에러를 드롭한다 (예를 들어, 잘못된 데이터를 스킵 또는 무시한다). "인-밴드" 마커를 제공하는 것은 효율적이고 더 고속의 디코딩 능력을 가능하게 한다. 다음의 설명에서는, 인-밴드 에러 시그널링 패턴의 예 및 양태, 및 더 고속의 에러 복원을 보조하기 위한 그 용도의 더 철저한 이해를 제공하기 위해 추가적인 세부사항이 제공된다. 그러나, 예 또는 실시형태의 프로세스 또는 디바이스의 모든 세부사항들이 본 명세서에서 설명되거나 예시되지 않는다 하더라도 본 예시들이 실시될 수도 있음을 당업자는 이해할 것이다. 예를 들어, 전기적 컴포넌트는, 예시들을 불필요하게 모호하게 하지 않기 위해, 컴포넌트의 모든 전기 접속 또는 모든 전기적 엘리먼트를 도시하지 않는 블록도로 도시될 수도 있다. 다른 예에서는, 이러한 컴포넌트, 다른 구조 및 기술이 예시들을 더 설명하기 위해 상세히 도시될 수도 있다.
도 1a 는, 멀티미디어 데이터를 프로세싱하는 개시된 방법 및 장치를 포함할 수 있는, 스트리밍 멀티미디어 데이터를 전달하는 통신 시스템 (100) 의 일 예의 블록도이다. 본 명세서에서 사용되는 바와 같이, "멀티미디어 데이터"는, (오디오 데이터를 포함할 수 있는) 비디오 데이터, 오디오 데이터, 그래픽스, 텍스트 데이터, 영상 또는 이미지 데이터, 또는 이들의 임의의 조합을 포함하는 포괄적인 용어이다. 본 명세서에서 포괄적인 용어로 사용되는 바와 같이, "비디오 데이터" 또는 "비디오"는 텍스트 또는 이미지 정보 및/또는 오디오 데이터를 포함하는 이미지의 시퀀스를 지칭하는 포괄적인 용어로서 사용되고, 달리 특정되지 않으면 멀티미디어 데이터 (예를 들어, 상호교환가능하게 사용될 수 있는 용어) 를 지칭하도록 사용될 수 있다.
클라이언트 디바이스와 통신되는 멀티미디어 데이터는 통상적으로 압축된다. MPEG-x 및 H.26x 로 공지된 2 가지 비디오 코딩 표준을 데이터 프로세싱을 기술하고, 조작 기술 (본 명세서에서는 하이브리드 코딩으로도 지칭함) 은, 비디오, 오디오, 및 고정 길이 또는 가변 길이 소스 코딩 기술을 사용하는 다른 정보의 압축 및 전달에 매우 적합하다. 시스템 (100) 은 상기 참조된 표준 및 다른 하이브리드 코딩 표준 및 기술을 사용할 수 있다. 예시적으로, 멀티미디어 데이터는 인트라-프레임 코딩 기술 (예를 들어, 런-렝쓰 코딩 (run-length coding), 허프만 코딩 등)) 및 인터-프레임 코딩 기술 (예를 들어, 순방향 및 역방향 예측 코딩, 움직임 보상 등) 을 사용하여 압축될 수 있다. 오디오 데이터는 MPEG-4 AAC, MP3, AMR 및 G.723 오디오 또는 음성 압축 표준으로 압축될 수 있다.
시스템 (100) 은 멀티미디어 송신기 (105) 및 멀티미디어 수신기 (150) 를 포함한다. 송신기 (105) 는 하나 이상의 메모리 컴포넌트 (115), 및 프로세서 (110), 또는 멀티미디어 데이터와 관련된 변조 및 인코딩 작업을 분산시키기 위한 프리프로세서 (예를 들어, ARM 과 같은 임의의 타입의 중앙 처리 장치 CPU), 디지털 신호 프로세서 (DSP), 소프트웨어, 펌웨어, 비디오 코어와 같은 하드웨어의 임 의의 조합을 포함하는 다중의 프로세서를 포함할 수 있다. 또한, 송신기 (105) 는, 예를 들어, MPEG-1, MPEG-2, MPEG-4 (총칭하여 MPEG-x 라 함), H.261, H.262, H.263 또는 H.264 (총칭하여 H.26x 라 함) 와 같은 코딩 표준을 사용하여 수신기 (150) 로의 송신을 위한 데이터를 인코딩하는 인코더 (175) 를 포함할 수 있다.
또한, 송신기 (105) 는, 외부 소스 (125; 예를 들어, 인터넷, 외부 메모리 또는 라이브 비디오 및/또는 오디오 피드) 를 포함하는 다양한 소스로부터 데이터를 획득하는 통신 컴포넌트 (120) 를 포함할 수 있다. 송신기 (105) 는 획득된 데이터를 통신 시스템을 통해 수신기 (150) 에 송신하기 위해 통신 컴포넌트 (120) 를 사용한다. 통신 시스템은, 전화, 케이블 또는 광섬유와 같은 유선 네트워크 (135) 또는 무선 네트워크 (130) 일 수 있다. 무선 통신 시스템의 경우, 네트워크 (130) 는, 예를 들어, 코드 분할 다중 접속 (CDMA 또는 CDMA2000) 통신 시스템을 포함할 수 있고, 또는 다른 방법으로, 시스템은 주파수 분할 다중 접속 (FDMA) 시스템, 직교 주파수 분할 다중 접속 (OFDMA) 시스템, GSM/GPRS (General Packet Radio Service)/EDGE (enhanced data GSM environment) 또는 서비스 산업을 위한 TETRA (Terrestrial Trunked Radio) 이동 전화 기술과 같은 시분할 다중 접속 (TDMA) 시스템, 광대역 코드 분할 다중 접속 (WCDMA), 고속 데이터 레이트 (1xEV-DO 또는 1xEV-DO Gold Multicast) 시스템, 또는 이 기술들의 조합을 이용하는 일반적인 임의의 무선 통신 시스템일 수도 있다.
수신기 (150) 는, 통신 컴포넌트 (155), 및 예를 들어, 무선 주파수 안테나 또는 네트워크 접속과 같은 무선 네트워크 (130) 및/또는 유선 네트워크 (135) 를 통해 데이터를 수신하는 수단을 포함한다. 또한, 수신기 (150) 는, 하나의 프로세서 (160), 또는 데이터 수신 및 디코딩과 관련된 복조 및 디코딩 작업을 분산시키기 위한 프리프로세서 (예를 들어, ARM 과 같은 임의의 타입의 중앙 처리 장치 CPU), 디지털 신호 프로세서 (DSP), 소프트웨어, 및 비디오 코어와 같은 하드웨어의 임의의 조합을 포함하는 다중의 프로세서를 포함할 수 있다. 또한, 수신기 (150) 는, 인코딩된 데이터를 생성하기 위해 사용되는 인코딩 표준에 대응하는 적용가능한 디코딩 표준을 사용하여 수신된 인코딩 비트스트림을 디코딩하는 디코더 (170) 를 포함할 수 있다.
도 1b 에 도시된 바와 같이, 몇몇 실시형태에서는, 멀티미디어 수신기 (150) 의 프로세서 (160) 가 도 1a 에 도시된 개별 디코더 (170) 에 의해 수행된 디코딩 작업을 수행할 수 있다. 프로세서 (160) 는, 통신 컴포넌트 (155) 로부터 인코딩된 비트스트림을 수신하고, 비트스트림에서 하나 이상의 잘못된 비트의 위치를 식별하고, 하나 이상의 잘못된 비트를 나타내는 마커를 생성하고, 변형된 비트스트림을 생성하기 위해 인코딩된 비트스트림에 마커를 삽입하도록, 예를 들어, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 조합과 같은 로직으로 구성될 수 있다. 또한, 프로세서 (160) 는 변형된 비트스트림을 디코딩하기 위한 로직으로 구성될 수 있고, 마커는 디코딩 동안 하나 이상의 잘못된 비트를 나타내기 위해 사용된다. 또한, 프로세서 (160) 는, 디코딩 동안 마커에 직면하면 에러 핸들링을 개시하기 위한 로직으로 구성될 수 있다. 또한, 도 1b 는, 송신기 (105) 의 프로세서 (110) 가 비트스트림을 인코딩하고, 도 1a 에 도시된 인코더 (175) 에 의해 수행된 임의의 다른 작업을 수행하기 위해 구성될 수 있는 실시형태를 도시한다.
도 1a 를 다시 참조하면, 수신기 (150) 는 또한 복조/디코딩 프로세스의 다양한 스테이지에서 수신된 데이터 및 중간 데이터를 저장하기 위한 하나 이상의 메모리 컴포넌트 (165) 를 포함한다. 몇몇 실시형태에서, ARM 프로세서 (미도시) 는 오디오, 비디오 등을 포함하는 복수의 비트스트림의 디멀티플렉싱 및 언패킹 (헤더 및 시그널링 메시지와 같은 사이드 정보의 제거) 을 포함하는 덜 복잡한 작업을 수행한다. 또한, ARM 프로세서는 비트스트림 파싱, 에러 검출, 에러 은닉, 및 가변 길이 엔트로피 디코딩을 수행할 수 있다. 이러한 몇몇 실시형태에서, DSP 는 VLC (가변 길이 코드) 코드워드의 확장, 픽셀 계수를 공간적으로 위치시키기 위한 비디오 데이터의 역 지그재그 스캐닝, MPEG-4 비디오에 대한 픽셀 계수의 역 AC/DC 예측 (콘텍스트 적응 엔트로피 코딩에 기인한 H.264 의 특성은 아님), 및 오디오 디코딩 (예를 들어, MPEG-4 AAC, MP3, AMR 또는 G.723) 을 수행한다. 비디오 코어는 역양자화, 역변환, 움직임 보상 예측, 및 역블로킹 (픽셀 블록 에지간의 에지 아티팩트를 감소시키기 위한 필터링의 형태) 을 포함하는 비디오 디코딩의 더 연산적으로 복잡한 작업을 수행할 수도 있다.
수신기 (150) 는, 예를 들어, 에러 검출, 에러 은닉 및 신택스 체크와 같은 에러 핸들링 로직을 포함한다. 에러 핸들링 로직은 소프트웨어, 하드웨어 또는 펌웨어로 수신기 (105) 에서 구체화될 수 있다. 더 상세하게, 수신기 (150) 는, 수신된 인코딩된 비트스트림에서 하나 이상의 잘못된 비트를 식별하고, 비트스트림의 비트가 잘못된 것을 나타내는 적절한 마커를 생성하고, "인-밴드" 마커를 비트스트림에 삽입하기 위한 에러 핸들링 로직을 포함한다. 이러한 마커의 생성, 삽입 및 사용은 도 2 내지 6 을 참조하여 더 설명된다. 또한 몇몇 실시형태에서, 에러 핸들링 로직은 잘못된 비트를 포함하는 잘못된 패킷을 전체로서 식별 및 마킹할 수 있다. 에러 핸들링 로직의 전부 또는 일부는 하나 이상의 메모리 컴포넌트 (165) 에서 또는 수신기 (150) 의 또 다른 로직 디바이스에서, 디코더 (170), 프로세서 (160) 에 상주할 수 있다. 본 발명의 범주를 벗어나지 않고 하나 이상의 엘리먼트가 통신 시스템 (100) 에 추가될 수도 있다.
도 2 는, 도 1b 에 도시된 송신기 (105) 및 수신기 (150) 에서의 작업을 분할하기 위해 사용될 수 있는 다중층 프로토콜 스택의 블록도이다. 프로토콜 스택은 송신기 측 및 수신기 측에 대해 애플리케이션층 (205, 210), 전송층 (215, 220) 및 물리층 (225, 230) 을 각각 포함하며, 이것은 도 1b 에 도시된 송신기 (105) 및 수신기 (150) 에 대응한다. 몇몇 실시형태에서는, 표준 OSI 층 아키텍쳐의 부분들이 존재할 수도 있다. 그러나, 이 층들이 OSI 아키텍쳐에 한정되는 것은 아니다. 송신기 (105) 및 수신기 (150) 의 애플리케이션층 (205 및 210) 각각은, 예를 들어 비디오 또는 오디오 인코더 및/또는 디코더와 같은 다중 애플리케이션을 포함할 수도 있다. 몇몇 실시형태들은, 동시에 디코딩될 정보의 다중 스트림을 포함할 수도 있다. 이 경우, 다중 스트림의 동기화 작업 또한 애플리케이션층 (205 및 210) 에서 수행될 수도 있다. 애플리케이션층 (205) 은, 무선 네트워크 (130) 또는 유선 네트워크 (135) 를 통해 송신되는 비트스트림에서의 인코딩된 타이밍 정보를 제공할 수도 있다. 애플리케이션층 (210) 은, 관련된 애플리케이션이 동시에 또는 거의 동시에 디코딩하도록 정보의 다중 스트림을 파싱할 수 있다. 당업자들은 이러한 층을 인식하고 이러한 층 사이에서 다양한 작업의 할당에 정통할 것이다. 또한, 당업자들은, 몇몇 실시형태에서, 도 2 에 도시된 층이 동기화층, 스트림 또는 매체 액세스 제어 (MAC) 층, 및/또는 전술한 층 중 하나 이상의 층을 포함하도록 더 상세히 도시될 수도 있음을 인식할 것이다.
송신기 (105) 의 전송층 (215) 및 물리층 (225) 은 에러 회복력을 제공하기 위해 다양한 방식을 포함할 수도 있다. 무선 네트워크 (130) 및/또는 유선 네트워크 (135; 도 1b) 와 같은 에러 유발성 채널은 수신기 (150) 에 의해 수신된 비트스트림에 에러를 도입시킬 수도 있다. 에러 회복 프로세스는 하나 이상의 에러 제어 코딩 방식, 인터리빙 방식 및 다른 방식을 포함할 수도 있다. 수신기 (150) 의 전송층 (220) 및 물리층 (230) 은, 에러의 검출 및 정정을 가능하게 하는 대응하는 에러 디코딩을 포함할 수도 있다. 전송층 (220) 은, 예를 들어, 순방향 에러 정정 및 외부 코딩과 같은 에러 분석 및/또는 검출을 수행할 수도 있다. 또한, 물리층 (230) 은 에러 분석 및/또는 검출을 수행할 수 있다. 무선 네트워크 (130) 또는 유선 네트워크 (135) 에 의해 도입되는 몇몇 에러는 전송층 (220) 또는 물리층 (230) 에 의해 정정하지 못할 수도 있다. 에러들이 식별될 수는 있지만 정정될 수 없고, 잘못된 컴포넌트의 재송신을 요청하는 것과 같은 솔루션이 적합하지 않을 수도 있는 이러한 에러들에 있어서, 잘못된 비트의 위치 및 잘못된 비트의 수는, 비트스트림에서 "인-밴드"로 삽입되고 애플리케이션층 (210) 까지 전송되는 마커에 의해 표시될 수도 있다.
도 3 은 비트스트림 데이터로서 수신기 (150) 에 패싱되는 물리층 패킷 (즉, "PLP") 의 일 예를 도시한다. 각각의 패킷은 전송 헤더부 (305), 인코딩된 멀티미디어 데이터를 포함하는 본체부 (310), 및 예를 들어, 순환 잉여 검사 ("CRC") 와 같은 에러 체크 코드를 포함하는 테일부 (315) 를 갖는다. 예를 들어, 수신기의 물리층 또는 전송층에서의 에러 검출 로직에 의해, 예를 들어, 하나 이상의 잘못된 비트 ("불량한" PLP) 와 같은 잘못된 데이터를 포함하는 패킷이 검출되면, 전송층 헤더는 그 하나 이상의 비트가 잘못되었음 (예를 들어, 불량함) 을 나타내도록 마킹된다. 에러 패턴 마커는 슬라이스 헤더 또는 슬라이스 데이터 정보에 의해 "인-밴드"로 배치되어 변형된 비트스트림이 되고, 이것은 애플리케이션층으로 전송된다. 수신기의 애플리케이션층 컴포넌트가 비트스트림에서 에러 패턴 마커에 직면한 경우, 디코더는 그 잘못 마킹된 PLP 에 어드레스하거나 그 불량한 PLP 를 드롭하고 다음 PLP 로부터 디코딩을 계속하도록 동작할 수 있다. 몇몇 실시형태에서는, 디코더가 에러 마킹된 PLP 를 직면한 경우 신택스 체크 기능 또는 다른 에러 체크 기능을 활성화한다. 몇몇 실시형태에서는, 디코더가 에러 마킹된 PLP 를 직면한 경우, 그 잘못된 비트에 대응하는 영역을 핸들링 또는 마스크하기 위해 에러 은닉을 활성화한다.
몇몇 실시형태에서는, 에러 패턴에 대한 신택스가,
00 00 01 18<에러 패턴 길이 바이트><불량한 비트스트림 길이>
와 같이 16 진법으로 표시될 수도 있으며, 여기서 "00 00 01 18" 은 진행중 인 NAL 유닛 내에서 삽입된 데이터를 시그널링하기 위한 시작 코드 프레픽스이다. "에러 패턴 길이 바이트" 는 에러 패턴 NAL 을 판독하기 위해 이 바이트 이후 판독될 바이트의 수를 나타낸다. "불량한 비트스트림 길이" 는 잘못된 비트의 길이를 나타낸다. 몇몇 실시형태에서, "불량한 비트스트림 길이" 의 컴포넌트는, 패킷의 모든 비트가 잘못되었음을 나타내는 현재 패킷의 길이로 설정된다. 몇몇 실시형태에서, 시작 코드 프레픽스는 "00 00 01 24" 일 수 있다. 일반적으로, 이러한 규격에 부합하는 디코더가 에러 패턴을 적절하게 (예를 들어, 크래쉬 없이) 핸들링하도록, 시작 코드 프레픽스는, "00 00 01" 로 구성된 동기화 바이트가 압축 규격의 일부 예비되거나 미특정된 표준적인 부분에 의해 후속되도록 선택된다.
도 4 는, 전송층 및 애플리케이션층에 도시된 복수의 PLP 를 포함하는 비트스트림 데이터의 일 예이다. 전송층 데이터는, 각각 전송층 헤더 ("TH"), 애플리케이션 패킷 ID - FN,M (여기서, N,M 은 비디오 프레임 N 의 M 번째 패킷을 나타냄) 에 의해 참조되는 패킷 데이터, 및 순환 잉여 검사 ("CRC") 를 포함하는 패킷 (PLP) 테일을 포함하는 다수의 패킷 (415) 을 갖는 것으로서 비트 스트림 데이터를 도시한다. CRC 는 전송층 헤더 및 애플리케이션 패킷 데이터를 구성하는 데이터에 대한 패러티 체크를 제공한다. CRC 가, 수신측 (예를 들어, 디코더측) 에서, 예를 들어, 애플리케이션 패킷 (425) 과 같은 데이터에 대해 생성된 패러티 비트와 매칭되지 않는 경우, CRC 는, 어떠한 비트가 잘못되었는지를 결정하기 위해 디코더 로직이 인식 및 해석할 특정 에러 패턴에 의해 전송 헤더에서 실패로서 마킹된다. 예를 들어, CRC (405) 는 잘못된 것으로 마킹되도록 도시되어 있다. 몇몇 실시형태에서, 에러 패턴 삽입 (410) 은 전체 패킷을 잘못된 것으로 마킹할 수 있다. 몇몇 실시형태에서, 에러 패턴 삽입 (410) 은 특정한 수의 비트가 잘못되었음을 나타낸다.
애플리케이션층 데이터는, 전송층으로부터 수신된 비트스트림 데이터를, 각각 상이한 애플리케이션 패킷 ID 에 의해 도시된 다수의 패킷 데이터 (420) 를 포함하는 것으로 도시되어 있다. 애플리케이션층 데이터는 더 이상 전송 헤더 또는 CRC 필드를 포함하지 않는다. 패킷 데이터는, 마킹되지 않았다면 디코딩될 "양호한" 데이터의 스트림으로서 존재한다. 패킷 (430) 은, 불량한 CRC 또는 임의의 다른 잘못된 정보 (예를 들어, 불량한 비트) 를 갖는 전송층 데이터에서의 패킷에 대응한다. 패킷 (430) 이 하나 이상의 잘못된 비트를 포함하는 것을 나타내기 위해, 에러 패턴 마커는 비트스트림에 "인-밴드" 인 패킷 (430) 이전에 삽입된다. 디코더는, 에러 패턴 마커에 직면하면 이를 인식하기 위한 로직으로 구성되고, 데이터를 드롭하거나 에러 핸들링 로직을 활성화할 수 있다. 에러 패턴 마커를 "인-밴드"로 삽입하는 것은, 디코더가 "인-밴드"가 아닌 임의의 다른 정보를 신뢰하여 데이터를 프로세싱하게 허용하며, 이것은 더 고속의 디코딩을 유발한다. 몇몇 실시형태에서는, 마커에 직면한 경우, 표시된 "불량한" 데이터 비트가 에러 정정 또는 에러 은닉을 위한 또 다른 프로세스로 핸드 오프될 수 있다.
몇몇 실시형태는, 플로우차트, 흐름도, 구조도 또는 블록도로서 도시되는 프로세스로서 설명될 수도 있다. 흐름도는 순차적인 프로세스로서 동작을 설명할 수도 있지만, 다수의 동작들은 병렬 또는, 동시에 수행될 수도 있고, 그 프로세스가 반복될 수 있다. 또한, 동작의 순서는 재배열될 수도 있다. 동작이 완료되는 경우 프로세스는 종료된다. 프로세스는 방법, 함수, 공정, 서브루틴, 서브프로그램 등에 대응할 수도 있다. 프로세서가 함수에 대응하는 경우, 그 종료는 호출 함수 또는 주 함수로의 함수의 리턴에 대응한다.
프로세스로서 설명되는 일 실시형태가 도 5 에 도시되어 있으며, 이것은 스트리밍 멀티미디어 데이터를 디코딩하기 위한 프로세스 (600) 의 흐름도이다. 상태 605 에서는, 프로세스 (600) 가 인코딩된 비트스트림을 수신한다. 비트스트림은 유선 네트워크 (135) 또는 무선 네트워크 (130) 를 통해, 예를 들어, 송신기 (105) 로부터 수신될 수 있다. 상태 610 에서는, 프로세스 (600) 가 비트스트림에서 하나 이상의 잘못된 비트의 위치를 식별한다. 몇몇 실시형태에서는, 디코더의 물리층 (230) 또는 전송층 (220) 에서 구현되는 에러 핸들링 로직에 의해 잘못된 비트가 식별될 수 있다. 다른 실시형태에서는, 디코더에서의 프로세스 (예를 들어, 수신기 (150) 의 애플리케이션층 (210) 에서의 프로세스) 에 의해 디코딩되기 전에 비트스트림을 프리프로세싱하는 프로세스에 의해 잘못된 비트가 식별될 수 있다. 프로세스 (600) 가 비트스트림에서 하나 이상의 잘못된 비트를 식별하면, 상태 615 에서는 잘못된 비트를 나타내는 마커를 생성한다. 예를 들어, 마커는 잘못된 비트의 존재, 잘못된 비트의 위치, 또는 잘못된 비트의 세트에 서 최초로 잘못된 비트의 위치를 나타낼 수 있고, 그리고/또는 비트스트림에서 잘못된 비트의 길이 (예를 들어, 잘못된 비트의 수 또는 최후의 잘못된 비트의 위치) 를 나타낼 수 있다. 상태 620 에서는, 프로세스 (600) 가 변형된 비트스트림을 생성하기 위해 비트스트림에서 에러 마커를 삽입한다. 마커는 비트스트림에 "인-밴드"로 삽입된다. 몇몇 실시형태에서, 에러 마커는 잘못된 데이터의 직전에 삽입된다. 에러 마커는, 예를 들어, 변형된 비트스트림에서 그 존재를 시그널링하기 위한 시작 코드 프레픽스, 에러 패턴의 길이를 나타내는 정보, 및/또는 잘못된 비트의 길이를 나타내는 정보를 포함할 수 있다. 마커는, 하나 이상의 잘못된 비트의 존재를 나타내는 것으로 디코더가 인식하는 소정의 에러 패턴을 포함할 수 있다. 다른 실시형태에서는, 에러 패턴이 패킷의 잘못된 비트에 선행하는 전송 헤더에 삽입될 수 있다.
선택적으로, 프로세스 (600) 는, 예를 들어, 프로세스 (600) 의 상태 625 에서 변형된 비트 스트림을 디코딩하는 것을 포함할 수 있고, 변형된 비트스트림은 비트스트림을 인코딩하는데 사용된 적용가능한 표준에 따라 디코딩된다. 디코딩 프로세스 동안, 에러 마커에 직면할 수도 있다. 상태 630 에서는, 프로세스 (600) 가 에러 마커에 직면하면, 에러 핸들링 로직이 활성화되어 잘못된 비트를 핸들링한다. 에러 핸들링 로직은, 예를 들어, 신택스 체킹, 에러 정정, 에러 은닉, 또는 잘못된 비트의 무시 (예를 들어, 드롭) 일 수 있다. 몇몇 실시형태에서는, 마커 직면시에 디코더가 2 이상의 에러 핸들링 프로세스를 활성화시킬 수 있다. 상태 635 에서 에러 핸들링 로직을 활성화시킨 후, 또는 에러 마커에 직면 하지 않으면, 디코딩은 계속된다. 상태 640 에서는, 프로세스 (600) 가, 변형된 비트스트림의 디코딩이 완료되는지 여부를 결정한다. 완료되지 않으면, 프로세스 (600) 는 상태 625 로 계속되어 변형된 비트스트림을 디코딩한다. 디코딩이 완료되면, 프로세스 (600) 는 종료된다.
본 명세서에서 설명한 방법 및 장치는 다양한 구현으로 이용될 수 있다. 도 6 은, 멀티미디어 데이터를 프로세싱하기 위한 장치 (650) 의 이러한 일 예를 도시하며, 멀티미디어 데이터를 프로세싱하기 위한 장치 (650) 는, 인코딩된 비트스트림을 수신하는 수단, 비트스트림에서 하나 이상의 잘못된 비트의 위치를 식별하는 수단, 하나 이상의 잘못된 비트를 나타내는 마커를 생성하는 수단, 및 변형된 비트스트림을 생성하기 위해 비트스트림에 마커를 삽입하는 수단을 포함한다. 도 6 에 도시된 바와 같이, 수신하는 수단은 수신 모듈 (655) 을 포함할 수도 있다. 식별하는 수단은 식별 모듈 (660) 을 포함할 수도 있다. 생성하는 수단은 생성 모듈 (665) 을 포함할 수도 있다. 삽입하는 수단은 삽입 모듈 (670) 을 포함할 수도 있다. 몇몇 실시형태에서는, 디코더 (170) 가 식별 모듈 (660), 생성 모듈 (665), 및 삽입 모듈 (670) 중 하나 이상에 의해 구현될 수도 있다. 또한, 선택적으로, 이 장치는 변형된 비트스트림을 디코딩하는 수단을 더 포함할 수도 있고, 디코딩 동안 하나 이상의 잘못된 비트를 나타내기 위해 마커가 사용된다. 또한, 이 장치는 디코딩 동안 마커에 직면한 경우 에러 핸들링 프로세스를 개시하는 수단을 포함할 수도 있다. 삽입하는 수단은 변형된 비트스트림을 생성하기 위해 비트스트림에 마커를 삽입하도록 구성된 프로세서를 포함할 수 도 있다. 이 장치의 몇몇 실시형태에서는, 마커가 비트스트림의 일부가 되도록, 삽입하는 수단이 비트스트림에 마커를 삽입하도록 구성될 수도 있다. 이 장치의 디코딩 수단은 변형된 비트스트림을 디코딩하도록 구성된 프로세서를 포함할 수도 있다.
당업자는 다양한 서로 다른 기술들 및 기법들 중 임의의 기술 또는 기법을 이용하여 정보 및 신호를 나타낼 수도 있음을 알 수 있다. 예를 들어, 상기의 설명 전반에 걸쳐 참조될 수도 있는 데이터, 명령, 커맨드 (commands), 정보, 신호, 비트, 심볼, 및 칩은 전압, 전류, 전자기파, 자계 또는 자성 입자, 광계 또는 광자, 또는 이들의 임의의 조합으로 나타낼 수도 있다.
또한, 당업자는 여기에서 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들을 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 조합으로 구현할 수도 있음을 알 수 있다. 하드웨어와 소프트웨어의 이러한 대체 가능성을 분명히 설명하기 위하여, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들을 주로 그들의 기능의 관점에서 상술하였다. 그러한 기능이 하드웨어로 구현될지 소프트웨어로 구현될지는 전체 시스템에 부과된 특정한 애플리케이션 및 설계 제약조건들에 의존한다. 당업자는 설명된 기능을 각각의 특정한 애플리케이션에 대하여 다양한 방식으로 구현할 수도 있지만, 그러한 구현의 결정이 본 발명의 범위를 벗어나도록 하는 것으로 해석하지는 않아야 한다.
여기에서 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 논리 블록 들, 모듈들, 회로들은 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA), 또는 기타 프로그래머블 로직 디바이스, 별도의 게이트 또는 트랜지스터 로직, 별도의 하드웨어 컴포넌트들, 또는 여기서 설명된 기능을 수행하도록 설계된 이들의 임의의 결합으로 구현 또는 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 다른 방법으로, 그 프로세서는 임의의 종래 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 또한, 프로세서는 컴퓨팅 디바이스들의 결합, 예를 들어, DSP 와 마이크로프로세서의 결합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들 또는 임의의 기타 다른 구성물로 구현될 수도 있다.
여기에 개시된 실시형태들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서에 의해 실행되는 하드웨어, 소프트웨어 모듈, 또는 그 2 개의 결합으로 직접 구현될 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM, 또는 당업계에 알려진 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 예시적인 저장 매체는 프로세서에 커플링되며, 그 프로세서는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 저장 매체는 ASIC 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상 주할 수도 있다.
개시되어 있는 실시형태들에 대한 이전의 설명은 당업자로 하여금 본 발명을 제조 또는 이용할 수 있도록 제공된다. 당업자는 이들 실시형태에 대한 다양한 변형들을 명백히 알 수 있으며, 여기에서 정의된 일반적인 원리들은 본 발명의 사상 또는 범위를 벗어나지 않고도 다른 실시형태들에 적용될 수도 있으며, 추가적인 엘리먼트가 추가될 수도 있다.
전술한 실시형태들은 단순한 예시이며 본 발명을 제한하도록 해석되어서는 안된다. 이 실시형태들의 설명은 예시적인 것으로 의도되었고, 청구항의 범주를 한정하려는 의도가 아니다. 이와 같이, 본 발명의 교시는 다른 타입의 장치에 용이하게 적용될 수 있으며, 다양한 대체예, 변형예 및 변경예는 당업자에게 자명할 것이다.

Claims (56)

  1. 인코딩된 비트스트림을 수신하는 단계;
    상기 인코딩된 비트스트림에서 잘못된 데이터를 식별하는 단계;
    상기 잘못된 데이터와 관련된 마커를 생성하는 단계; 및
    변형된 비트스트림을 생성하기 위해, 상기 인코딩된 비트스트림에 상기 마커를 삽입하는 단계를 포함하는, 멀티미디어 데이터의 프로세싱 방법.
  2. 제 1 항에 있어서,
    상기 변형된 비트스트림을 디코딩하기 위해 상기 마커를 사용하는 단계를 더 포함하는, 멀티미디어 데이터의 프로세싱 방법.
  3. 제 2 항에 있어서,
    디코딩 동안 상기 마커에 직면하면, 에러 핸들링 프로세스를 개시하는 단계를 더 포함하는, 멀티미디어 데이터의 프로세싱 방법.
  4. 제 3 항에 있어서,
    상기 에러 핸들링 프로세스는 신택스 체킹, 상기 잘못된 데이터의 드롭 또는 에러 은닉을 포함하는, 멀티미디어 데이터의 프로세싱 방법.
  5. 제 1 항에 있어서,
    상기 마커는, 상기 잘못된 데이터에 선행하여 상기 인코딩된 비트스트림에 삽입되는, 멀티미디어 데이터의 프로세싱 방법.
  6. 제 1 항에 있어서,
    상기 마커에 기초하여 패킷 손실 비율이 결정되는, 멀티미디어 데이터의 프로세싱 방법.
  7. 제 1 항에 있어서,
    상기 마커는, 상기 변형된 비트스트림에서 마커의 존재를 시그널링하기 위한 시작 코드 프레픽스를 포함하는, 멀티미디어 데이터의 프로세싱 방법.
  8. 제 7 항에 있어서,
    상기 마커는, 상기 시작 코드 프레픽스 이후 얼마나 많은 바이트(들)이 상기 마커에서 사용되는지와 관련된 수치값을 포함하는, 멀티미디어 데이터의 프로세싱 방법.
  9. 제 1 항에 있어서,
    상기 마커는, 상기 잘못된 데이터의 길이를 나타내는 정보의 1 바이트 이상을 포함하는 필드를 포함하는, 멀티미디어 데이터의 프로세싱 방법.
  10. 제 1 항에 있어서,
    상기 마커는, 상기 마커가 자체로 상기 비트스트림의 일부를 형성하도록 상기 비트스트림에 삽입되는, 멀티미디어 데이터의 프로세싱 방법.
  11. 제 1 항에 있어서,
    상기 마커는, 상기 수신된 인코딩된 비트스트림이 부합하는 압축 규격에 부합하는, 멀티미디어 데이터의 프로세싱 방법.
  12. 제 2 항에 있어서,
    상기 마커는, 상기 마커가 상기 비트스트림의 일부가 되도록 상기 비트스트림에 삽입되고, 상기 삽입된 마커를 갖는 비트스트림은 디코더의 상위층에 의해 디코딩되는, 멀티미디어 데이터의 프로세싱 방법.
  13. 제 12 항에 있어서,
    상기 상위층은 애플리케이션층을 포함하는, 멀티미디어 데이터의 프로세싱 방법.
  14. 멀티미디어 데이터의 인코딩된 비트스트림을 수신하도록 구성된 통신 컴포넌트; 및
    상기 비트스트림에서 하나 이상의 잘못된 비트의 위치를 식별하고, 상기 하나 이상의 잘못된 비트를 나타내는 마커를 생성하고, 변형된 비트스트림을 생성하기 위해 상기 비트스트림에 상기 마커를 삽입하도록 구성된 프로세서를 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  15. 제 14 항에 있어서,
    상기 프로세서는 디코딩 동안 상기 마커에 직면하는 경우 에러 핸들링을 개시하도록 더 구성되는, 멀티미디어 데이터의 프로세싱 장치.
  16. 제 14 항에 있어서,
    상기 변형된 비트스트림을 디코딩하도록 구성된 디코더를 더 포함하며,
    상기 디코더는, 디코딩 동안 상기 마커에 직면하는 경우 에러 핸들링을 활성화시키기 위해 상기 마커를 사용하도록 구성되는, 멀티미디어 데이터의 프로세싱 장치.
  17. 제 14 항에 있어서,
    상기 프로세서는 상기 변형된 비트스트림을 디코딩하기 위한 디코딩 프로세스로 더 구성되고, 상기 디코딩 프로세스는, 디코딩 동안 상기 마커에 직면하는 경우 에러 핸들링을 활성화시키기 위해 상기 마커를 사용하는, 멀티미디어 데이터의 프로세싱 장치.
  18. 제 17 항에 있어서,
    상기 에러 핸들링은 신택스 체킹, 상기 잘못된 비트의 드롭, 또는 에러 은닉을 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  19. 제 14 항에 있어서,
    상기 마커는 상기 잘못된 비트에 선행하여 상기 인코딩된 비트스트림의 전송 헤더 패킷에 삽입되는, 멀티미디어 데이터의 프로세싱 장치.
  20. 제 14 항에 있어서,
    상기 마커는 에러 패턴을 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  21. 제 19 항에 있어서,
    상기 에러 패턴에 기초하여 패킷 손실 비율이 결정되는, 멀티미디어 데이터의 프로세싱 장치.
  22. 제 20 항에 있어서,
    상기 에러 패턴은 상기 변형된 비트스트림에서 에러 패턴의 존재를 시그널링하는 시작 코드 프레픽스를 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  23. 제 20 항에 있어서,
    상기 비트스트림은, 전송 헤더를 포함하는 패킷의 형태로 디코더에 패싱되고, 상기 에러 패턴은 상기 전송 헤더에 "인-밴드"로 삽입되는, 멀티미디어 데이터의 프로세싱 장치.
  24. 제 20 항에 있어서,
    상기 에러 패턴은 상기 에러 패턴의 길이를 나타내는 정보를 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  25. 제 20 항에 있어서,
    상기 에러 패턴은 상기 잘못된 비트의 길이를 나타내는 정보를 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  26. 제 14 항에 있어서,
    상기 프로세서는, 상기 마커가 자체로 상기 비트스트림의 일부로서 판독되도록 상기 비트스트림에 상기 마커를 삽입하도록 구성되는, 멀티미디어 데이터의 프로세싱 장치.
  27. 제 14 항에 있어서,
    상기 비트스트림을 디코딩하도록 구성된 디코더를 더 포함하며,
    상기 프로세서는, 상기 마커가 상기 비트스트림의 일부가 되도록 상기 비트스트림에 상기 마커를 삽입하도록 구성되고, 상기 디코더는 상기 비트스트림을 디코딩하기 위한 상위층을 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  28. 제 27 항에 있어서,
    상기 상위층은 애플리케이션층을 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  29. 인코딩된 비트스트림을 수신하는 수단;
    상기 비트스트림에서 하나 이상의 잘못된 비트의 위치를 식별하는 수단;
    상기 하나 이상의 잘못된 비트를 나타내는 마커를 생성하는 수단; 및
    변형된 비트스트림을 생성하기 위해 상기 비트스트림에 상기 마커를 삽입하는 수단을 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  30. 제 29 항에 있어서,
    상기 변형된 비트스트림을 디코딩하는 수단을 더 포함하며,
    상기 마커는 디코딩 동안 상기 하나 이상의 잘못된 비트를 나타내기 위해 사용되는, 멀티미디어 데이터의 프로세싱 장치.
  31. 제 30 항에 있어서,
    디코딩 동안 상기 마커에 직면하는 경우 에러 핸들링 프로세스를 개시하는 수단을 더 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  32. 제 29 항에 있어서,
    상기 수신하는 수단은 수신기를 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  33. 제 29 항에 있어서,
    상기 식별하는 수단은 상기 비트스트림에서 하나 이상의 잘못된 비트의 위치를 식별하도록 구성된 프로세서를 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  34. 제 29 항에 있어서,
    상기 생성하는 수단은 상기 하나 이상의 잘못된 비트를 나타내는 마커를 생성하도록 구성된 프로세서를 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  35. 제 29 항에 있어서,
    상기 삽입하는 수단은 변형된 비트스트림을 생성하기 위해 상기 비트스트림에 상기 마커를 삽입하도록 구성된 프로세서를 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  36. 제 29 항에 있어서,
    상기 삽입하는 수단은, 상기 마커가 자체로 상기 비트스트림의 일부로서 판독되도록 상기 비트스트림에 상기 마커를 삽입하도록 구성되는, 멀티미디어 데이터의 프로세싱 장치.
  37. 제 30 항에 있어서,
    상기 삽입하는 수단은, 상기 마커가 상기 비트스트림의 일부가 되도록 상기 비트스트림에 상기 마커를 삽입하도록 구성되고, 상기 디코딩하는 수단은 상기 삽입된 마커를 사용하여 상기 변형된 비트스트림을 디코딩하기 위한 상위층을 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  38. 제 37 항에 있어서,
    상기 상위층은 애플리케이션층을 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  39. 멀티미디어 데이터를 프로세싱하기 위한 방법을 구체화하는 컴퓨터 판독가능 매체로서,
    상기 방법은,
    인코딩된 비트스트림을 수신하는 단계;
    상기 비트스트림에서 하나 이상의 잘못된 비트의 위치를 식별하는 단계;
    상기 하나 이상의 잘못된 비트를 나타내는 마커를 생성하는 단계; 및
    변형된 비트스트림을 생성하기 위해 상기 비트스트림에 상기 마커를 삽입하는 단계를 포함하는, 컴퓨터 판독가능 매체.
  40. 제 39 항에 있어서,
    상기 방법은 상기 변형된 비트스트림을 디코딩하는 단계를 더 포함하며,
    상기 마커는 디코딩 동안 상기 하나 이상의 잘못된 비트를 나타내는데 사용되는, 컴퓨터 판독가능 매체.
  41. 제 39 항에 있어서,
    상기 방법은 디코딩 동안 상기 마커에 직면하면 에러 핸들링 프로세스를 개시하는 단계를 더 포함하는, 컴퓨터 판독가능 매체.
  42. 인코딩된 비트스트림을 수신하고,
    상기 비트스트림에서 하나 이상의 잘못된 비트의 위치를 식별하고,
    상기 하나 이상의 잘못된 비트를 나타내는 마커를 생성하고,
    변형된 비트스트림을 생성하기 위해 상기 비트스트림에 상기 마커를 삽입하도록 구성되는, 멀티미디어 데이터 프로세싱용 프로세서.
  43. 제 42 항에 있어서,
    상기 변형된 비트를 디코딩하도록 더 구성되고, 디코딩 동안 상기 하나 이상의 잘못된 비트를 나타내기 위해 상기 마커를 사용하도록 구성되는, 멀티미디어 데이터 프로세싱용 프로세서.
  44. 제 42 항에 있어서,
    디코딩 동안 상기 마커에 직면하면 에러 핸들링을 개시하도록 더 구성되는, 멀티미디어 데이터 프로세싱용 프로세서.
  45. 제 42 항에 있어서,
    상기 마커가 자체로 상기 비트스트림의 일부로서 판독되도록 상기 비트스트림에 상기 마커를 삽입하도록 더 구성되는, 멀티미디어 데이터 프로세싱용 프로세서.
  46. 제 43 항에 있어서,
    상기 마커가 상기 비트스트림의 일부가 되도록 상기 비트스트림에 상기 마커를 삽입하도록 더 구성되고, 애플리케이션층을 사용하여 상기 비트스트림을 디코딩하도록 더 구성되는, 멀티미디어 데이터 프로세싱용 프로세서.
  47. 인코딩된 비트스트림에서 하나 이상의 잘못된 비트의 위치를 식별하고, 상기 하나 이상의 잘못된 비트를 나타내는 마커를 생성하고, 변형된 비트스트림을 생성 하기 위해 상기 비트스트림에 상기 마커를 삽입하도록 구성된 디코더를 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  48. 제 47 항에 있어서,
    멀티미디어 데이터의 인코딩된 비트스트림을 수신하고 상기 인코딩된 비트스트림을 상기 디코더에 제공하도록 구성된 통신 컴포넌트를 더 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  49. 제 47 항에 있어서,
    상기 디코더는 디코딩 동안 상기 마커에 직면하는 경우 에러 핸들링을 개시하도록 더 구성되는, 멀티미디어 데이터의 프로세싱 장치.
  50. 제 47 항에 있어서,
    상기 마커는, 상기 잘못된 비트에 선행하여 상기 인코딩된 비트스트림의 전송 헤더 패킷에 삽입되는, 멀티미디어 데이터의 프로세싱 장치.
  51. 제 47 항에 있어서,
    상기 마커는 에러 패턴을 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  52. 제 51 항에 있어서,
    상기 에러 패턴은 상기 변형된 비트스트림에서 에러 패턴의 존재를 시그널링하는 시작 코드 프레픽스를 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  53. 제 47 항에 있어서,
    상기 인코딩된 비트스트림은, 각각인 전송 헤더를 포함하는 패킷들을 포함하며, 상기 마커는 상기 전송 헤더에 "인-밴드"로 삽입되는, 멀티미디어 데이터의 프로세싱 장치.
  54. 제 47 항에 있어서,
    상기 마커는 상기 마커의 길이를 나타내는 정보를 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  55. 제 47 항에 있어서,
    상기 마커는 상기 잘못된 비트의 길이를 나타내는 정보를 포함하는, 멀티미디어 데이터의 프로세싱 장치.
  56. 제 47 항에 있어서,
    상기 프로세서는, 상기 마커가 자체로 상기 비트스트림의 일부로서 판독되도록 상기 비트스트림에 상기 마커를 삽입하도록 구성되는, 멀티미디어 데이터의 프로세싱 장치.
KR1020077029202A 2005-05-13 2006-05-15 인 밴드 에러 패턴을 사용한 에러 복원 KR100939951B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US68063305P 2005-05-13 2005-05-13
US60/680,633 2005-05-13
US78927306P 2006-04-04 2006-04-04
US60/789,273 2006-04-04

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020097024139A Division KR100998454B1 (ko) 2005-05-13 2006-05-15 인 밴드 에러 패턴을 사용한 에러 복원

Publications (2)

Publication Number Publication Date
KR20080016637A true KR20080016637A (ko) 2008-02-21
KR100939951B1 KR100939951B1 (ko) 2010-02-04

Family

ID=37432017

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020077029202A KR100939951B1 (ko) 2005-05-13 2006-05-15 인 밴드 에러 패턴을 사용한 에러 복원
KR1020097024139A KR100998454B1 (ko) 2005-05-13 2006-05-15 인 밴드 에러 패턴을 사용한 에러 복원
KR1020107019267A KR20100110885A (ko) 2005-05-13 2006-05-15 인 밴드 에러 패턴을 사용한 에러 복원

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020097024139A KR100998454B1 (ko) 2005-05-13 2006-05-15 인 밴드 에러 패턴을 사용한 에러 복원
KR1020107019267A KR20100110885A (ko) 2005-05-13 2006-05-15 인 밴드 에러 패턴을 사용한 에러 복원

Country Status (6)

Country Link
US (1) US20060268996A1 (ko)
EP (1) EP1884029A4 (ko)
JP (1) JP2008546230A (ko)
KR (3) KR100939951B1 (ko)
TW (1) TWI325706B (ko)
WO (1) WO2006124852A2 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007018484B4 (de) 2007-03-20 2009-06-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Senden einer Folge von Datenpaketen und Decodierer und Vorrichtung zum Decodieren einer Folge von Datenpaketen
EP2147558A2 (en) * 2007-04-17 2010-01-27 Nokia Corporation Feedback based scalable video coding
WO2009040966A1 (ja) * 2007-09-26 2009-04-02 Panasonic Corporation データ処理装置及び方法
FR2942095A1 (fr) * 2009-02-09 2010-08-13 Canon Kk Procede et dispositif d'identification de pertes de donnees video
US9288161B2 (en) * 2011-12-05 2016-03-15 International Business Machines Corporation Verifying the functionality of an integrated circuit
US10904577B2 (en) * 2018-02-07 2021-01-26 Mediatek Inc. Video compression system with post-processing of bitstream generated by hardware video encoding and associated video compression method
TW201939953A (zh) * 2018-03-16 2019-10-01 晨星半導體股份有限公司 影像壓縮系統及利用影像壓縮系統以壓縮影像畫面的方法
US11580396B2 (en) 2020-10-13 2023-02-14 Aira Technologies, Inc. Systems and methods for artificial intelligence discovered codes
US11088784B1 (en) * 2020-12-24 2021-08-10 Aira Technologies, Inc. Systems and methods for utilizing dynamic codes with neural networks
US11575469B2 (en) 2020-12-28 2023-02-07 Aira Technologies, Inc. Multi-bit feedback protocol systems and methods
US11191049B1 (en) 2020-12-28 2021-11-30 Aira Technologies, Inc. Systems and methods for improving wireless performance
US11483109B2 (en) 2020-12-28 2022-10-25 Aira Technologies, Inc. Systems and methods for multi-device communication
US11477308B2 (en) 2020-12-28 2022-10-18 Aira Technologies, Inc. Adaptive payload extraction in wireless communications involving multi-access address packets
US11368250B1 (en) 2020-12-28 2022-06-21 Aira Technologies, Inc. Adaptive payload extraction and retransmission in wireless data communications with error aggregations
US11489624B2 (en) 2021-03-09 2022-11-01 Aira Technologies, Inc. Error correction in network packets using lookup tables
US11496242B2 (en) 2021-03-15 2022-11-08 Aira Technologies, Inc. Fast cyclic redundancy check: utilizing linearity of cyclic redundancy check for accelerating correction of corrupted network packets
US11489623B2 (en) 2021-03-15 2022-11-01 Aira Technologies, Inc. Error correction in network packets

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5579317A (en) * 1995-08-15 1996-11-26 Lsi Logic Corporation Packet error propagation for MPEG transport demultiplexers
JP3769786B2 (ja) * 1995-09-29 2006-04-26 株式会社デンソー 画像信号の復号化装置
FI105962B (fi) * 1998-06-30 2000-10-31 Nokia Mobile Phones Ltd Virheiden ilmaisu multipleksattuja signaaleja vastaanotettaessa
JP2001025010A (ja) * 1999-07-09 2001-01-26 Mitsubishi Electric Corp マルチメディア情報通信装置およびその方法
JP3898885B2 (ja) * 1999-09-30 2007-03-28 松下電器産業株式会社 動画像復号化方法、動画像復号化装置、及びプログラム記録媒体
US7133455B2 (en) * 2000-12-29 2006-11-07 Intel Corporation Providing error resilience and concealment for video data
US6778610B2 (en) * 2001-03-02 2004-08-17 Redrock Semiconductor, Ltd. Simultaneous search for different resync-marker patterns to recover from corrupted MPEG-4 bitstreams
US7224730B2 (en) * 2001-03-05 2007-05-29 Intervideo, Inc. Systems and methods for decoding redundant motion vectors in compressed video bitstreams
JP3931595B2 (ja) * 2001-07-10 2007-06-20 株式会社日立製作所 データ修正装置及びデータ修正方法
JP4366141B2 (ja) * 2002-08-20 2009-11-18 キヤノン株式会社 画像処理装置、画像処理方法、記憶媒体、及びプログラム
KR20050040448A (ko) * 2003-10-28 2005-05-03 삼성전자주식회사 에러 검출 기능을 가진 비디오 디코딩방법과 이를 위한 장치

Also Published As

Publication number Publication date
TWI325706B (en) 2010-06-01
US20060268996A1 (en) 2006-11-30
KR100998454B1 (ko) 2010-12-06
EP1884029A2 (en) 2008-02-06
TW200707986A (en) 2007-02-16
WO2006124852A3 (en) 2009-05-07
EP1884029A4 (en) 2010-07-14
WO2006124852A2 (en) 2006-11-23
JP2008546230A (ja) 2008-12-18
KR100939951B1 (ko) 2010-02-04
KR20100110885A (ko) 2010-10-13
KR20090127958A (ko) 2009-12-14

Similar Documents

Publication Publication Date Title
KR100939951B1 (ko) 인 밴드 에러 패턴을 사용한 에러 복원
JP5738929B2 (ja) ストリーミングマルチメディアにおける最適エラー管理のためのデコーダアーキテクチャ
US8976858B2 (en) Error resilience using out of band directory information
US7151754B1 (en) Complete user datagram protocol (CUDP) for wireless multimedia packet networks using improved packet level forward error correction (FEC) coding
ES2389388T3 (es) Método y dispositivo para transmitir y recibir paquetes de datos
CN105681342A (zh) 一种基于h264的多路视频会议系统的抗误码方法及系统
RU2374787C2 (ru) Структура декодера для оптимизированного управления обработкой ошибок в потоковой передаче мультимедийных данных
CN101176353B (zh) 用于流式多媒体中优化错误管理的解码器架构

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
A107 Divisional application of patent
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee