KR20090006163A - 프레임 정보 테이블을 이용한 프레임 레벨 멀티미디어 디코딩 - Google Patents

프레임 정보 테이블을 이용한 프레임 레벨 멀티미디어 디코딩 Download PDF

Info

Publication number
KR20090006163A
KR20090006163A KR1020087026927A KR20087026927A KR20090006163A KR 20090006163 A KR20090006163 A KR 20090006163A KR 1020087026927 A KR1020087026927 A KR 1020087026927A KR 20087026927 A KR20087026927 A KR 20087026927A KR 20090006163 A KR20090006163 A KR 20090006163A
Authority
KR
South Korea
Prior art keywords
information
multimedia data
layer
processing
error
Prior art date
Application number
KR1020087026927A
Other languages
English (en)
Other versions
KR100983169B1 (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 KR20090006163A publication Critical patent/KR20090006163A/ko
Application granted granted Critical
Publication of KR100983169B1 publication Critical patent/KR100983169B1/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/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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/164Feedback from the receiver or from the transmission channel
    • H04N19/166Feedback from the receiver or from the transmission channel concerning the amount of transmission errors, e.g. bit error rate [BER]
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)

Abstract

에러 검출, 재동기화 및 에러 복구를 포함하는 집적된 에러 제어 시스템을 이용하여 목표 비디오 품질을 유지하면서 비디오 데이터를 디코딩하는 장치 및 방법이 기재된다. 견고한 에러 제어가 다수의 에러 복원 설계들을 포함하는 합동 인코더-디코더 기능성에 의해 제공될 수 있다. 일 특징으로, 에러 복구는 신뢰성 있는 에러 검출 및 에러 국부화를 달성하도록 설계되는 단-대-단 다중-계층 에러 검출, 재동기화 및 복구 매커니즘일 수 있다. 상기 에러 복구 시스템은 에러 검출, 재동기화 및 에러 복구 서브시스템들의 계층-간 상호작용을 포함할 수 있다. 다른 특징으로, 스케일러블 코딩된 비트스트림의 에러 처리는 스케일러블 압축된 비디오의 기저 계층 및 확장 계층에 걸쳐 조화된다.

Description

프레임 정보 테이블을 이용한 프레임 레벨 멀티미디어 디코딩{FRAME LEVEL MULTIMEDIA DECODING WITH FRAME INFORMATION TABLE}
본 명세서는 멀티미디어 신호 프로세싱 그리고, 더 특정하게는, 비디오 인코딩 및 디코딩에 관한 것이다.
비디오 인코더들과 같은, 멀티미디어 신호 프로세싱 시스템들은 MPEG-x 및 H.26x 표준들과 같은 국제 표준들에 기초하는 인코딩 방법들을 이용하여 멀티미디어 데이터를 인코딩할 수 있다. 그러한 인코딩 방법들은 일반적으로 전송 및/또는 저장을 위해 상기 멀티미디어 데이터를 압축하는 것에 관한 것이다. 압축은 널리 상기 데이터로부터 리던던시(redundancy)를 제거하는 프로세스이다.
비디오 신호는 화상(picture)들의 시퀀스에 대하여 기술될 수 있으며, 이는 프레임들(전체 화상), 또는 필드들(예컨대, 인터레이싱된 비디오 신호는 화상의 교번하는(alternating) 홀수 또는 작수 행들을 포함함)을 포함한다. 여기서 이용되는 바로서, 용어 "프레임"은 화상, 프레임 또는 필드를 지칭한다. 프레임들은 개별 픽셀들, 일반적으로 블록들로 지칭되는 픽셀들의 그룹들, 및 일반적으로 슬라이스(slice)들로 지칭되는 블록들의 그룹들을 포함하는 비디오 데이터의 다양한 크기의 부분들로 형성될 수 있다. 비디오 인코딩 방법들은 무손실 또는 손실 압축 알 고리듬들을 이용함으로써 비디오 신호들을 압축하여 각 프레임을 압축한다. 인트라-프레임(intra-frame) 코딩(여기서 인트라-코딩(intra-coding)으로 지칭됨)은 상기 프레임을 이용한 프레임 인코딩을 지칭한다. 인터-프레임(inter-frame) 코딩(여기서 인터-코딩(inter-coding)으로 지칭됨)은 다른, "기준(reference)," 프레임들에 기초한 프레임 코딩을 지칭한다. 예를 들어, 비디오 신호들은 종종 동일한 프레임 내에서 서로 근접한 비디오 프레임의 부분들이 적어도 서로 매칭(match)되거나 적어도 근사적으로 매칭되는 부분들을 갖는 공간 리던던시(spatial redundancy)를 나타낸다. 추가로, 프레임들은 종종 모션 보상 예측(motion compensated prediction)과 같은 기법들을 이용하여 제거될 수 있는 시간 리던던시(temporal redundancy)를 나타낸다.
예를 들어 비디오 비트스트림과 같은, 단일 애플리케이션에 관한 멀티미디어 비트스트림은 기저(base) 계층(layer) 및 하나 이상의 확장(enhancement) 계층들과 같은 둘 이상의 별도의 계층들로 인코딩될 수 있다(예컨대, 스케일러블(scalable) 코딩을 이용하여). 이러한 계층들이 스케일러빌리티(scalability), 예컨대 시간 및/또는 SNR (신호 대 잡음비) 스케일러빌리티를 제공하는데 이용될 수 있다. 스케일러블 코딩은, 동적(dynamic) 채널들에서 유용하며, 여기서 스케일러블 비트스트림들은 네트워크 대역폭의 변동(fluctuation)들에 매칭되도록 적응될 수 있다. 에러가나기-쉬운(error-prone) 채널들에서, 스케일러블 코딩은 상기 기저 계층 및 상기 확장 계층의 비균등(unequal) 에러 보호(protection)를 통해 견고성(robustness)을 더할 수 있다.
무선 채널들은, 비트 에러들 및 패킷 손실들을 포함하는, 에러들이 발생하기 쉽다. 비디오 압축이 본래 리던던시를 제거하기 대문에, 압축된 데이터는 결정적(critical)이게 된다. 전송 중 본 데이터의 임의의 부분의 손실은 디코더에서 재구성되는 비디오 품질에 영향을 미친다. 상기 영향은 상기 손실 데이터가 모션 보상 예측 및/또는 공간 예측을 위한 기준(reference) 부분들의 일부라면 악화되어, 시간 및/또는 공간 에러 전파(propagation)를 야기한다. 추가로, 스케일러블 코딩도 에러 전파를 악화시킬 수 있다. 예를 들어, 기저 계층의 손실은, 확장 계층 데이터가 상기 기저 계층 데이터에 의존하지 않는다면, 정확하게 수신된 확장 계층 데이터를 무용하게 할 것이다. 또한, 재동기화가 가능하다면 디스플레이될 수 있을 손실 비디오의 더 큰 부분들로 귀결되는 컨텍스트 의존 코딩(context dependent coding) 및 예측 코딩 때문에 디코더에서 동기화가 손실될 수 있다. 비디오의 큰 부분들이 에러들 때문에 손실된다면, 디코더 애플리케이션을 위한 에러 제어, 검출 및 복구는 어려울 수 있거나 불가능할 수 있다. 적어도 부분적으로, 수신된 정보의 최대 활용을 가능하게 하는 에러 검출, 재동기화 및/또는 에러 복구를 포함하는, 신뢰성 있는 에러 제어 시스템이 요구된다.
본 명세서의 시스템, 방법, 및 장치들 각각은 각각의 특징들을 가지며, 이들 중 어떠한 단일한 것도 요구되는 속성들에 대해 단독으로 담당하는 것은 아니다. 이어지는 청구의 범위들에 의해 표현되는 바와 같이 본 명세서의 범위를 제한하지 않고, 더욱 현저한 특징들이 이제 간단히 논의될 것이다. 본 논의를 고려한 후, 그리고 특히 "소정의 특징들의 실시예"로 명명된 부분을 탐독한 후 본 명세서의 표본적 특징들이, 예를 들어, 개선된 에러 은닉, 및/또는 개선된 효율성을 포함하는 멀티미디어 인코딩 및 디코딩에 이점들을 제공하는지를 이해할 것이다.
멀티미디어 데이터를 프로세싱하는 방법이 제시된다. 본 방법은 상기 멀티미디어 데이터를 수신하는 단계, 제 1 계층의 상기 멀티미디어 데이터에 대한 기술적 정보를 조직화하는 단계로서, 여기서 상기 기술적 정보는 제 2 계층의 멀티미디어 데이터의 프로세싱에 관련되는, 조직화 단계, 및 상기 기술적 정보에 적어도 일부 기초하여 상기 제 2 계층의 멀티미디어 데이터의 프로세싱에 관련되는 지시(instruction)들을 제공하는 단계를 포함한다.
멀티미디어 데이터를 프로세싱하는 장치가 제시된다. 상기 장치는 멀티미디어 데이터를 수신하도록 구성되는 수신기, 제 1 계층의 상기 멀티미디어 데이터에 대한 기술적 정보를 조직화하도록 구성되는 조직화기로서, 여기서 상기 기술적 정보는 제 2 계층의 멀티미디어 데이터의 프로세싱에 관련되는, 조직화기, 및 상기 기술적 정보에 적어도 일부 기초하여 상기 제 2 계층의 멀티미디어 데이터의 프로세싱에 관련되는 지시들을 제공하도록 구성되는 에러 제어 결정 서브시스템을 포함한다.
프로그램 코드를 포함하는 기계 판독가능 매체(machine readable medium)가 제시된다. 상기 프로그램 코드는, 하나 이상의 기계들 상에서 실행될 때, 상기 하나 이상의 기계들로 하여금 프로그램 동작들을 수행하게 한다. 상기 프로그램 코드는 멀티미디어 데이터를 수신하는 코드, 제 1 계층의 멀티미디어 데이터에 대한 기술적 정보를 조직화하는 코드로서, 여기서 상기 기술적 정보는 제 2 계층의 상기 멀티미디어 데이터의 프로세싱에 관련되는, 조직화 코드, 및 상기 기술적 정보에 적어도 일부 기초하여 상기 제 2 계층의 상기 멀티미디어 데이터의 프로세싱에 관련되는 지시들을 제공하는 코드를 포함한다.
멀티미디어 데이터를 프로세싱하는 방법이 제시된다. 본 방법은 상기 멀티미디어 데이터를 수신하는 단계, 상기 멀티미디어 데이터를 상위 계층에서 프로세싱하는 단계, 상기 상위 계층의 멀티미디어 데이터의 프로세싱에 관련되는 정보에 적어도 일부 기초하여 하위 계층에 지시하는 단계, 및 상기 상위 계층의 멀티미디어 데이터의 프로세싱에 관련되는 정보에 적어도 일부 기초하여 상기 하위 계층의 멀티미디어 데이터를 프로세싱하는 단계를 포함한다.
멀티미디어 데이터를 프로세싱하는 장치가 제시된다. 본 장치는 멀티미디어 데이터를 수신하도록 구성되는 수신기, 상위 계층의 멀티미디어 데이터를 프로세싱하고, 그리고 상기 상위 계층의 멀티미디어 데이터의 프로세싱에 관련되는 정보에 적어도 일부 기초하여 하위 계층에 지시하도록 구성되는 상위 계층 디코더 서브시스템, 및 상기 상위 계층의 멀티미디어 데이터의 프로세싱에 관련되는 정보에 적어도 일부 기초하여 상기 하위 계층의 멀티미디어 데이터를 프로세싱하도록 구성되는 하위 계층 디코더 서브시스템을 포함한다.
프로그램 코드를 포함하는 기계 판독가능 매체가 제시된다. 상기 프로그램 코드는, 하나 이상의 기계들에서 실행될 때, 상기 하나 이상의 기계들로 하여금 프로그램 동작들을 수행하게 한다. 상기 프로그램 코드는 멀티미디어 데이터를 수신하는 코드, 상위 계층의 멀티미디어 데이터를 프로세싱하는 코드, 상기 상위 계층의 멀티미디어 데이터의 프로세싱에 관련되는 정보에 적어도 일부 기초하여 하위 계층에 지시하는 코드, 및 상기 상위 계층의 멀티미디어 데이터의 프로세싱에 관련된 정보에 적어도 일부 기초하여 상기 하위 계층의 멀티미디어 데이터를 프로세싱하는 코드를 포함한다.
멀티미디어 데이터를 프로세싱하는 방법이 제시된다. 본 방법은 멀티미디어 데이터를 수신하는 단계, 제 1 계층으로부터 멀티미디어 데이터에 대한 기술적 정보를 수신하는 단계로서, 상기 기술적 정보는 제 2 계층의 멀티미디어 데이터의 프로세싱에 관련되는, 기술적 정보 수신단계, 및 상기 수신된 기술적 정보에 적어도 일부 기초하여 상기 제 2 계층의 멀티미디어 데이터를 프로세싱하는 단계를 포함한다.
멀티미디어 데이터를 프로세싱하는 장치가 제시된다. 본 장치는 멀티미디어 데이터를 수신하도록 구성되는 수신기, 제 1 계층으로부터 상기 멀티미디어 데이터에 관한 기술적 정보를 수신하고, 그리고 상기 수신된 기술적 정보에 기초하여 제 2 계층의 멀티미디어 데이터를 프로세싱하도록 구성되는 디코더를 포함하며, 상기 기술적 정보는 제 2 계층의 멀티미디어 데이터의 프로세싱에 관련된다.
프로그램 코드를 포함하는 기계 판독가능 매체가 제시된다. 본 프로그램 코드는, 하나 이상의 기계들 상에서 실행될 때, 상기 하나 이상의 기계들로 하여금 프로그램 동작들을 수행하게 한다. 상기 프로그램 코드는 멀티미디어 데이터를 수신하는 코드, 제 1 계층으로부터 상기 멀티미디어 데이터에 대한 기술적 정보를 수신하는 코드(상기 기술적 정보는 제 2 계층의 멀티미디어 데이터의 프로세싱에 관련됨), 및 상기 수신된 기술적 정보에 적어도 일부 기초하여 상기 제 2 계층의 멀티미디어 데이터를 프로세싱하는 코드를 포함한다.
도 1은 일 특징에 따른 멀티미디어 통신 시스템을 나타내는 블록도이다.
도 2는 도 1에 도시된 바와 같은 시스템의 인코더 장치(105) 및 디코더 장치(110) 내의 계층-간(cross-layer) 에러 제어 시스템을 포함하는 태스크들을 분할하는데 이용되는 다중-계층(multi-layer) 프로토콜 스택의 예시의 블록도이다.
도 3A는 도 1에 도시된 바와 같은 시스템에서 이용될 수 있는 디코더 장치의 특징을 나타내는 블록도이다.
도 3B는 도 1에 도시된 바와 같은 시스템에서 이용될 수 있는 디코더 장치의 컴퓨터 처리기 시스템의 예시를 나타내는 블록도이다.
도 4는 다중 계층 패킷화(packetization) 방식의 일례의 예시를 도시한다.
도 5A는 도 1에 도시된 바와 같은 시스템에서 멀티미디어 데이터를 프로세싱하는 방법의 일례를 나타내는 순서도이다.
도 5B는 도 1에 도시된 바와 같은 시스템에서 멀티미디어 데이터를 프로세싱하는 방법의 다른 예를 나타내는 순서도이다.
도 5C는 도 1에 도시된 바와 같은 시스템에서 멀티미디어 데이터를 프로세싱하는 방법의 다른 예를 나타내는 순서도이다.
도 6은 도 5C에 도시된 방법을 수행하는데 이용될 수 있는 다중계층 멀티미 디어 디코더 서브시스템의 예의 블록도이다.
도 7은 도 5A 및 5C에 도시된 방법들에서 소정의 동작들을 수행하는데 이용될 수 있는 기술적 정보를 조직화하는 방법의 예시를 나타내는 순서도이다.
도 8A 및 8B는 도 7에 도시된 방법에서 에러 제어 동작들을 결정하는 방법의 예시를 나타내는 순서도들이다.
도 9는 도 1의 예시와 같은 시스템에서의 이용을 위한 스케일러블 코딩된 기저 계층 및 확장 계층을 포함하는 물리 계층 패킷들의 예시의 구조를 나타낸다.
도 10A는 현재의 P-프레임 및 현재의 프레임에 3개의 프레임 전에 위치하는 이전에 디코딩된 P-프레임의 위치들을 그래픽으로 도시한다.
도 10B는 다른 잘못된(errorneous) 프레임들에 대한 에러 은닉(concealment)에 이용되는 디코딩된 프레임들의 플래깅(flag)을 그래픽으로 도시한다.
도 10C는 FRUC을 이용하여 잘못된 프레임을 은닉하는데 이용되는 두 개의 디코딩된 프레임들의 위치들을 지시하는데 이용되는 변수(variable)들을 그래픽으로 도시한다.
도 11은 도 1에 도시된 바와 같은 시스템에서서 이용될 수 있는 디코더 장치(150)의 다른 예시를 나타내는 기능 블록도이다.
도 12는 도 1에 도시된 바와 같은 시스템에서 이용될 수 있는 디코더 장치(150)의 다른 예시를 나타내는 기능 블록도이다.
도 13은 도 1에 도시된 바와 같은 시스템에서 이용될 수 있는 디코더 장치(150)의 다른 예시를 나타내는 기능 블록도이다.
도 14는 도 1에 도시된 바와 같은 시스템에서 이용될 수 있는 디코더 장치(150)의 다른 예시를 나타내는 기능 블록도이다.
도 15는 도 1에 도시된 바와 같은 시스템에서 이용될 수 있는 디코더 장치(150)의 다른 예시를 나타내는 기능 블록도이다.
도 16은 도 1에 도시된 바와 같은 시스템에서 이용될 수 있는 디코더 장치(150)의 다른 예시를 나타내는 기능 블록도이다.
이하의 실시예는 본 명세서의 소정의 특정한 표본적인 특징들에 대한 것이다. 어구들 "일 특징", "다른 특징", "추가적인 특징", "어떠한 특징", "일부 특징들", "소정의 특징들" 등이 다양한 특징들 내에서의 구성요소들의 다양한 측면들의 상호 배타성을 암시하고자 하는 것은 아니다. 따라서, 다양한 특징들 및 다양한 특징들의 구성요소들은 제거 및/또는 결합될 수 있으며 여전히 본 출원의 범위 내에 속한다. 그러나, 본 명세서의 다양한 특징들은 청구항들에 의해 정의되고 망라되는 다수의 상이한 방식들로 구체화될 수 있다. 본 실시예에서, 동일한 부분들이 전체에 걸쳐 동일한 도면부호들로써 지정되는 도면들을 참조로 한다.
특징들은 멀티미디어 전송 시스템의 인코더 및 디코더에서의 프로세싱을 개선하는 시스템들 및 방법들을 포함한다. 멀티미디어 데이터는 하나 이상의 모션 비디오, 오디오, 정지 화상들, 또는 임의의 다른 적절한 종류의 오디오-비주얼 데이터를 포함할 수 있다. 특징들은 에러 검출, 재동기화 및 에러 복구를 포함하는 통합 에러 제어 시스템을 이용하여 목표 비디오 품질을 유지하도록 비디오 데이터 를 디코딩하는 장치 및 방법을 포함한다. 견고한 에러 제어가다수의 에러 복원(resilience) 설계들을 포함하는 합동 인코더-디코더 기능성에 의해 제공될 수 있다. 예를 들어, 일 특징에 따르면 에러 복구는 신뢰성 있는 에러 검출 및 에러 국부화(localization)를 달성하도록 설계되는 단-대-단(end-to-end) 통합 다중-계층 에러 검출, 재동기화 및 복구 매커니즘일 수 있다는 점이 알려졌다. 또한 프로세싱 성능(performance)에 있어서의 이점들은 데이터 프로세싱 동안 소정의 계층-간(cross-layer) 상호작용을 구현함으로써 이뤄질 수 있다는 점도 알려졌다. 다른 특징으로, 스케일러블 코딩된 비트스트림의 에러 처리는 스케일러블 압축된 비디오의 기저-계층 및 확장 계층에 걸쳐 조화된다.
도 1은 일 특징에 따른 멀티미디어 통신 시스템(100)을 도시하는 기능 블록도이다. 본 시스템(100)은 네트워크(140)를 통해 디코더 장치(50)와 통신하는 인코더 장치(110)를 포함한다. 일례로, 상기 인코더 장치는 멀티미디어 신호를 외부 소스(102)로부터 수신하여 상기 신호를 네트워크(140) 상의 전송을 위해 인코딩한다.
본 예시에서, 상기 인코더 장치(110)는 메모리(114) 및 송수신기(116)에 접속되는 프로세서(112)를 포함한다. 상기 프로세서(112)는 멀티미디어 데이터 소스로부터의 데이터를 인코딩하여 이를 상기 네트워크(140)를 통한 통신을 위해 송수신기(116)에 제공한다.
본 예시에서, 디코더 장치(150)는 메모리(154) 및 송수신기(156)에 접속되는 프로세서(152)를 포함한다. 본 프로세서(152)는 하나 이상의 범용 프로세서 및/또 는 디지털 신호 처리기 및/또는 애플리케이션 특정적 하드웨어 프로세서를 포함할 수 있다. 메모리(154)는 하나 이상의 반도체 또는 디스크 기반 저장장치 또는 임의의 판독가능 및 기록가능 랜덤 액세스 메모리 장치를 포함할 수 있다. 송수신기(156)는 네트워크(140)를 통해 멀티미디어 데이터를 수신하고 디코딩을 위해 이를 상기 프로세서(152)에 대해 이용가능하게 하도록 구성된다. 일례로, 송수신기(156)는 무선 송수신기를 포함할 수 있다. 네트워크(140)는 이더넷, 전화(예컨대, POTS), 케이블, 전력-선, 및 광 섬유 시스템들 중 하나 이상을 포함하는 하나 이상의 유선 또는 무선 통신 시스템, 및/또는 코드 분할 다중 접속(CDMA 또는 CDMA2000) 통신 시스템, 주파수 분할 다중 접속(FDMA) 시스템, GSM/GRPS(Gereral Packet Radio Service)/EDGE(enhanced data GSM environment)와 같은 시 분할 다중 접속(TDMA) 시스템, TETRA(Terrstrial Trunked Radio) 이동 전화 시스템, 광대역 코드 분할 다중 접속(WCDMA) 시스템, 고 데이터 레이트(1xEV-DO 또는 1xEV-DO 골드 멀티캐스트) 시스템, IEEE 802.11 시스템, MediaFLO 시스템, DMB 시스템, 직교 주파수 분할 다중 접속(OFDM) 시스템, 또는 DVB-H 시스템 중 하나 이상을 포함하는 무선 시스템을 포함할 수 있다.
무선 채널들이 랜덤(random) 비트 에러들 및 버스트(burst) 에러들 모두에 직면하기 때문에, 에러 복구는 이러한 에러 타입들 모두를 효과적으로 다루도록 설계된다. 통합 다중-계층 에러 제어 시스템을 이용함으로써, 두 에러 타입들 모두가 효과적으로 처리될 수 있음이 밝혀졌다. 예를 들어, 하나 또는 수개의 픽셀들을 포함하는, 또는 하나 이상의 물리 계층 패킷(PLP)들의 손실을 포함하는 분리된 비디오 부분들에 영향을 미치는 랜덤 비트 에러들은, 애플리케이션 계층에서 공간 또는 시간 에러 은닉(concealment)을 이용함으로써 효과적으로 처리될 수 있음이 밝혀졌다. 그러나, 다수의 연속적인 PLP들의 손실을 가져오는 버스트 에러들은 이하에 논의되는 바와 같이 전송 및 동기화 계층에 내장되는 에러 제어 모듈들을 이용하여 더 효율적으로 다뤄질 수 있다.
도 2는 도 1에 도시된 바와 같은 시스템의 디코더 장치(110) 및 디코더 장치(150) 내의 계층-간 에러 제어 시스템을 포함하는 태스크들을 분할하는데 이용되는 다중-계층 프로토콜 스택의 예시의 블록도이다. 도 1 및 2를 참조하면, 인코더 장치(110) 및 디코더 장치(150)와 같은 통신 장치들은 프로세싱 태스크들을 분배하는데 이용되는 다중-계층 프로토콜 스택을 이용할 수 있다. 인코더 장치(110) 및 디코더 장치(150) 내의 상위 계층 컴포넌트들은, 예를 들어 비디오 또는 오디오 인코더들 및/또는 디코더들과 같은, 다수의 애플리케이션들을 포함할 수 있다. 일부 실시예들은 동시에 디코딩될 정보의 다수의 스트림들을 포함할 수 있다. 이러한 경우들에서, 다수의 스트림들의 동기화 태스크들도 상위 계층 컴포넌트들에서 수행될 수 있다. 인코더 장치(110)에서, 상위 계층 컴포넌트는 무선 네트워크 및/또는 유선 네트워크(140)를 통해 전송되는 비트스트림 내의 인코딩된 타이밍 정보를 제공할 수 있다. 디코더 장치(150)에서, 상위 계층 컴포넌트는 관련된 애플리케이션들이 거의 동일한 시간에 상기 정보의 다수의 스트림들을 디코딩하도록 이들을 파싱(parse)할 수 있다.
인코더 장치(110)의 상위 계층 컴포넌트들은 하나 이상의 애플리케이션 계 층(205) 및 동기화 계층(210)에 분포한다. 인코더 장치(110)의 하위 계층 컴포넌트들은 하나 이상의 전송 계층(215), 스트림 및/또는 매체 접근 제어(MAC) 계층(220), 및 물리 계층(225)에 분배된다. 유사하게, 디코더 장치(150)의 상위 계층 컴포넌트들은 하나 이상의 애플리케이션 계층(230) 및 동기화 계층(235)에 분배된다. 디코더 장치(150)의 하위 계층 컴포넌트들은 하나 이상의 전송 계층(240), 스트림 및/또는 매체 접근 제어(MAC) 계층(245), 및 물리 계층(350)으로 분배된다. 당해 기술분야에서 통상의 지식을 가진 자들은 이러한 계층들을 알 것이며 이들 간의 다양한 태스크들의 할당에 익숙할 것이다. 여기서 이용되는 바로서 용어 상위 계층 및 하위 계층은 상대적인 용어들임에 유의하여야 한다. 예를 들어, 동기화 계층(235)은 애플리케이션 계층(230)을 기준으로 하위 계층으로 지칭될 수 있지만, 전송 계층(240)을 기준으로 상위 계층으로 지칭될 수 있다.
인코더 장치(110) 내의 에러 복원 시스템(225)이 본 예시의 계층들 각각에 걸쳐 제공된다. 인코더 장치(110) 내의 하위 계층 컴포넌트들은 에러 복원성을 제공하기 위한 다양한 방식들을 포함할 수 있다. 하위 계층 컴포넌트들에서 제공되는 그러한 에러 복원 방식들은 당해 기술분야에서 통상의 지식을 가진 자들에게 공지된 하나 이상의 에러 제어 코딩 방식들, 인터리빙 방식들 및 다른 방식들을 포함할 수 있다. 디코더 장치(150) 내의 하위 계층 컴포넌트들은 에러들의 검출 및 정정을 가능하게 하는 대응하는 에러 디코딩 컴포넌트들을 포함할 수 있다. 유선 및/또는 무선 네트워크(150)를 통해 유입되는 일부 에러들은 디코더 장치(110)의 하위 계층 컴포넌트들에 의해 정정가능하지 않을 수 있다. 정정가능하지 않은 그러 한 에러들에 대해, 디코더 장치(105)의 하위 계층 컴포넌트들에 의한 오류가 있는(corrupt) 컴포넌트들의 재전송 요청과 같은 해결책들이 일부 상황들에 대해 불가능할 수 있다.
인코더 장치(150)의 상위 계층 컴포넌트들은, 멀티미디어 데이터의 패킷화(packetization)를 위해, 다양한 통신 계층들에 관련되는 헤더들 내에 기술적(descriptive) 정보를 첨부(attach)할 수 있다. 일부 예시들에서, 패킷화는 다양한 레벨(level)들에서 수행되어 데이터의 다수의 스트림들이 인코딩 프로세스에서 분리(split up)(파싱(parse))되고, 상기 인코더의 다양한 계층들에 의해 추가된, 적어도 일부의, 헤더 정보를 이용하여 디코딩 동안 재조립(reassemble)되게 하여 준다. 예를 들어, 동기화 계층(210)은 상기 패킷들의 다수의 타입들을 동시에 디코딩할 수 있는 다수의 디코더 컴포넌트들에 링크되는 다수의 타입들의 패킷들을 식별하는 헤더 정보를 추가할 수 있다. 상기 동기화 계층 헤더 정보는 데이터 시퀀스 시간, 데이터 시퀀스 듀레이션(duration), 목적(destination) 디코더 컴포넌트(예컨대, 오디오, 비디오 및 폐쇄 캡션(caption)), 프레임 번호, 패킷 번호 및 다른 정보를 식별하는 필드들을 포함할 수 있다. 동기화 계층 패킷들은 일부 예시들에서 가변 길이일 수 있다. 이는 예를 들어, 가변 길이 코딩 방식들을 포함하는 디지털 압축 방식들과 같은 다양한 인코딩 방식들 때문일 수 있다.
또한 전송 계층(215)도 기술적 정보를 전송 계층 내의 전송 계층 패킷들에 부착할 수 있다. 전송 계층 패킷들은 고정 길이 패킷들을 이용하는 다양한 에러 코딩 방식들, 변조 방식들 및 다른 방식들을 지원하기 위해 고정 길이일 수 있다. 상기 전송 헤더들은 단일 동기화 계층 패킷으로부터 파싱된 전송 계층 패킷들의 수를 식별하는 정보를 포함할 수 있다. 동기화 계층 패킷이 가변 길이라면, 상기 데이터를 포함하는데 요구되는 전송 계층 패킷들의 수도 역시 가변적일 수 있다.
일 특징으로, 상기 전송 및/또는 동기화 헤더들에 포함되는 정보의 적어도 일부가 디렉토리(directory)에 포함될 수 있다. 상기 디렉토리는 애플리케이션 계층(205), 동기화 계층(210), 전송 계층(215) 등과 같은 다양한 계층들에 관련된 헤더 정보를 포함할 수 있다. 상기 디렉토리는 디코더에 전달될 수 있다. 상기 정보는 디코더 장치에 의해 잘못 수신되는 오류 패킷들의 크기 식별, 재동기화하기 위해 다음의 이용가능한 패킷을 식별하는 것 등을 포함하는, 다양한 에러들로부터의 복구에 이용될 수 있다. 상기 헤더 디렉토리로부터의 헤더 정보는 데이터 스트림 내의 손실 또는 잘못된 본래의 헤더 정보를 대체하는데 이용될 수 있다. 헤더 디렉토리의 추가적인 세부사항들은 양수인에게 양수되고 여기에 참조로서 완전하게 통합되는 "VIDEO ENCODING METHOD ENABLING HIGHLY EFFICIENT PARTIAL DECODING OF H.264 AND OTHER TRANSFORM CODED INFORMATION"으로 명명되며 2006/9/25에 출원된, 특허 출원 번호 11/527,022에서 찾을 수 있다.
인코더 장치(150) 내의 에러 복구 시스템(260)이 본 예시에서 각 계층들에 걸쳐 제공된다. 디코더 장치(150)는 에러 복구를 위해 제공할 다양한 방식들을 포함할 수 있다. 그러한 에러 복구 방식들은 하위 계층 방법들에 의해 정정불가능한 데이터를 대체 및/또는 은닉하는데 이용되는 상위 계층 에러 복구 및/또는 에러 은닉 방식들과 더불어 하위 레벨 에러 검출 및 정정 컴포넌트들(리드-솔로몬(Reed- Solomon) 코딩 및/또는 터보-코딩과 같은)을 포함할 수 있다. 애플리케이션 계층(230)의 다양한 에러 복구 컴포넌트들은 동기화 계층(235) 및 전송 계층(240)과 같은 하위 계층들에 이용가능한 정보로부터 이점을 취할 수 있다. 상기 정보는 상기 전송 계층 헤더들, 동기화 계층 헤더들, 헤더 디렉토리(만일 이용가능하다면)에 포함될 수 있거나, 또는 수신된 데이터의 평가(evaluation)에 기초하여 디코더에서 생성될 수 있다.
전술한 바와 같이, 인코더 장치(100) 내의 에러 복원 시스템(255)과 디코더 장치(150) 내의 에러 복구 시스템(260)은 여기서 에러 제어 시스템으로 지칭되는 단-대-단 통합 다중-계층 에러 검출, 재동기화 및 복구 매커니즘을 형성한다. 상기 에러 제어 시스템의 세부사항들이 이제 논의될 것이다.
도 1 및 2에 도시된 인코더 장치(110) 또는 디코더 장치(150)의 하나 이상의 구성요소들이 생략, 재배치, 분리 및/또는 결합될 수 있음에 유의하라.
도 3A는 도 1에 도시된 시스템(100)과 같은 시스템에서 이용될 수 있는 디코더 장치(150)의 특징을 나타내는 기능 블록도이다. 본 특징에서, 디코더(150)는 수신기 엘리먼트(302), 정보 조직화기(organizer) 엘리먼트(304), 에러 제어 결정 엘리먼트(306), 및 멀티미디어 디코더 엘리먼트(308)를 포함한다.
수신기(302)는 인코딩된 비디오 데이터(예컨대, 도 1의 인코더에 의해 인코딩된 데이터)를 수신한다. 수신기(302)는 도 1의 네트워크(140)와 같은 유선 또는 무선 네트워크를 통해 상기 인코딩된 데이터를 수신할 수 있다. 일 특징으로, 상기 수신된 데이터는 소스 멀티미디어 데이터를 나타내는 변환 계수(transform coefficient)들을 포함한다. 상기 변환 계수들은 인접한 샘플들의 상관(correlation)들이 현저히 감소되는 영역(domain)으로 변환된다. 예를 들어, 이미지들은 전형적으로 공간 영역에서 높은 정도의 공간 상관을 나타낸다. 반면, 변환된 계수들은 일반적으로 서로에 대해 직교하여, 영(zero) 상관을 나타낸다. 멀티미디어 데이터에 이용될 수 있는 변환들의 일부 예시들은 DCT(이산 코사인 변환), DFT(이산 푸리에 변환), 하다마르(Hadamard)(또는 월시-하다마르(Walsh-Hadamard)) 변환, 이산 웨이블릿(wavelet) 변환들, DST(이산 사인 변환), Haar 변환, Slant 변환, KL(Karhunen-Loeve) 변환 및 H.264에서 이용되는 것과 같은 정수 변환들을 포함하지만, 이에 한정되는 것은 아니다. 상기 변환들은 멀티미디어 샘플들의 행렬(matrix) 또는 어레이를 변환시키는데 이용된다. 이차원 행렬들이 흔히 이용되지만, 일차원 어레이들도 이용될 수 있다.
또한 수신된 데이터는 인코딩된 블록들이 어떻게 인코딩되었는지를 지시하는 정보를 포함한다. 그러한 정보는 모션 벡터들 및 프레임 시퀀스 번호들과 같은 인터-코딩 기준 정보, 및 블록 크기들, 및 공간 예측 방향성 지시자(spatial prediction directivity indicator)들을 포함하는 인트라-코딩 기준 정보 등을 포함할 수 있다. 일부 수신된 데이터는 각각의 변환 계수가 소정의 개수의 비트들에 의해 어떻게 근사되었는지를 지시하는 양자화 파라미터들, 변환된 행렬 내의 얼마나 많은 변환 계수들이 영이-아닌지(non-zero)를 지시하는 논-제로(non-zero) 지시자들 등을 포함한다.
정보 조직화기 엘리먼트(304)는 비트스트림으로부터 멀티미디어 데이터에 대 한 기술적 정보를 취합한다. 일 특징으로, 상기 정보 조직화기(304)는 향후의 프로세싱을 위해 전송 및 동기화 계층 헤더 데이터를 해석(interpret)한다. 전송 헤더들이 프로세싱되어 프레임 및 수퍼프레임(superframe) 경계들을 결정할 수 있으며, 여기서 수퍼프레임은 일반적으로 독립적으로 디코딩가능한 프레임들의 그룹이다. 수퍼프레임은 약 0.2 초 내지 2.0 초의 범위의 고정 시간 기간을 망라하는 프레임들을 포함할 수 있다. 수퍼프레임 크기는 적절한 획득(acqusition) 시간을 허용하도록 선택될 수 있다. 또한 전송 헤더들이 프로세싱되어 프레임 길이들 및 비트스트림으로의 프레임들의 바이트 오프셋(offset)들을 결정하고, 스트림/MAC 계층으로부터 수신된 오류 PLP들을 처리할 수 있다. 동기화 계층 헤더들이 프로세싱되어 프레임 번호들을 추출하여 기저 및 확장 프레임들을 해석하고, 에러가 있는 경우에 표시(presentation) 시간 스탬프(time stamp)들을 내삽(interpolate)하는데 요구되는 프레임 레이트(rate)를 추출하고 그리고/또는 프레임 레이트 상향 변환(Frame Rate Up Conversion)(FRUC)의 프로세스를 통해 내삽되는 프레임들에 대한 PTS들을 내삽 및 유도할 수 있다. 또한 동기화 헤더들이 프로세싱되어 관련된 오디오 프레임들과 동기화할 비디오 프레임들에 대한 표시 시간 스탬프들을 추출하고, 그리고 디코더에서 동기화의 손실의 결과를 가져오는 에러들의 경우에 다음 재동기화 포인트를 마크(mark)할 랜덤 액세스 포인트 위치들을 추출할 수 있다. 또한 정보 조직화기(304)는, 만일 이용가능하다면, 전술한 바와 같이 헤더 디렉토리로부터의 정보를 취합할 수도 있다.
헤더들 및 헤더 디렉토리들로부터의 정보를 취합하는 것에 추가로, 정보 조 직화기(304)는 비디오 데이터에 대한 기술적 정보를 생성할 수도 있다. 다양한 헤더 검사합계(checksum)들, 페이로드 검사합계들, 및 에러 제어 방식들은 모두 데이터의 어느 부분이 오류가 있는지를 식별하는데 이용될 수 있다. 상기 생성된 정보는 데이터의 이러한 오류 부분들을 식별하는 데이터를 포함할 수 있다. 상기 에러 데이터는 에러 분포 측정(measure) 또는 에러율(error rate) 측정일 수 있다. 에러 데이터는 프레임 레벨로부터, 슬라이스 레벨(슬라이스는 픽셀들의 인코딩된 블록들의 그룹이다), 픽셀 블록 레벨 또는 픽셀 레벨에까지 임의의 레벨에서 조직화될 수 있다. 오류 데이터에 대한 이러한 종류의 기술적 정보가 에러들의 범위(extent)를 국부화(localize)하고 설정(establish)하는데 이용될 수 있다. 정보 조직화기(304)에 의해 식별, 컴파일, 취합, 유지, 플래깅(flag) 또는 생성될 수 있는 정보의 종류들의 세부사항들은 이하에서 논의될 것이다.
일 특징으로, 에러 제어 결정 엘리먼트(306)는 정보 조직화기(304)에 의해 취합 및/또는 생성된 기술적 정보(예컨대, 테이블 형태로 저장된)를 이용하여 멀티미디어 데이터의 프로세싱에 관련된 지시들을 제공한다. 에러 제어 결정 엘리먼트(306)는 에러들을 국부화하고 비디오의 어느 부분들이 영향을 받을 것인지와 어느 정도로 이러한 부분들이 오류가 있을 것인지를 설정하기 위해 상기 기술적 정보를 분석한다. 본 정보를 이용하여, 에러 제어 결정 엘리먼트(306)는 에러 상황(condition)들을 처리하는 에러 제어 방법을 결정할 수 있다. 다른 특징으로, 에러 제어 결정 엘리먼트(306)는 상위 계층들로부터 피드백 정보를 수신한다. 상기 피드백 정보는 상위 계층의 멀티미디어의 프로세싱에 관련되는 정보를 포함할 수 있다. 피드백 정보는 상위 계층으로 전달된 기술적 정보에서의 부정확했던 정보를 포함할 수 있다. 본 정보는 하위 계층에 저장되는 테이블을 정정하는데 이용될 수 있다. 추가로, 상기 피드백 정보는 프로세싱 시간(time)들, 프로세싱 동작들, 프로세싱 상태 및 다른 정보를 포함할 수 있다. 이러한 타입의 정보는 어떻게 상위 계층에 지시할 것인지를 결정시 상기 에러 제어 결정 엘리먼트(306)에 의해 분석될 수 있다.
에러 제어 결정 엘리먼트(306)는 멀티미디어 데이터가 상위 계층으로 전달될 때 어떻게 이를 프로세싱하여야 할 것인지에 대한 결정을 하기 위해 취합한 정보를 분석한다. 상기 결정은 수개의 에러 제어 방법들 중 하나 이상을 선택하는 것을 포함할 수 있다. 에러 제어 방법들은 오류가 있는 비디오 데이터의 부분들의 공간 및/또는 시간 에러 은닉을 포함할 수 있다. 또한 에러 제어 방법들은 상기 오류 데이터가 분석되어 상위 계층 애플리케이션에 대해 이용가능한 컨텍스트(context) 또는 다른 정보에 기초하여 소정의 방식으로 구조(salvage)되는 에러 복구 기법들도 포함할 수 있다. 이용될 수 있는 시간 에러 은닉의 극단적 형태는 프레임 레이트 상향 변환, 즉 FRUC으로 알려져 있다. FRUC는 다른 프레임들, 통상 구성될 프레임에 걸치는 두 개의 프레임들에 기초하여 새로운 프레임을 구성한다. 데이터의 오류 부분들이 관리가능한 수준에 있을 때(예컨대, 프레임의 부분들, 단일 프레임, 또는 다수의 프레임들이 상황에 따라 은닉가능한 것으로 결정될 때), 에러 제어 결정 엘리먼트(306)는 상위 계층에게 다른 에러 제어 방식들과 더불어, 공간 및/또는 시간 에러 은닉, 에러 복구 또는 FRUC를 이용하도록 지시할 수 있다. 그러나, 오 류 데이터의 범위가 너무 광범위하다면, 에러 제어 엘리먼트는 상위 계층에게 오류 부분들의 디코딩을 건너뛸(스킵) 것을 지시할 수 있다. 어떻게 상위 계층에 지시할 것인지를 결정하는데 있어서 에러 제어 결정 엘리먼트(306)에 의해 이용되는 세부사항들이 이하에서 논의된다.
멀티미디어 디코더 엘리먼트(308)는 오디오, 비디오, 폐쇄 캡션(closed caption) 등을 포함할 수 있는 멀티미디어 비트스트림들의 디코딩에 관련된 기능들을 수행한다. 상기 멀티미디어 디코더는 데이터를 인코딩하는데 이용되는 인코딩 동작들에 대응하는 역 동작을 수행한다. 인코딩된 데이터는 인터-코딩된(예컨대, 시간적으로 예측되는 데이터) 및/또는 인트라-코딩된 데이터일 수 있다. 도 2를 참조하면, 멀티미디어 디코더(308)에 의해 수행되는 기능들은 전송 계층(240), 동기화 계층(235) 및 애플리케이션 계층(250)과 같은 다수의 레벨들에서 수행될 수 있다. 전송 계층 기능들은 에러를 정정하고 정정불가능한 에러들을 식별하는데 이용되는 에러 검출 및 정정 방식들을 포함할 수 있다. 식별된 정정불가 에러들은 전술한 바와 같이 기술적 정보로의 편입을 위해 정보 조직화기(304)로 전달될 수 있다. 동기화 계층 기능들은 모든 동기화된 데이터가 디코디될 준비가 될 때까지 다수의 비트스트림들의 수신된 데이터를 버퍼링하는 것을 포함할 수 있다. 이 지점에서 이는 거의 동시적 디코딩을 위해 애플리케이션 계층 디코더들로 전달된다. 애플리케이션 계층 기능들은 상기 오디오, 비디오 및 폐쇄 캡션 비트스트림들의 압축해제(decompression)를 포함할 수 있다. 다양한 압축해제 기능들은 역양자화(dequantization), 및 비디오 데이터의 재구성에 이용되는 역 변환들을 포함할 수 있다. 일 특징으로, 상기 비디오 디코더 엘리먼트(308)의 애플리케이션 계층은 정보 조직화기(304) 및 에러 제어 결정 엘리먼트(306)가 상기 논의된 기능들을 수행한 후 디코딩 순서로 한 번에 하나의 프레임씩 비디오 프레임들을 수신한다.
일부 특징들로, 도 3A의 디코더(150)의 엘리먼트들 중 하나 이상이 생략, 재배치 및/또는 결합될 수 있다. 상기 엘리먼트들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드 또는 이들의 임의의 조합으로써 구현될 수 있다. 디코더(150)의 엘리먼트들에 의해 수행되는 동작들의 세부사항들은 이하의 도 5A-5C에 도시되는 방법들을 참조로 논의될 것이다.
도 3B는 도 1에 도시된 바와 같은 시스템에서 이용될 수 있는 디코더 장치의 컴퓨터 프로세서 시스템의 예시를 나타내는 블록도이다. 본 예시의 디코더 장치(150)는 전-처리기 엘리먼트(320), 랜덤 액세스 메모리(RAM) 엘리먼트(322), 디지털 신호 처리기(DSP) 엘리먼트(324), 및 비디오 코더 엘리먼트(326)를 포함한다.
전-처리기(320)는 일 특징으로 도 3A의 다양한 엘리먼트들에 의해 수행되는 하나 이상의 동작들을 수행하는데 이용된다. 상기 전-처리기는 비디오 비트스트림을 파싱(parse)하고 상기 데이터를 RAM(322)에 기록한다. 추가로, 일 특징으로, 상기 전-처리기(320)는 정보 조직화기(234), 에러 제어 결정 엘리먼트(306) 및 멀티미디어 디코더(308)의 전-프로세싱 부분들(예컨대, 에러 은닉, 에러 복구 등)의 동작들을 구현한다. 전-처리기(320)에서 이러한 더 효율적이고, 덜 계산상으로 집중적인 동작들을 수행함으로써, 더욱 계산상으로 집중적인 비디오 디코딩이, 고도로 효율적인 비디오 코어(326)에서, 대중없는(casual) 순서로, 수행될 수 있다.
DSP(324)는 RAM(322)에 저장된 상기 파싱된 비디오 데이터를 검색(retrieve)하여 비디오 코어(326)에 의해 처리되도록 이를 재조직화(reorganize)한다. 비디오 코어(326)는 다른 비디오 압축해제 기능들과 함께 역양자화(또한 재스케일링(rescaling) 또는 스케일링으로도 알려져 있음), 역 변환 및 블록해제(deblocking) 기능들을 수행한다. 비디오 코어는 일반적으로 고도로 최적화되고 파이프라이닝된(pipilined) 방식으로 구현된다. 이 때문에, 상기 비디오 데이터는 대중없는 순서로 디코딩될 때 가장 빠른 방식으로 디코딩될 수 있다. 전-처리기에서 순서가-없는(out-of-order) 파싱, 에러 검출, 정보 조직화 및 에러 제어를 수행함으로써, 상기 대중없는 순서가 개선된 전체 디코딩 성능을 가능하게 하는 비디오 코어에서의 디코딩을 위해 유지된다.
전술한 바와 같이, 정보 조직화기 엘리먼트(304)는 기술적 정보를 취합하고, 이를 테이블로 조직화하여 상기 테이블을 에러 제어 목적들을 위해 상위 계층들로 전달할 수 있다. 기술적 정보의 한가지 소스는 다양한 패킷화 계층들의 패킷들에 부착되는 다양한 헤더들이다. 도 4는 다중 계층 패킷화 방식의 예시의 설명을 도시한다. 본 예시적 패킷화 방식은 에러 제어 시스템의 소정의 특징들을 설명하는데 이용되지만, 다른 패킷화 방식들도 이용될 수 있다. 전송 계층 및 동기화 계층들은 프레이밍(framing) 및 검사합 프로토콜이다. 이들은 계층화된(layered) 매커니즘을 제공하여, 예를 들어, 수퍼프레임(프로세싱된 프레임들의 선택된 개수) 레벨에서, 비디오 액세스 유닛(video access unit)(VAU) 레벨에서, 또는 PLP 레벨에서를 포함하는 다양한 계층들에서 에러들을 검출한다. 따라서, 효율적 에러 국부 화가 임의의 또는 모든 이러한 레벨들에서 수행될 수 있다. 단일 비디오 프레임을 포함하는 VAU는 상기 동기화 계층 패킷 상위의 애플리케이션 계층에서 추가적인 레벨의 무결성(integrity) 검사를 제공한다.
본 예시에서, 애플리케이션 계층 패킷들(405A 및 405B)은 고정 및/또는 가변 길이 패킷들일 수 있다. 애플리케이션 계층 패킷들(405A 및 405B)은 각각 완전한 비디오 프레임 또는 VAU일 수 있다. 동기화 계층은 동기화 계층 헤더(SH)(410)를 각각의 애플리케이션 계층 패킷(405A 및 405B)에 부착하여, 동기화 계층 패킷들(406A 및 406B)을 만든다(도 4의 동기화 계층 패킷들(406A 및 406B)은, 각각 동기화 계층 헤더(410) 및 애플리케이션 계층 패킷들(405A 및 405B)을 포함한다). 그리고 나서 동기화 계층 패킷들(406A 및 406B)은 전송 계층에 입력된다. 본 예시에서, 전송 계층 패킷들은 고정 길이이다. 전송 계층은 상기 동기화 계층 패킷들을 전송 계층 패킷 크기에 대응하는 부분들로 분할하고 전송 계층 헤더들(TH)(415)을 그 결과적인 전송 계층 패킷들에 부착한다. 또한 전송 계층은 프레임 검사합(FCS)을 각각의 동기화 계층 패킷들에 부착할 수도 있다(미도시). FCS는 동기화 계층 패킷들에서의 에러들을 검출하는데 이용될 수 있다. 본 예시에서, 애플리케이션 계층 패킷(405A)을 포함하는 동기화 계층 패킷(406A)은 두 개의 전송 계층 패킷들(420A 및 420B)로 분할되며, 여기서 패킷(420B)은 동기화 계층 패킷(406A)의 나머지 부분(425B)과 동기화 계층 패킷(406B)의 제 1 부분(425C)을 포함한다. 본 예시에서, 추가적인 전송 계층 헤더(415)가 다음 동기화 계층 패킷(406B)의 시작부에 선행하는, 전송 계층 패킷(420B)의 부분(425C)에 부착된다. 제 3 전송 계층 패 킷(420D)은 동기화 계층 패킷(406B)의 다음 부분(425D)을 포함한다.
동기화 계층 헤더들(410) 및 전송 계층 헤더들(415)은 디코더로 하여금 동기화 계층 패킷들 및 애플리케이션 계층 패킷들을 재조합(reassemble)할 수 있게 하기 위한 유사한 정보를 포함할 수 있다. 헤더는 패킷 크기, 패킷 번호, 패킷 내에서의 헤더의 위치, 데이터 시퀀스 시간(time), 데이터 시퀀스 듀레이션, 프레임 시간, 프레임 번호, 랜덤 액세스 포인트 플래그, 프레임 레이트 및/또는 그룹내의 관련된 패킷들의 개수와 같은 정보를 포함할 수 있다. 추가로, 헤더 정보는 비디오 비트스트림, 오디오 비트스트림, 및/또는 폐쇄 캡션 비트스트림에 속하는 관련된 패킷들을 식별하는 스트림 식별 정보를 포함할 수 있다. 전송 및 동기화 계층 헤더들의 특정한 예시가 이제 논의될 것이다.
전송 계층의 한 가지 기능은 스트림/MAC 계층의 옥텟(octet)-기반 서비스를 통해 패킷 서비스를 제공하는 것이다. 전송 계층도 물리 계층 에러들의 존재시 그 페이로드 패킷들(도 4에 도시된 예시에서 VAU들)의 경계들을 결정하는 매커니즘들을 제공한다. 다수의 프레이밍 프로토콜들이 전송 계층에 관련하여 이용될 수 있다. 상기 전송 계층에 관련되는 프레이밍 프로토콜들은 그 페이로드 패킷들을 조합하여 애플리케이션 계층의 디코더로 전달될 패킷들을 생성하기 위한 규칙들을 규정한다. 또한 상기 프레이밍 프로토콜은 PLP 에러들과 상기 디코더에 의해 예상될 수 있는 결과적인 행동(behavior)들을 취급하기 위한 규칙들을 규정한다.
전송 계층 헤더(415) 내의 소정의 필드들의 예시 포맷은 테이블 1에 주어진다. 본 예시에서, 프레이밍 프로토콜 규칙들은 112 바이트 고정 길이 PLP를 제공 한다. 페이로드(본 예시에서 VAU)의 시작과 끝을 지시하는 것에 추가하여, 전송 헤더도 오류 PLP들을 상위 계층들로 전달하는데 이용된다.
테이블 1
필드 타입 범위
LENGTH 유닛(UNIT)(7) 0-121
LAST 비트(1) 0/1
테이블 1의 전송 헤더는 1-바이트 길이이다. 7 비트 길이 필드는 바이트 단위의 페이로드의 길이를 지시하며 0 내지 121 바이트(최대값은 121인데 이는 PLP가 122 바이트 길이이고 헤더가 1-바이트이기 때문이다)의 범위를 갖는다. 1로 세팅되는 LAST 필드는 본 전송 계층 패킷이 VAU의 최종 단편(fragment)을 포함한다는 것을 지시한다. 본 예시에서, PLP가 오류가 있는 것으로 결정되면(하나 이상의 검사합들 및/또는 에러 정정 방식들에 의해 결정되는 바와 같이), 전송 계층은 LENGTH 필드의 값을 122로 세팅하여, 전체 PLP가 전송될 상위 계층들에 대해 이용불가능한 것으로 마킹(mark)한다.
동기화 계층 헤더(410)의 소정의 필드들의 예시 포맷이 테이블 2에 주어진다. 동기화 계층 패킷들은 비디오에 대한 전송 계층에 관한 페이로드를 형성한다. 일례로, 비디오의 프레임은 동기화 계층 패킷을 형성한다. 테이블 2에 도시된 본 예시에서, 동기화 계층 패킷 헤더(410)는 고정-4-바이트 헤더이며 대응하는 동기화 계층 패킷은 하나의 비디오 프레임에 대응하는 가변 길이 페이로드이다. 테이블 2의 동기화 헤더 필드들에 포함되는 정보는 비디오 프레임 타입, 프레임 레이트, 표시 시간 스탬프, 랜덤 액세스 플래그, 수퍼 프레임 내의 프레임 번호, 및 데이터가 기저 또는 확장 계층 비트스트림에 관련되는 것인지 여부 등과 같은 정보를 포함할 수 있다.
테이블 2
필드명 필드 타입 설명
Stream_ID 유닛(UNIT)(2) 00 - 비디오; 01 - 오디오; 10 - 폐쇄 캡션
PTS 유닛(14) 표시 시간 스탬프
Frame_ID FRAME_ID_TYPE(7) Frame_Number 및 Enhancement_Flag Frame_Number: SF 내의 현재의 프레임의 번호 확장(Enh.) 플래그: 0 - 기저; 1 - 확장 계층
RAP_FLAG 비트(1) 랜덤 액세스 포인트 1 - RAP
FRAME_RATE 유닛(3) 000 - 15 fps, 001 - 30 fps 등
RESERVED 유닛(5) 유보된 비트들
Stream_ID 필드는 페이로드 데이터가 관련되는(예컨대, 오디오, 비디오, 폐쇄 캡션 데이터 등) 복수의 멀티미디어 스트림들 중 하나를 지시하는데 이용된다. PTS 필드는 오디오, 비디오 등을 동기화하는데 이용될 수 있는 표시 시간을 지시하는데 이용된다. Frame_ID 필드는 순환 프레임 번호(cyclical frame number)(예컨대, 프레임들 0-127을 나타내는 7개의 비트들) 부분과 상기 데이터가 기저 계층 또는 확장 계층 데이터인지를 지시하는 확장 비트를 포함한다. 스케일러블(scalable) 코딩이 이용되지 않는다면, 상기 확장 비트는 생략될 수 있다. RAP_FLAG 필드는 프레임이 디코딩 장치에 의해 랜덤 액세스 포인트로서 이용될 수 있는지를 지시하는데 이용된다. 랜덤 액세스 포인트는 임의의 다른 이전 또는 향후의 프레임들 또는 비디오의 다른 부분들을 참조하지 않고 디코딩될 수 있다. FRAME_RATE 필드는 복수의 가능한 프레임 레이트들 중 하나를 지시한다. 프레임 레이트들은 대략 초당 15 프레임 이하로부터 대략 초당 60 프레임 이상까지 변화할 수 있다. RESERVED 필드는 당해 기술분야에서 통상의 지식을 가진 자들이 이점을 취할 수 있는 다른 종류의 정보를 전달하는데 이용될 수 있다.
전송 헤더 정보 및 동기화 헤더 정보에 추가하여, 상기 정보 조직화 엘리먼트에 대한 기술적 정보의 다른 소스는, 전술한 바와 같이, 헤더 디렉토리일 수 있다. 상기 헤더 디렉토리는, 일례로, 비디오 및/또는 오디오 비트스트림들과 별도의 부수(side) 정보로서 전송되는 중복(duplicated) 헤더 정보의 테이블이다. 테이블 3에 열거된 바와 같은 헤더 디렉토리 정보.
테이블 3
필드명 필드 타입 필드 값
MESSAGE_ID 유닛(8) 5 : 비디오 동기화 디렉토리
MEDIA_TYPE 유닛(2) 0 : 비디오 동기화 디렉토리 메시지
NUM_VSL_RECORDS 유닛(1) 0: 1 VSL_records; 1: 2 VSL_records
VSL_RECORDs VSL_RECORD_TYPE VSL_record는 다음을 포함함, 1. 프레임 레이트 2. 프레임들의 개수 3. 제 1 프레임 PTS 4. 최종 프레임 PTS
RAP_FLAG_BITS 비트(60) SF 내의 RAP 프레임 위치 비트 맵
B_FRAME_FLAG_BITS 비트(60) SF 내의 B 프레임 위치 비트 맵
RESERVED 비트(3) 미정
헤더 디렉토리는 가변 길이 페이로드로서 전송될 수 있다. 상기 정보의 대부분이 패킷화 방식의 다양한 헤더들 내의 정보의 복제(duplication)이다(예컨대, 프레임 레이트, 표시 시간 스탬프들, 랜덤 액세스 포인트들). 그러나, 추가적인 정보가 포함될 수 있다. 그러한 추가적인 정보는 B_FRAME_FLAG_BITS 필드를 포함하며, 이는 수퍼프레임 내에서의 B-프레임들의 위치를 지시한다. 수퍼프레임은 일반적으로 인트라-코딩된 프레임과 같은 독립적으로 디코딩가능한 프레임으로써 시작된다. 상기 수퍼프레임 내의 다른 프레임들은 일반적으로 단-방향 예측 부(uni- directionally predicted portion)들 및 양-방향 예측 부(bi-directionally predicted portion)(여기서 B-프레임 부분들 또는 단순히 B-프레임들로 지칭됨)을 포함한다. 테이블 3의 예시에서, 수퍼프레임 내의 랜덤 액세스 포인트들은 RAP_FLAG_BITS 필드로 매핑된다.
헤더 디렉토리는 수퍼프레임 내의 소정의 프레임들(예컨대, B-프레임들)의 위치에 대한 추가적인 정보 및 헤더 정보를 제공한다. 본 정보는 정보 조직화기 엘리먼트(304)로 하여금 달리 식별될 수 없다면 데이터의 오류 부분들의 유력한 아이덴티티(identity)를 결정할 수 있게 하여주는 것과 함께 (에러들 때문에 상실되는) 상실된 헤더 정보를 대체하는데 이용될 수 있다.
도 5A는 도 1에 도시된 바와 같은 시스템에서 멀티미디어 데이터를 프로세싱하는 방법의 예시를 나타내는 순서도이다. 프로세스(500)는 디코더 장치가 인코딩된 멀티미디어 데이터를 수신하는 블록(505)에서 시작된다. 상기 인코딩된 멀티미디어 데이터는 멀티미디어 데이터 비트스트림에 관련되는 압축된 데이터의 형태일 수 있다. 디코더 장치는 도 1에 도시된 네트워크(140)와 같은 유선 및/또는 무선 네트워크를 통해 멀티미디어 데이터를 수신할 수 있다. 상기 멀티미디어 데이터는 오디오, 비디오, 폐쇄 캡션 등을 포함하지만, 이에 한정되지는 않는 다수의 동기화된 및/또는 비-동기화된 비트스트림들을 포함할 수 있다. 상기 멀티미디어 데이터는 애플리케이션 계층 패킷들, 동기화 계층 패킷들 및 전송 계층 패킷들을 포함하는 다수의 패킷화된 계층들을 포함할 수 있다. 상기 다수의 계층들은 각각 전술한 바와 같이 헤더 정보를 포함할 수 있다. 상기 헤더 정보는 상기 테이블들 1과 2에 열거된 바와 같은 부분들로 배열될 수 있다. 상기 비디오 데이터는 프레임들, 슬라이스들, 픽셀들의 블록들 등과 같은 부분들로 배열될 수 있다. 상기 프레임들은 다수의 프레임들의 수퍼프레임들로 그룹화될 수 있다. 또한 수신된 멀티미디어 데이터는 전술한 바와 같이 헤더 디렉토리를 포함할 수 있다. 수신된 멀티미디어 데이터는 기저 계층 및 확장 계층과 같은 스케일러블 계층들로 인코딩될 수 있다. 헤더 디렉토리는 테이블 3에 열거된 바와 같은 정보를 포함할 수 있다. 도 3A의 디코더 장치(150)의 수신기 엘리먼트(302)는 블록(505)에서 상기 기능들을 수행할 수 있다.
블록(505)에서 멀티미디어 데이터를 수신한 후, 프로세스(500)는 블록(510)으로 계속되어 여기서 상기 디코더 장치가 수신된 멀티미디어 데이터에 대한 기술적 정보를 조직화한다. 도 3A에 관련하여 전술한 바와 같이, 정보 조직화기 엘리먼트(304)는 상기 멀티미디어 데이터에 대한 정보를 상기 비트스트림으로부터 블록(505)에서 수집한다. 전송 헤더들이 프로세싱되어 프레임 및 수퍼프레임 경계들을 결정할 수 있다. 또한 전송 헤더들이 프로세싱되어 프레임 길이들 및 비트스트림으로의 프레임들의 바이트 오프셋들을 결정할 수 있다. 동기화 계층 헤더들이 프로세싱되어 프레임 번호들을 추출하고 기저 및 확장 프레임들(예컨대, 스케일러블하게 코딩된 비트스트림들에 대한)을 해석(interpret)하고, 프레임 레이트들을 추출하고, 그리고/또는 프레임들에 대한 PTS들을 내삽 및 유도할 수 있다. 또한 동기화 헤더들이 프로세싱되어 표시 시간 스탬들들을 추출하거나 또는 랜덤 액세스 포인트들을 추출할 수 있다. 블록(510)에서 식별, 컴파일, 취합, 유지, 플래깅 또 는 생성되는 정보는, 만일 블록(505)에서 수신된다면, 전술한 바와 같이 헤더 디렉토리로부터 얻어질 수도 있다.
블록(510)에서 조직화되는 기술적 정보는 오류 데이터에 속하는 정보를 포함할 수도 있다. 상기 에러 데이터는 에러 분포 측정 또는 에러 레이트 측정을 포함할 수 있다. 상기 에러 데이터는 프레임 레벨로부터, 슬라이스 레벨(슬라이스는 픽셀들의 인코딩된 블록들의 그룹이다), 픽셀 블록 레벨 또는 픽셀 레벨에 이르기 까지의 임의의 레벨 상에서 조직화될 수 있다. 오류 데이터에 대한 이러한 타입들의 기술적 정보는 에러들의 범위를 국부화하고 설정하는데 이용될 수 있다. 블록(510)에서 조직화될 수 있는 기술적 정보의 테이블의 예시가 이제 논의된다.
테이블 4는 블록(510)에서 생성될 수 있는 프레임 정보의 일례를 열거한다. 또한 유사한 테이블들이 슬라이스들, 픽셀들의 블록들 등과 같은 다른 레벨들에서 조직화될 수도 있다.
테이블 4
프레임 번호 계층 프레임 길이 PTS 프레임 타입 RAP FLAG PLP 에러 분포 PLP 에러 비율 동작
1 기저 L1 PTS1 I 1 Error_dist_1 15% 미정
2 기저 L2 PTS2 P 0 Error_dist_2 10% 미정
3 기저 L3 PTS3 P 0 Error_dist_3 0% 미정
4 기저 L4 PTS4 P 0 Error_dist_4 40% 미정
프레임 번호, 계층(예컨대, 기저 또는 확장), 프레임 길이, PTS, 프레임 타입, RAP_FLAG 필드들은 오류가-없는것으로 알려진 동기화 계층 헤더들로부터 얻어질 수 있다. 이러한 필드들은 블록(505)에서 수신된다면 헤더 디렉토리로부터 얻어질 수도 있다. 수개의 오류 프레임들이 함께 결부된다면(예컨대, 동기화 헤더의 오류 때문에), 프레임 길이 필드는 상기 결부된 프레임들의 총 바이트 수와 동일한 값으로 세팅될 수 있다. 프레임 타입 필드는, 예를 들어, I-프레임, P-프레임 또는 B-프레임을 지시하는데 이용될 수 있다. 이러한 필드들 중 일부는 상기 데이터의 오류 때문에 채워지지 못할 수 있다.
PLP 오류 분포 필드는 검출된 프레임 내의 오류 데이터의 위치에 관련되는 기술적 정보를 제공하는데 이용된다. 각 프레임은 도 4를 참조로 전술한 바와 같이 수개의 PLP들로 구성될 수 있다. "Error_dist_n" 변수는 PLP들의 어느 부분이 오류가 있는 데이터를 포함하는지에 대한 지시를 포함한다. 오류 분포를 지시하는 수개의 방법이 이용될 수 있다. 예를 들어, 상기 오류 분포는 프레임의 제 1/16 부분으로 반올림(round up)되고 2-바이트 "Error_dist_n" 변수에 의해 표현될 수 있다. 상기 2-바이트 변수의 각 빈(bin) 또는 비트는 상기 프레임의 제 1/16 부분에 대한 오류 PLP들의 존재를 지시한다. 1인 값은 상기 범위에 대한 오류 PLP들이 존재함을 지시하고, 0은 에러 없는 PLP 부분을 지시한다. 수개의 프레임들이 함께 결부된다면, PLP 에러 분포는 상기 결부된 프레임들 내의 모든 PLP들의 전체 에러 분포를 캡처한다. 프로세스(500)의 본 지점에서, 표 4에 열거된 프레임 정보 테이블의 최종 필드, "동작(Action)"은, 완료되지 않으며 프레임 정보 테이블에 포함되는 다른 정보에 기초하여 블록(515)에서 결정될 수 있다. 상기 프레임 정보 테이블은 도 1의 디코더 장치(150)의 메모리 엘리먼트(154)에 저장될 수 있다. 도 3A의 디코더 장치(150)의 정보 조직화기(304)는 블록(510)에서의 기능들을 수행할 수 있다.
블록(510)에서 상기 기술적 정보를 조직화한 후, 본 프로세스(500)는 블록(515)로 계속되어 여기서 상기 디코더 장치는 제 2 계층에서의 멀티미디어 데이터의 프로세싱에 관련되는 지시들을 제공한다. 제 2 계층은 상위 계층 또는 하위 계층일 수 있다. 상기 논의된 예시들은 하위 계층(예컨대, 전송 및/또는 동기화 계층)이 상위 계층(예컨대, 애플리케이션 계층)에 지시들을 제공하는 것에 관련되어 있다. 그러나 이하에 논의되는 방법들은 상위 계층들도 상위 계층들에서 얻어지는 기술적 정보에 기초하여 하위 계층들에 지시들을 제공하는 것을 보여줄 것이다.
일 특징으로, 디코더 장치는 다른 계층(예컨대, 애플리케이션 계층)에서 수행될 에러 제어 방법에 관련되는 지시들을 제공한다. 에러 제어 방법들은 다양한 에러 복구 기법들을 포함할 수 있다. 에러 복구 기법들에 있어서 오류가 있는 데이터에 포함되는 변수들의 값들을 구하기 위한 시도들이 행하여 진다. 이러한 방법들은, 만일 블록(505)에서 수신된다면, 상기 논의된 헤더 디렉토리를 이용하여 시퀀스 계층 패킷들의 프레임 페이로드의 크기를 식별하는 단계를 포함할 수 있다. 헤더 디렉토리는 인코딩의 타입, 전송 계층 패킷들의 번호 및 크기, 타이밍 정보 등을 식별하는 정보를 포함할 수 있다.
수행될 수 있는 다른 형태의 에러 제어는 에러 은닉(concealment)이다. 에러 은닉 기법들은 일반적으로 다른 이미 수신된 및/또는 디코딩된 픽셀 값들로부터 픽셀 값들을 추정하는 것을 수반한다. 에러 은닉 기법들은 시간 및/또는 공간 은닉을 이용할 수 있다. 예를 들어, P-프레임의 일부가 오류가 있다면, 에러 은닉은 이미 디코딩된 이전 프레임에 기초하는 시간 은닉인 것으로 선택될 수 있다. 만일 B-프레임 부분이 오류가 있다면, 두 개의 다른 수신 및/또는 디코딩된 프레임들로부터의 시간 예측이 이용될 수 있다.
수행될 수 있는 다른 형태의 에러 제어는 FRUC이다. FRUC 기법들에 잉써서, 전체 프레임이 하나 이상의 다른 프레임들로부터 구성된다. FRUC 기법들은 프레임의 부분들에 이용되는 것들과 유사한 시간 은닉 기법들을 이용할 수 있지만, 단지 전체 프레임에 걸쳐 수행된다.
일 특징으로, 도 3A의 디코더 장치(150)의 에러 제어 결정 엘리먼트(306)는 블록(515)에서 동작들을 수행한다. 상기 에러 제어 결정 엘리먼트(306)는 블록(310)에서 조직화된 에러 분포 특성들을 이용하여 추천할 다양한 에러 제어 기법들 중 어느 것이 수행될 것인지를 결정한다. 어느 에러 제어 기법들을 추천할 것인지를 결정하는 방법들의 세부사항들이 이하에서 논의된다. 일부의 경우, 에러 제어 결정 엘리먼트(306)는 어떠한 에러 제어 기법들도 실시불가능하다고 결정할 수 있으며 하나 이상의 프레임들에 대한 에러 제어를 스킵할 것을 권고할 수 있다. 이 경우, 성공적으로 디코딩된 최종 프레임이 대신 디스플레이될 수 있다. 일 특징으로, 블록(515)에서 결정된 에러 제어 방법이 테이블 3에 도시된 바와 같은 프레임 정보의 "동작" 필드에 저장된다. 상기 프레임 정보 테이블은 에러 제어 방법들이 수행되는 계층에 전달된다. 비디오 디코더는 대응하는 프레임의 "동작" 아이템을 상기 프레임 정보 테이블로부터 취하여 이를 디코딩 프로세스를 가이드(guide)할 시작점(starting point)으로서 이용한다. 본 프로세스(500)의 블록들 중 일부가 결합, 생략, 재배열되거나 또는 임의로 이들이 조합될 수 있음에 유의하여야 한다.
도 5B는 도 1에 도시된 바와 같은 시스템에서 멀티미디어 데이터를 프로세싱하는 방법(520)의 다른 예시를 나타내는 순서도이다. 방법(520)은 하위 계층에서 도 5A의 방법을 수행하는 하위 계층을 갖는 디코더 장치의 애플리케이션 계층에서 수행될 수 있다.
본 방법(520)은 멀티미디어 데이터가 방법(520)을 수행하는 계층에서 수신되는 블록(525)에서 시작된다. 멀티미디어 데이터는 프레임들, 슬라이스들 또는 픽셀들의 블록들과 같은 멀티미디어 데이터의 부분들일 수 있다. 일 특징으로, 블록(525)에서 수신되는 멀티미디어 데이터 부분들은 전송 계층 및/또는 완전한 동기화 계층 패킷을 형성하기 위해 전송 계층 패킷들을 조합하는 동기화 계층과 같은 하위 레벨에서 컴파일된다. 상기 완전한 동기화 계층 패킷은 디코딩될 수 있는 비디오의 완전한 프레임 또는 일부 다른 부분일 수 있다. 일부 특징들로, 블록(525)에서 수신되는 멀티미디어 데이터의 부분들은 이들이 멀티미디어 시퀀스에서 디스플레이될 수 있는 순서로 수신된다. 도 1에 도시된 디코더 장치(150)의 멀티미디어 디코더 서브시스템(308)이 블록(525)에서 상기 동작들을 수행할 수 있다.
블록(525)에서 상기 멀티미디어 데이터를 수신한 후, 본 프로세스(520)를 수행하는 디코더 계층은 블록(530)에서 제 1 계층으로부터 멀티미디어 데이터에 대한 기술적 정보를 수신한다. 상기 제 1 계층은 하위 계층(예컨대, 전송 또는 동기화 계층)일 수 있다. 블록(530)에서 수신되는 기술적 정보는 상기 논의되는 프로세 스(500)의 블록(510)에서 식별, 컴파일, 취합, 유지, 플래깅 또는 생성될 수 있다. 블록(530)에서 수신되는 상기 기술적 정보는 상기 테이블들 3 또는 4에 도시된 것들과 같은 엔트리(entry)들을 포함하는 프레임 정보 테이블의 형태일 수 있다. 상기 프레임 정보 테이블은 멀티미디어 데이터의 프로세싱에 관련되는 권고 "동작"을 포함할 수 있다. 도 1에 도시된 디코더 장치(150)의 멀티미디어 디코더 서브시스템(308)은 블록(530)에서 상기 동작들을 수행할 수 있다.
블록(525)에서 멀티미디어 데이터를 그리고 블록(530)에서 상기 멀티미디어 데이터에 대한 기술적 정보를 수신한 후, 본 프로세스(520)는 블록(535)로 계속되어 제 2 계층이 상기 수신된 기술적 정보에 적어도 일부 기초하여 상기 수신된 멀티미디어 데이터를 프로세싱한다. 상기 기술적 정보가 권고된 "동작"을 포함한다면, 본 프로세스(520)를 수행하는 디코더 서브시스템은 상기 권고 동작을 수행하거나 수행하지 않을 수 있다. 앞서 논의된 바와 같이, 상기 권고되는 동작은 에러 복구 기법들, 에러 은닉 기법들 또는 디코딩을 스킵하는 것을 포함하지만, 이에 한정되지 않는 하나 이상의 에러 제어 기법들을 포함할 수 있다. 상기 디코더 장치는 어느 데이터가 에러 복구 동안 복구될 수 있는지에 따라 상기 권고된 동작을 따르거나 따르지 않을 수 있다. 예를 들어, 블록(530)에서 수신된 상기 기술적 정보를 조직화한 하위 계층 프로세스는 얼마나 많은 프레임들이 오류 데이터의 섹션에 존재하였는지를 식별할 수가 없었을 수 있다. 상위 계층 에러 복구 기법들은 오류 데이터의 섹션 내의 프레임들의 수를 식별가능할 수 있으며 상기 프레임 정보 테이블의 "동작" 필드에서 권고되지 않았던 소정의 에러 복구 또는 은닉 기법들을 수행 하기로 선택할 수 있다. 도 1에 도시된 디코더 장치(150)의 멀티미디어 디코더 서브시스템(308)은 블록(535)에서 상기 동작들을 수행할 수 있다. 프로세스(520)의 블록들 중 일부는 결합, 생략, 재배열 되거나 임의로 이들끼리 조합될 수 있음에 유의하라.
도 5C는 도 1에 도시된 바와 같은 시스템 내의 멀티미디어 데이터를 프로세싱하는 방법540)의 다른 예시를 나타내는 순서도이다. 본 방법(540)은 디코더 장치가 인코딩된 멀티미디어 데이터를 수신하는 블록(545)에서 시작된다. 블록(545)에서 수행되는 동작들은 도 5A에 도시된 프로세스(500)의 블록(505)에서 수행되는 것들과 유사할 수 있다. 도 3A에 도시된 디코더 장치(150)의 수신기 엘리먼트(302)는 블록(545)에서 상기 기능들을 수행할 수 있다.
프로세스(540)의 나머지 동작들은 하위 계층에서 수행되는 동작들(550) 및 상위 계층에서 수행되는 동작들(570)을 포함한다. 하위 계층 동작들(550)은 도 5A에 도시된 프로세스(500)에서 수행되는 동작들 중 일부와 유사할 수 있는 소정의 동작들을 포함한다. 마찬가지로, 상위 계층 동작들(570)은 도 5B에 도시된 프로세스(520)에서 수행되는 일부 동작들과 유사할 수 있는 소정의 동작들을 포함한다.
도 5C에 도시되는 방법(540)은 도 6에 도시된 것과 같은 다중계층(multilayer) 멀티미디어 디코더 서브시스템에 의해 수행될 수 있다. 일 특징으로, 멀티미디어 디코더(600)는 전송 계층 및 동기화 계층의 하위 계층 미디어 모듈 서브시스템(605)을 포함한다. 또한 상기 멀티미디어 디코더(600)는 애플리케이션 계층에 위치하는 상위 계층 서브시스템을 포함한다. 상기 미디어 모듈 서브시스 템(605)은 도 3A에 도시된 정보 조직화기(304) 및 에러 제어 결정 서브시스템(306)을 포함할 수 있다. 애플리케이션 계층은 비디오 디코딩 계층(video decoding layer, VDL)(610) 및 에러 제어 서브시스템(615)을 포함하는 멀티미디어 디코더를 포함한다. 하위 계층 미디어 모듈은 기술적 정보 및/또는 지시들을 윗쪽-화살표(up-arrow)(620)에 의해 지시되는 바와 같이 상위 계층에 제공한다. 상위 계층 서브시스템들(610 및 615)은 화살표(625)에 의해 지시되는 바와 같이 피드백을 하위 계층에 제공할 수 있다.
도 5C를 참조하면, 블록(545)에서 인코딩된 멀티미디어 데이터를 수신한 후, 본 프로세스(540)는 블록(555)으로 계속되어, 여기서 하위 계층은 수신된 멀티미디어 데이터에 대한 기술적 정보를 조직화한다. 블록(555)에서 수행되는 동작들은 도 5A에 도시된 프로세스(500)의 블록(510)에서 수행되는 것들과 유사할 수 있다. 상기 기술적 정보는 테이블들 3 및 4에 도시된 정보와 같은 상기 논의된 임의의 또는 모든 정보를 포함할 수 있다.
블록(555)에서 기술적 정보를 조직화한 후, 본 프로세스(540)는 블록(560)으로 계속되며 여기서 멀티미디어 데이터의 프로세싱에 관련되는 지시들이 결정된다. 상기 지시들은 블록(555)에서 조직화되는 다른 기술적 정보 및 에러 분포에 기초하여 결정될 수 있다. 추가로, 하위 계층은 프로세스(540)에서 상위 계층으로부터 피드백을 수신한다. 상기 피드백은 상위 계층에서의 멀티미디어 데이터의 프로세싱에 관련되는 정보를 포함할 수 있다. 상기 피드백은 멀티미디어 데이터의 특정 부분들의 프로세싱 시간, 상위 계층에서 수행되는 프로세싱 동작들(예컨대, 에러 제어 동작들), 및 프로세싱 상태(예컨대, 어느 프레임들이 디코딩되고 디스플레이되었는지)와 같은 정보를 포함할 수 있다. 상기 피드백은 블록(555)에서 상기 기술적 정보를 재조직화(reorganize)하는데 이용될 수 있다. 블록(560)에서 상기 멀티미디어 데이터의 프로세싱에 관련되는 지시들을 결정하는데 이용되는 방법들의 세부사항들이 이하에서 논의된다. 도 5A의 디코더 장치(150)의 에러 제어 결정 서브시스템(306)은 블록(560)에서 상기 동작들을 수행할 수 있다.
블록(565)에서, 하위 계층 서브시스템은 멀티미디어 데이터의 프로세싱에 관련되는 기술적 정보 및/또는 지시들을 상위 계층 서브시스템에 제공한다. 상기 상위 계층 서브시스템은 블록(575)에서 상기 기술적 정보 및/또는 지시들을 수신한다. 멀티미디어 디코더 서브시스템(308)은 블록들(565 및 575)에서 상기 동작들을 수행할 수 있다.
블록(575)에서 상기 기술적 정보 및/또는 지시들을 수신한 후, 본 프로세스(540)는 블록(580)으로 계속되어 상위 계층 서브시스템이 상기 지시들 및/또는 기술적 정보에 기초하여 멀티미디어 데이터를 프로세싱한다. 블록(580)에서 수행되는 동작들은 도 5B에 도시된 방법(520)의 블록(535)에서 수행되는 것들과 유사할 수 있다. 상기 기술적 정보가 권고된 "동작"을 포함한다면, 프로세스(540)를 수행하는 디코더 서브시스템은 상기 권고 동작을 이용하거나 이용하지 않을 수 있다. 앞서 논의한 바와 같이, 상기 권고 동작은 에러 복구 기법들, 에러 은닉 기법들 또는 디코딩 스키핑을 포함하지만, 이에 한정되지는 않는 하나 이상의 에러 제어 기법들을 포함할 수 있다. 디코더 장치는 어느 데이터가 에러 복구 동안 복구될 수 있는지에 따라 상기 권고 동작을 따르거나 따르지 않을 수 있다. 예를 들어, 블록(555)에서 상기 기술적 정보를 조직화한 하위 계층 프로세스는 얼마나 많은 프레임들이 오류 데이터의 섹션에 존재하였는지를 식별하는 것이 불가능하였을 수 있다. 상위 계층 에러 복구 기법들은 오류 데이터의 섹션 내의 프레임들의 수를 식별가능하였을 수 있으며 프레임 정보 테이블의 "동작" 필드에서 권고되지 않은 소정의 에러 복구 또는 은닉 기법들을 수행할 것을 선택할 수 있다. 도 1에 도시된 디코더 장치(150)의 멀티미디어 디코더 서브시스템(308)은 블록(580)에서 상기 동작들을 수행할 수 있다.
본 프로세스(540)는 블록(585)로 계속되어 여기서 상위 계층 멀티미디어 디코더는 상위 계층 동작들(570)에서 수행되는 프로세싱에 기초하여 하위 계층에 피드백 정보를 지시한다. 상기 피드백은 멀티미디어 데이터의 소정 부분을 디코딩하는데 필요한 프로세싱 시간 또는 상기 데이터의 부분이 완전히 디코딩된 프로세싱 시간을 포함할 수 있다. 상기 완료된 프로세싱 시간을 블록(545)에서 수신되는 새로운 멀티미디어 데이터의 표시 시간 스탬프에 비교함으로써, 상위 계층 프로세싱 시간이 과거의 프로세싱 성능에 기초하여 뒤처진다는 지시들을 나타낸다면, 하위 계층 프로세스들은 상위 계층에 소정의 프레임들(예컨대, B-프레임들)을 스킵할 것을 지시할 수 있다. 하위 계층에서 수신되는 피드백 정보는 블록(555)에서 조직화되는 기술적 정보로 조직화될 수 있다.
또한 상기 피드백은 상위 계층에서 수행되는 프로세싱 동작들에 대한 세부사항들을 포함할 수도 있다. 예를 들어 상기 피드백은 멀티미디어 데이터의 특정 프 레임들 또는 다른 부분들에 대해 발생하는 특정한 에러 제어 기법들 및/또는 통상의 디코딩 동작들을 지시할 수 있다. 또한 상기 피드백은 프로세싱 상태(예컨대, 프레임의 성공적인 디코딩 또는 그렇지 않음)를 포함할 수 있다. 프로세싱 동작 및 프로세싱 상태 피드백 정보를 블록(555)에서 조직화되는 데이터에 포함시킴으로써, 하위 계층은 갱신된 기술적 정보에 기초하여 블록(560)에서 결정되는 지시들을 조정할 수 있다. 프로세싱이 백-업(back-up) 된다면, 하위 계층은 상위 계층에게 B-프레임들 또는 확장 계층 데이터와 같은 소정의 프레임들의 디코딩을 스킵할 것을 지시할 수 있다. 도 1에 도시된 디코더 장치(150)의 멀티미디어 디코더 서브시스템(308)은 블록(585)에서 상기 동작들을 수행할 수 있다. 본 프로세스(540)의 블록들 중 일부는 결합, 생략, 재배열되거나 또는 임의로 이들로 조합될 수 있음에 유의하여야 한다.
도 7은 도 5A 및 5C에 도시된 방법들에서 소정의 동작들을 수행하는데 이용될 수 있는 기술적 정보를 조직화하는 방법의 예시를 나타내는 순서도이다. 본 프로세스(700)는 도 5A에 도시되는 프로세스(500)의 블록(510)에서 또는 도 5C에 도시되는 프로세스(540)의 블록(555)에서 상기 기술적 정보를 조직화하도록 수행될 수 있다. 프로세스(700)는 블록(705)에서 시작되며 여기서, 예를 들어, 프로세스(500)의 블록(505)에서 수신된 멀티미디어 데이터의 수퍼프레임이 메모리 버퍼에 저장된다. 수퍼프레임은 일반적으로 독립적으로 디코딩가능한 프레임들의 그룹이다. 수퍼프레임은 약 0.2 초 내지 약 2.0 초의 범위의 고정 시간 주기를 망라하는 프레임들을 포함할 수 있다. 또한 수퍼프레임들은 구성 프레임들의 고정 개수에 따라 크기가 결정되어, 가변 시간 주기(period)를 가질 수 있다. 수퍼프레임 크기는 합당한 획득(acqusition) 시간을 허용하도록 선택될 수 있다. 블록(705)에서 멀티미디어 데이터의 수퍼프레임을 저장한 후, 프로세스(700)는 블록(710)으로 계속되어 상기 데이터가 다수의 계층들(예컨대, 기저 계층 및 하나 이상의 확장 계층들)을 포함하는지에 대한 결정이 내려진다. 데이터의 단일 계층만이 상기 수퍼프레임에서 인코딩된다면, 프로세스(700)는 블록(715A)로 계속된다. 데이터의 둘 이상의 계층들이 상기 수퍼프레임에서 인코딩된다면, 프로세스(700)는 블록(715B)로 계속된다. 수퍼프레임 헤더는 상기 수퍼프레임 내에 다수의 계층들이 존재하는지 아닌지 여부를 지시하는 플래그를 포함할 수 있다. 블록들(715A 또는 715B)에서, 프레임 정보 테이블(frame information table, FIT)이 초기화된다. 상기 FIT의 초기화가 수행되어 필드들을 소정의 디폴트 값들로 세팅할 수 있다. FIT를 초기화한 후, 프로세스(700)는, 상기 수퍼프레임이 다수의 계층들을 포함하는지 아닌지에 따라, 블록(720A) 또는 블록(720B)로 속행된다. 어느 경우이던, 선택적인 헤더 디렉토리에 포함되는 정보가 블록(720A) 또는 블록(720B)에서 임포트(import)된다. 상기 헤더 디렉토리는 상기 논의된 바와 같은 임의의 정보를 포함할 수 있다.
FIT가 블록(715A) 또는 블록(715B)에서 초기화되고, 그리고 선택적 헤더 디렉토리가 블록(720A) 또는 블록(720B)에서, 각각, 임포트된 후, 프로세스(700)는 나아가 블록들(725-740) 또는 블록들(745-760)에서, 각각, 상기 수퍼프레임을 통해 루프(loop)를 형성한다. 블록들(730 및 750)에서, 디코더 장치는 이용가능한 헤더 정보를 통해 식별할 수 있는 완전한 비디오 액세스 유닛(VAU)들을 식별한다. 상기 헤더 정보는, 예를 들어, 테이블들 1과 2에 도시된 바와 같은 전송 헤더 또는 동기화 헤더(또는 임의의 다른 헤더) 내의 임의의 필드들을 포함할 수 있다. 상기 선택적 헤더 디렉토리 내의 정보도 이용될 수 있다. 프로세스(700)의 VAU들은 프레임들인 것으로 가정되지만, 슬라이스들 또는 블록들과 같은 다른 부분들도 블록(730) 또는 블록(750)에서 식별될 수 있다. 완전한 VAU를 식별한 후, 식별된 VAU 내부의 비디오 데이터의 오류있는 부분들이, 각각, 블록(735) 또는 블록(755)에서 식별된다. 상기 오류 부분들은 헤더 검사합 실패(failure)들, 또는 전송 계층 검사합 실패들 등에 의해 식별될 수 있다. 오류 데이터를 검출하기 위한 다수의 기법들이 당해 기술분야에서 통상의 지식을 가진 자들에게 공지되어 있다. 상기 오류 부분들은 FIT에 대한 에러 분포 정보를 컴파일(compile)하는데 이용될 수 있다(테이블 4의 PLP 에러 분포 및 PLP 에러 비율 필드 참조). VAU들의 오류 부분들이 블록(735) 또는 블록(755)에서 식별된 후, FIT 정보는, 각각, 블록(740) 또는 블록(760)에서 조직화된다. FIT 내의 정보는 테이블 4에서 상기 논의된 임의의 정보를 포함할 수 있다. 본 프로세스(700)가 계속되어 상기 수퍼프레임의 끝이 결정 블록(725) 또는 블록(745)에서 식별될 때까지, 상기 수퍼프레임들을 통틀어 루프를 형성한다(블록들(725-740) 또는 블록들(745-760)). 상기 수퍼프레임의 끝이 식별되면, 프로세스(700)는 블록(800)으로 계속되어 여기서 에러 제어 동작이 결정된다. 도 3A의 디코더 장치(150)의 정보 조직화기 컴포넌트(304)는 프로세스(700)의 동작들을 수행할 수 있다. 본 프로세스(700)의 블록들 중 일부가 결합, 생략, 재배열될 수 있거나 임의로 이들로써 조합될 수 있음에 유의하여야 한다.
도 8A 및 8B는 도 7에 도시된 방법의 에러 제어 동작들을 결정하는 방법의 예시를 나타내는 순서도이다. 또한 프로세스(800)는 에러 제어 동작들을 결정하고 도 5A에 도시된 프로세스(500)의 블록(515)에서, 또는 도 5C에 도시된 프로세스(540)의 블록들(560 및 565)에서 대응하는 지시들을 제공하도록 수행될 수도 있다. 일 특징으로, 본 프로세스(800)는 상위 계층에 제공될 에러 제어 동작들을 결정하는데 이용된다. 에러 제어 동작들은, 예를 들어, 멀티미디어 프레임들의 에러 분포 및/또는 에러 레이트(rate)에 기초하여 결정된다. 다른 특징으로, 본 프로세스(800)는 권고된 에러 제어 동작들을 수행시 상위 계층에 의해 이용될 수 있는 멀티미디어 데이터의 다른 부분들을 식별한다.
상기 논의된 바와 같이, 일부 멀티미디어 데이터는 기저 계층(예컨대, 최상위(most significant) 비트들) 및 하나 이상의 확장 계층들(예컨대, 최하위(least significant) 비트들)과 같은 다수의 계층들에서 인코딩될 수 있다. 확장 계층들은 B-프레임에 대한 모든 데이터를 포함할 수도 있다. 이러한 경우들에 있어서, FIT는 기저 및 확장 계층들 모두에 대한 부분들을 포함하며 상기 계층들 중 어느 것 또는 모두가 오류가 있을 수 있다. 도 9는 도 1에 도시된 바와 같은 시스템에서의 이용을 위한 스케일러블 코딩된 기저 계층 및 확장 계층을 포함하는 물리 계층 패킷들의 예시의 구조를 나타낸다. 기저 계층(900)은 전송 계층 헤더들(915), 동기화 계층 헤더들(920) 및 전송 계층 검사합 테일(tail)들(925)을 포함한다. 기저 계층(905)은 프레임(930)(F1으로 라벨링됨)과 같은 I-프레임들, 및 프레 임(935)(F3으로 라벨링됨)과 같은 P-프레임들의 최상위 비트들을 포함할 수 있다. 또한 확장 계층(950)은 PLP들(910), 전송 헤더들(915), 동기화 헤더들(920) 및 전송 계층 검사합들(925)을 포함한다. 본 예시에서 상기 확장 계층은 I-프레임(930)(F1'으로 라벨링됨) 및 P-프레임(935)(F3'으로 라벨링됨)의 최하위 비트들을 포함한다. 추가로, 확장 계층(950)은 I-프레임(930) 및 P-프레임(935)으로부터 양-방향 예측되는 전체 B-프레임(940)(F2로 라벨링됨)에 대한 동기화 계층 패킷들을 포함하며, 여기서 상기 기저 및 확장 계층 쌍들(F1, F1' 및 F3, F3')은 B-프레임(F2)을 구성하기 전에 결합 및 디코딩된다. 본 프로세스(800)은 본 스케일러블 코딩의 형태를 염두에 두고 설계된다.
본 프로세스(800)는 블록(805)에서 시작되며 여기서 디코더 장치는 헤더 정보를, 도 7에 도시된 프로세스(700)의 블록들(735 및 755)에서 식별된 것들과 같은, 오류가 있는 VAU들을 포함하는 FIT의 부분들에 통합시킨다. 상기 헤더 정보는 정확하게 수신된 전송 및/또는 동기화 계층 헤더들로부터 또는 수신된다면 헤더 디렉토리로부터 얻어질 수 있다. 상기 오류 데이터가 특정 PLP들로 분리될 수 없다면(예컨대, 동기화의 상실 때문에), 헤더 디렉토리 정보가 PLP 경계들을 식별하고 그리고 아마도 FIT의 "PLP 에러 분포" 및/또는 "PLP 에러 비율" 필드들을 채우는데(populate) 이용될 수 있다. 헤더 디렉토리가 이용가능하지 않다면, "PLP 에러 비율"은 100%로 세팅될 수 있다. 예시 방법(800)은 어느 에러 제어 "동작"을 권고할 것인지를 결정시 "PLP 에러 비율"을 이용한다. 그러나, 당해 기술분야에서 통 상의 지식을 가진 자들은 상기 "동작" 결정에 있어서 다른 형태의 에러 데이터와 더불어 "PLP 에러 분포" 정보를 활용하는 방식들을 인지할 것이다.
블록(805)에서 오류 프레임들에 관련된 FIT의 필드들이 채워진 후, 프로세스(800)는 나아가 블록(810)에서 시작되는 수퍼프레임 내의 프레임들을 통한 루프를 돈다. 결정 블록(810)에서, 디코더 장치는 FIT PLP 에러 비율 데이터를 조사하여 연속적인 손실(즉, 오류가 있는) 프레임들의 수가 임계치(threshold) "lost_th" 보다 큰지를 결정한다. 상기 연속적인 손실 프레임들의 수가 상기 임계치를 초과한다면, 프로세스(800)는 블록(815)으로 계속되며 여기서 상기 손실 프레임들에 대한 FIT의 "동작" 필드가 상기 손실 프레임들의 디코딩을 스킵할 것을 권고하는 값으로 세팅된다. "lost_th" 임계치는 다른 에러 제어 기법들이 비효율적이거나 또는 보장할 수 없을 정도로 충분히 열화된다고 결정되는 프레임들의 수로 세팅될 수 있다. 임계치 "lost_th"는 약 3 프레임 내지 약 6 프레임 사이의 범위에 있을 수 있다. 전형적으로 시간 은닉 기법들의 성능은 초당 30 프레임의 프레임 레이트에 대해 3 프레임보다 큰 시간 거리(distance)에서 수행될 때 열화된다. 더 빠른 프레임 레이트들은, 초당 60 프레임의 프레임 레이트에서 약 6 프레임 내지 12 프레임과 같은, 더 큰 임계치를 허용할 수 있다. 블록(815)에서 손실 프레임들에 대해 스킵하라는 "동작"을 세팅한 후, 프로세스(800)는 결정 블록(820)으로 계속된다. 수퍼 프레임의 끝에 도달하면, 프로세스는 도 8B에 도시된 프로세스의 나머지 부분으로 계속된다. 프로세싱될 프레임들이 더 남아 있다면, 프로세스(800)는 계속하여 결정 블록(810)으로 돌아간다.
결정 블록(810)에서, 연속적인 손실 프레임들의 개수가 상기 임계치를 초과하지 않는다면(완전히 오류가-없는 프레임의 경우 포함), 프로세스(800)는 결정 블록(825)에서 계속되며 여기서 FIT의 "프레임 타입" 필드가 현재의 프레임이 B-프레임인지를 결정하는데 이용된다. B-프레임들에 수행되는 에러 제어 동작들은 본 예시에서 P-프레임들 및 I-프레임들에 수행되는 것들과 상이하다. 현재의 프레임이 B-프레임이 아니라면, 프로세스(800)는 결정 블록(830)으로 계속되며 여기서 PLP 에러 비율(PLP_ERR)이 임계치 P_TH에 비교된다. 상기 임계치 P_TH는 통상의 에러 은닉 기법들(예컨대, 공간 및 시간 에러 은닉)이 효과적인 PLP 에러 비율에 대한 제한(limit)을 세팅한다. P_TH 임계치는 약 20% 내지 약 40%의 범위에 있을 수 있다. PLP 에러 비율이 P_TH 임계치를 초과한다면, 현재의 프레임들에 대한 "동작"은 블록(835)에서 스킵(skip)으로 세팅된다. PLP 에러 비율이 상기 임계치를 초과하지 않는다면, 현재의 프레임에 대한 "동작"은 통상의 에러 은닉(EC)이 수행됨을 지시하는 값으로 블록(840)에서 세팅된다. 현재의 프레임에 대한 "동작"을 블록(835) 또는 블록(840)에서 세팅한 후, 본 프로세스(800)는 결정 블록(820)으로 계속되며 앞서 논의한 바와 같이 수퍼프레임에 프레임들이 더 남아 있다면 블록(810)으로 루프 백(loop back)한다.
블록(825)로 돌아오면, 프로세스(800)는 현재의 프레임이 B-프레임이라고 결정된다면 결정 블록(845)로 계속된다. 도시된 예시에서, B-프레임들은 I-프레임과 P-프레임 사이, 또는 두 개의 P-프레임들 사이에 위치하는 것으로 가정한다. 이전 프레임의 "동작"이 스킵 "동작"이라고 결정되었다면, 프로세스(800)는 현재의 B-프 레임의 "동작"도 스킵인 것으로 블록(850)에서 세팅한다. 현재의 B-프레임이 예측된 데이터가 이용가능하지 않기 때문에, B-프레임의 통상의 구성은 실현불가능하며 다른 에러 은닉 옵션들도 열화될 수 있다.
결정 블록(845)로 돌아가서, 이전 프레임의 "동작"이 스킵으로 결정되지 않았다면, 본 프로세스(800)는 블록(855)로 계속되며, 여기서 PLP 에러 비율이 다른 임계치 B_TH에 비교된다. PLP 에러 비율이 B_TH보다 크다면, 현재의 프레임에 대한 "동작"은 블록(860)에서 FRUC로 세팅되고, 그렇지 않으면 현재의 프레임에 대한 "동작"은 블록(865)에서 통상의 에러 은닉으로 세팅된다. 본 예시에서 B-프레임들에 대한 통상의 에러 은닉은 두 개의 디코딩된 프레임들로부터의 시간 예측이다. 상기 프레임들은 통상적으로 B-프레임 이전의 프레임과 B-프레임 이후의 프레임을 포함한다. 그러나, 두 개의 이전 또는 두 개의 이후의 B-프레임들이 이용될 수도 있다. 현재의 B-프레임의 오류가-없는 부분들을 이용하는 공간 은닉이 블록(860)에서 결정되는 통상의 에러 은닉과 함께 이용될 수 있다. 임계치 B_TH는 P-프레임들에 대해 이용되는 임계치 P_TH보다 높은데 이는 선택할 두 개의 기준(reference) 프레임들이 존재하며 예측에서 양자를 모두 이용하도록 요구되지 않기 때문이다. 그러나, 일부의 경우 FRUC가 더욱 견고할 수 있으며 통상의 에러 은닉보다 더 잘 은닉할 수 있으므로 B_TH의 값은 P_TH보다 낮은 값으로 세팅될 수 있다. B_TH 및 P_TH의 값은 채널 조건(condition)들의 타입 및 에러들이 어떻게 유입되는지와 같은 조건들에 따를 수 있다. FRUC에서 이용되는 은닉은 B-프레임 에러 은닉과 유사할 수 있지만, 전체 프레임에 대해 수행된다.
"동작" 결정이 수퍼프레임 내의 모든 프레임들에 대해 행해진 후, 결정 블록(820)에서, 프로세스(800)는 도 8B의 블록(870)으로 계속된다. 블록들(875 내지 895)로부터의 루프는 결정된 "동작"을 수행하는데 상위 계층에서 이용될 수 있는 정보로써 FIT 테이블을 채운다. 블록(870)에서, 프로세스(800)는, 처음에 시작되는, FIT를 통하는 다른 패스(pass)를 시작하여, 모든 기저 및 확장 계층 프레임들을 돈다.
결정 블록(875)에서, 현재의 프레임이 B-프레임 또는 FRUC를 이용하여 은닉될 프레임이 아니라면, 프로세스는 블록(880)으로 계속되며 여기서 FIT 테이블이 시간 에러 은닉에 이용되는 변수 skip_num으로써 채워진다. 상기 skip_num 변수는 현재의 프레임이 시간 에러 은닉의 이용으로부터 예측될 현재의 프레임으로부터 시간상으로 떨어진(away) 프레임들의 개수를 지시한다.
도 10A는 현재의 P-프레임(1005)과 현재의 프레임에 3 프레임 앞서 위치하는 이전에 디코딩된 P-프레임(1010)의 위치들을 그래픽으로 나타낸다. 본 예시에서, skip_num 변수는 3으로 세팅될 것이다. 따라서, 디코더에 의해 스키핑된 P-프레임들(1015 및 1020)은 이용되지 않을 것이다. 대신, 현재의 P-프레임(1005)의 모션 벡터(motion vector)들이 스케일링(scale)되어(스케일링된 모션 벡터(1030) 참조) 이전에 디코딩된 P-프레임(1010)을 가리킬 수 있다. 도 10A는 일차원으로 프레임들을 나타내며, 여기서 이들은 실제로 이차원이고 상기 모션 벡터(1025)는 이전 프레임에서의 이차원 위치를 가리킨다. 도 10A의 예시에서, 프레임(1010) 내의 오브젝트(1035)는 프레임(1005)에서 위로 이동한다. 상기 오브젝트의 모션이 상대적으 로 일정하다면 모션 벡터(1025)의 선형 외삽(extrapolation)이 정확하게 프레임(1010)에서의 정확한 위치를 가리킬 수 있어서, 프레임(1005)에서 오브젝트(1035)를 상향으로 재위치확정(reposition)한다. 오브젝트(1035)의 디스플레이 위치는 스키핑되는 프레임들(1015 및 1020)에서 일정한 것으로 유지될 수 있다.
도 8B로 돌아가면, 현재의 프레임에 대한 skip_num 변수를 결정한 후, 프로세스(800)는 블록(885)로 계속되어 여기서 상기 skip_num 변수에 의해 지시되는 프레임의 플래그 MV_FLAG가 상위 계층 디코더에게 상기 프레임의 디코딩된 값들이 향후의 에러 은닉을 위해 저장(save)되어야 한다고 지시하는 값으로 세팅된다. 도 10B는 다른 오류 프레임들에 대한 에러 은닉에 이용되는 디코딩된 프레임들의 플래깅(flagging)을 그래픽으로 나타낸다. 도 10B의 예시에서, 디코딩된 프레임(1040)이 플래깅되어 보통의 에러 은닉을 이용하여 오류 프레임(1045)을 은닉하는데 이용된다. 디코딩된 프레임들(1050 및 1055)이 모두 플래깅되어 프레임(1060)에 대한 FRUC를 수행하는데 이용된다. 이들은 단지 예시들이며 전방 및/또는 후방에 위치하는 프레임들의 다른 조합들이 통상의 에러 은닉 및 FRUC에 이용될 수 있다.
도 8B로 돌아가면, 현재의 프레임을 은닉하는데 이용될 프레임(들)의 MV_FLAG를 세팅한 후, 프로세스(800)는 블록(895)에서 계속된다. 블록(895)에서, 디코더는 수퍼프레임의 끝에 도달하였는지를 알아볼 것을 체크한다. 프로세스(800)는 상기 수퍼프레임의 종단에 도달하였다면 현재의 수퍼프레임에 대해 종료된다. 수퍼프레임에 프레임들이 더 남아 있다면, 프로세스(800)는 결정 블록(875)으로 복귀하여 나머지 프레임들에 걸쳐 루프를 돈다.
블록(875)에서, 현재의 프레임이 B-프레임 또는 FRUC를 이용하여 은닉될 프레임이라면, 본 프로세스(800)는 블록(890)으로 계속되어 여기서 양-방향 예측을 수행할 두 개의 프레임들의 위치를 확인하는 변수들 B_NUM 및 b_num이 결정된다. 도 10C는 FRUC를 이용하여 오류 프레임들을 은닉하는데 이용되는 두 개의 코딩된 프레임들의 위치들을 지시하는데 이용되는 변수들을 그래픽으로 나타낸다(동일한 변수들이 오류 B-프레임에 대해 이용될 수 있다. 현재의 오류 프레임(1065)은 FRUC를 이용하여 은닉될 것이라고 결정되었다. 변수 b_num은 2로 세팅되어 두 프레임 떨어져 위치하는 이전 프레임(1070)이 제 1 기준 프레임이라고 지시한다. 도시된 예시에서, 프레임(1075)은 수신된 모션 벡터들(1085)을 이용하여 프레임(1070)으로부터 예측된다. 변수 B_NUM은 3으로 세팅되어 프레임(1070)의 3 프레임 전방에 위치하는 프레임(1075)이 제 2 기준 프레임이라고 지시한다. 도시된 예시에서, 디코딩된 프레임(1075)은 수신된 모션 벡터들(1085)을 이용하여 프레임(1070)으로부터 예측된다. 수신된 모션 벡터들(1085)은 스케일링될 수 있어서, 스케일링된 모션 벡터들(1090)이 되며, 오류 프레임(1065)을 지시한다. 그리고 나서 프레임들(1075 및 1070) 내의 수신된 모션 벡터들(1085)에 의해 발견(locate)되는 디코딩된 부분들을 이용하여 스케일링된 모션 벡터(1090)에 의해 발견되는 프레임(1065) 부분을 은닉할 수 있다. 본 예시에서, B-프레임(1080)은 프레임(1065)을 은닉하는데 이용되지 않았다(B-프레임들은 전형적으로 예측에 이용되지 않는다). 전형적으로, 가장 정확하게 디코딩된 프레임들이 에러 은닉을 수행하는데 이용될 것이다. 두 개의 디코딩된 프레임들은 은닉될 오류 프레임의 전방 또는 후방 모두 에 있을 수 있다.
B_NUM 및 b_num 변수들로써 FIT를 블록(890)에서 채운 후, 프로세스는 상기 프로세스(800)가 종료되는 지점인, 전체 수퍼프레임에 대한 FIT가 채워질때까지 블록들(875-895)을 통한 루프를 계속돈다. 일 특징으로 FIT는 개별 프레임들 및 FIT가 상위 계층으로 전달되어 디코딩되기 전에 프로세스들(700 및 800)을 이용하여 상기 수퍼프레임 내의 모든 프레임들에 대해 채워진다. 이 방식으로, 프레임들은 이들이 디코딩될 순서로 전달될 수 있다. 추가로, 스키핑될 프레임들은 전달되거나 전달되지 않을 수 있다. 다른 특징으로, 프레임들 및 FIT의 대응 엔트리들은 프로세스들(700 및 800) 모두가 프레임에 대해 완료되자마자 상위 계층으로 전달될 수 있다. 도 3A의 디코더 장치(150)의 에러 제어 결정 서브시스템(306)은 프로세스(800)의 동작들을 수행할 수 있다.
예시 프로세스들(700 및 800)은 프레임들을 VAU로서 이용하였다. 그러나, VAU들은 슬라이스들 또는 픽셀들의 블록들일 수도 있으며 FIT는 프레임들 대신 이러한 부분들에 대해 채워질 수 있다. 본 프로세스들(700 및 800)의 블록들 일부가 결합, 생략, 재배열 되거나 임의로 이들로써 조합될 수 있음에 유의하여야 한다.
도 11은 도 1에 도시된 바와 같은 시스템에서 멀티미디어 데이터를 프로세싱하는데 이용될 수 있는 디코더 장치(150)의 다른 예시를 나타내는 기능 블록도이다. 본 특징은 상기 멀티미디어 데이터를 수신하는 수단, 제 1 계층에서 상기 멀티미디어 데이터에 대한 기술적 정보를 조직화하는 수단(상기 기술적 정보는 제 2 계층에서의 멀티미디어 데이터의 프로세싱에 관련됨), 및 상기 기술적 정보에 적어 도 일부 기초하여 상기 제 2 계층에서 상기 멀티미디어 데이터의 프로세싱에 관련되는 지시들을 제공하는 수단을 포함한다. 본 특징의 일부 예시들은 상기 수신 수단이 수신기(1102)를 포함하는 것, 상기 조직화 수단이 정보 조작화기 서브시스템(1104)을 포함하는 것, 그리고 상기 제공 수단이 에러 제어 결정 서브시스템(1106)을 포함하는 것을 포함한다.
도 12는 도 1에 도시된 바와 같은 시스템에서 멀티미디어 데이터를 프로세싱하는데 이용될 수 있는 디코더 장치(150)의 다른 예시를 나타내는 기능 블록도이다. 본 특징은 멀티미디어 데이터를 수신하는 수단, 제 1 계층에서 상기 멀티미디어 데이터에 대한 기술적 정보를 조직화하는 수단(상기 기술적 정보는 제 2 계층에서의 멀티미디어 데이터의 프로세싱에 관련됨), 및 상기 기술적 정보에 적어도 일부 기초하여 상기 제 2 계층에서의 멀티미디어 데이터의 프로세싱에 관련되는 지시들을 제공하는 수단을 포함한다. 본 특징의 일부 예시들은 상기 수신 수단이 수신을 위한 모듈(1202)을 포함하는 것, 상기 조직화 수단이 정보를 조직화하는 모듈(1204)을 포함하는 것, 그리고 상기 제공 수단이 지시들을 제공하는 모듈(1206)을 포함하는 것을 포함한다.
도 13은 도 1에 도시된 바와 같은 시스템에서 멀티미디어 데이터를 프로세싱하는데 이용될 수 있는 디코더 장치(150)의 다른 예시를 나타내는 기능 블록도이다. 본 특징은 상기 멀티미디어 데이터를 수신하는 수단, 상위 계층에서 상기 멀티미디어 데이터를 프로세싱하는 수단, 상기 상위 계층에서의 멀티미디어 데이터의 프로세싱에 관련되는 정보에 적어도 일부 기초하여 하위 계층에 지시하는 수단, 및 상기 상위 계층에서의 상기 멀티미디어의 프로세싱에 관련되는 정보에 적어도 일부 기초하여 상기 하위 계층에서 멀티미디어 데이터를 프로세싱하는 수단을 포함한다. 본 특징의 일부 예시들은 상기 수신 수단이 수신기(1302)를 포함하는 것, 상기 상위 계층 프로세싱 수단이 애플리케이션 계층 멀티미디어 디코더 서브시스템(1308)을 포함하는 것, 상기 지시 수단이 애플리케이션 계층 멀티미디어 디코더 서브시스템(1308)을 포함하는 것, 그리고 하위 계층 프로세싱 수단이 전송/동기화 계층 멀티미디어 디코더 서브시스템(1306)을 포함하는 것을 포함한다.
도 14는 도 1에 도시된 바와 같은 시스템에서 멀티미디어 데이터를 프로세싱하는데 이용될 수 있는 디코더 장치(150)의 다른 예시를 나타내는 기능 블록도이다. 본 특징은 상기 멀티미디어 데이터를 수신하는 수단, 상위 계층에서 상기 멀티미디어 데이터를 프로세싱하는 수단, 상기 상위 계층에서의 멀티미디어 데이터의 프로세싱에 관련되는 정보에 적어도 일부 기초하여 하위 계층에 지시하는 수단, 및 상기 상위 계층에서의 멀티미디어 데이터의 프로세싱에 관련되는 정보에 적어도 일부 기초하여 상기 하위 계층에서 멀티미디어 데이터를 프로세싱하는 수단을 포함한다. 본 특징의 일부 예시들은 상기 수신 수단이 수신을 위한 모듈(1402)을 포함하고, 상기 상위 계층 프로세싱 수단이 상위 계층에서 멀티미디어를 프로세싱하는 모듈(1408)을 포함하고, 상기 지시 수단이 상기 하위 계층에서 멀티미디어를 프로세싱하는 모듈(1408)을 포함하는 것, 그리고 하위 계층 프로세싱 수단이 하위 계층에서 멀티미디어 데이터를 프로세싱하는 모듈(1406)을 포함하는 것을 포함한다.
도 15는 도 1에 도시된 바와 같은 시스템에서 멀티미디어 데이터를 프로세싱 하는데 이용될 수 있는 디코더 장치(150)의 다른 예시를 나타내는 기능 블록도이다. 본 특징은 상기 멀티미디어 데이터를 수신하는 수단, 제 1 계층으로부터 상기 멀티미디어 데이터에 대한 기술적 정보를 수신하는 수단(상기 기술적 정보는 제 2 계층에서의 멀티미디어 데이터의 프로세싱에 관련됨), 및 상기 수신된 기술적 정보에 적어도 일부 기초하여 상기 제 2 계층에서 멀티미디어 데이터를 프로세싱하는 수단을 포함한다. 본 특징의 일부 예시들은 상기 멀티미디어 데이터를 수신하는 수단이 수신기(1502)를 포함하는 것, 상기 기술적 정보를 수신하는 수단이 멀티미디어 디코더(1508)를 포함하는 것, 그리고 상기 프로세싱 수단이 멀티미디어 디코더(1508)를 포함하는 것을 포함한다.
도 16은 도 1에 도시된 바와 같은 시스템에서 멀티미디어 데이터를 프로세싱하는데 이용될 수 있는 디코더 장치(150)의 다른 예시를 나타내는 기능 블록도이다. 본 특징은 상기 멀티미디어 데이터를 수신하는 수단, 제 1 계층으로부터 멀티미디어 데이터에 대한 기술적 정보를 수신하는 수단(상기 기술적 정보는 제 2 계층에서의 멀티미디어 데이터의 프로세싱에 관련됨), 및 상기 수신된 기술적 정보에 적어도 일부 기초하여 상기 제 2 계층에서 멀티미디어 데이터를 프로세싱하는 수단을 포함한다. 본 특징의 일부 예시들은 상기 멀티미디어 데이터를 수신하는 수단이 수신 모듈(1602)을 포함하는 것, 기술적 정보를 수신하는 수단이 멀티미디어를 디코딩하는 모듈(1608)을 포함하는 것, 그리고 상기 프로세싱 수단이 멀티미디어를 디코딩하는 모듈(1608)을 포함하는 것을 포함한다.
당해 기술분야에서 통상의 지식을 가진 자는 정보 및 신호들이 임의의 다양 한 상이한 기술들 및 기법들을 이용하여 표현될 수 있음을 알 것이다. 예를 들어, 상기 실시예 전반에 걸쳐 참조될 수 있는 데이터, 지시들, 명령들, 정보, 신호들, 비트들, 심볼들, 및 칩들은 전압들, 전류들, 전자기파들, 자기 장들 또는 입자들, 광장들 또는 입자들, 또는 이들의 임의의 조합으로써 표현될 수 있다.
당해 기술분야에서 통상의 지식을 가진 자는 여기 개시되는 예시들에 관련되어 기재된 다양한 도식적 논리 블록들, 모듈들, 알고리듬 단계들이 전자 하드웨어, 펌웨어, 컴퓨터 소프트웨어, 미들웨어, 마이크로코드, 또는 이들의 조합으로서 구현될 수 있음을 추가로 이해할 것이다. 하드웨어와 소프트웨어의 이러한 상호교환성을 명확하게 나타내기 위해, 상기 기재된 다양한 도식적 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들은 일반적으로 이들의 기능성에 관하여 기재되었다. 그러한 기능성이 하드웨어 또는 소프트웨어로서 구현될 것인지 여부는 특정 애플리케이션 및 전체 시스템에 부과되는 설계 제약들에 따른다. 당해 기술분야에서 통상의 지식을 가진 자는 각각의 특정 애플리케이션에 대해 다양한 방식들로 상기 기재된 기능성을 구현할 수 있지만, 그러한 구현 결정이 개시된 방법들의 범위로부터 벗어나게 하는 것으로서 해석되어서는 안된다.
여기 개시된 실시예들과 관련하여 기재된 상기 다양한 도식적인 논리 블록, 모듈, 그리고 회로는 범용 처리기, 디지털 신호 처리기(DSP), 주문형 반도체(ASIC), 필드 프로그래머블 게이트 어레이(FGPA) 또는 다른 프로그래머블 논리 장치, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트, 또는 상기 기술된 기능들을 수행하도록 설계된 이들의 임의의 조합으로써 구현되거나 수행될 수 있다. 범용 처리기는 마이크로프로세서일 수 있지만, 대안으로, 상기 처리기는 임의의 종래의 처리기, 제어기, 마이크로제어기, 또는 상태 머신일 수 있다. 또한 처리기는 컴퓨팅 장치들의 조합, 예컨대, DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 함께 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성으로서 구현될 수 있다.
여기 개시된 상기 실시예들과 관련하여 기술된 방법 또는 알고리듬의 단계들은 하드웨어, 처리기에 의해 실행되는 소프트웨어 모듈, 또는 상기 양자의 조합에 직접 수록될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 소거가능 디스크, CD-ROM, 또는 공지된 임의의 다른 형태의 저장 매체에 상주할 수 있다. 예시적인 저장 매체가 상기 처리기에 접속되어 상기 처리기가 상기 저장 매체로부터 정보를 읽고, 상기 저장 매체에 정보를 수록할 수 있다. 대안으로, 상기 저장 매체는 상기 처리기의 구성요소일 수 있다. 상기 처리기 및 저장 매체는 주문형 반도체(ASIC) 내에 탑재될 수 있다. ASIC은 사용자 단말에 탑재될 수 있다. 대안으로, 상기 처리기 및 저장 매체는 사용자 단말에 이산 컴포넌트로서 탑재될 수 있다.
상기 개시된 실시예들에 대한 상술내용은 임의의 당업자로 하여금 본 발명을 생산 또는 이용하게 하기 위하여 제시된다. 이러한 실시예들에 대하여 다양한 변형들이 당업자에게 용이하게 명백할 것이며, 여기 정의된 일반 원리들은 본 발명의 사상과 범위를 벗어나지 않고도 다른 실시예들에 적용될 수 있다.
따라서, 멀티미디어 데이터의 고도로 효율적이고 견고한 에러 제어를 수행하 는 방법들 및 장치가 기재되었다.

Claims (84)

  1. 멀티미디어 데이터를 프로세싱하는 방법으로서:
    상기 멀티미디어 데이터를 수신하는 단계;
    제 1 계층(layer)에서 상기 멀티미디어 데이터에 대한 기술적(descriptive) 정보를 조직화(organize)하는 단계로서, 상기 기술적 정보는 제 2 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는, 조직화 단계; 및
    상기 기술적 정보에 적어도 일부 기초하여 상기 제 2 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는 지시(instruction)들을 제공하는 단계를 포함하는 멀티미디어 데이터 프로세싱 방법.
  2. 제 1 항에 있어서,
    상기 기술적 정보를 상기 제 2 계층에 전달하는 단계를 더 포함하는 멀티미디어 데이터 프로세싱 방법.
  3. 제 1 항에 있어서,
    상기 기술적 정보는 프레임 특성(characteristic) 정보, 기저(base) 또는 확장(enhancement) 데이터 식별 정보, 타이밍 정보, 인코딩 타입(type), 프레임 타입, 동기화 정보, 및 예측(predictive) 인코딩 관련 정보 중 하나 이상을 포함하는, 멀티미디어 데이터 프로세싱 방법.
  4. 제 1 항에 있어서,
    상기 멀티미디어 데이터는 일부 오류(errorneous) 데이터를 포함하며, 상기 방법은 상기 오류 데이터의 에러 분포(error distribution)를 나타내는 정보를 상기 멀티미디어 데이터 내에 포함시키도록 상기 기술적 정보를 조직화하는 단계를 더 포함하는, 멀티미디어 데이터 프로세싱 방법.
  5. 제 4 항에 있어서,
    상기 에러 분포 정보에 적어도 일부 기초하여 상기 지시들을 결정하는 단계를 더 포함하는 멀티미디어 데이터 프로세싱 방법.
  6. 제 1 항에 있어서,
    상기 지시들에 적어도 일부 기초하여 상기 제 2 계층에서의 상기 멀티미디어 데이터의 프로세싱을 변경(change)하는 단계를 더 포함하는 멀티미디어 데이터 프로세싱 방법.
  7. 제 1 항에 있어서,
    상기 기술적 정보는 메타데이터(metadata)를 포함하는, 멀티미디어 데이터 프로세싱 방법.
  8. 제 1 항에 있어서,
    에러 분포 정보에 적어도 일부 기초하여 에러 제어(error control) 방법을 결정하는 단계를 더 포함하며, 상기 제 2 계층에 제공되는 상기 지시들은 상기 결정된 에러 제어 방법에 관련되는, 멀티미디어 데이터 프로세싱 방법.
  9. 제 8 항에 있어서,
    상기 결정된 에러 제어 방법은 에러 복구(error recovery), 에러 은닉(error concealment), 및 프레임의 내삽(interpolation) 중 하나 이상을 포함하는, 멀티미디어 데이터 프로세싱 방법.
  10. 멀티미디어 데이터를 프로세싱하는 장치로서:
    상기 멀티미디어 데이터를 수신하도록 구성되는 수신기;
    제 1 계층에서 상기 멀티미디어 데이터에 대한 기술적 정보를 조직화하도록 구성되는 정보 조직화기로서, 상기 기술적 정보는 제 2 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는, 정보 조직화기; 및
    상기 기술적 정보에 적어도 일부 기초하여 상기 제 2 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는 지시들을 제공하도록 구성되는 에러 제어 결정 서브시스템(error control decision subsystem)을 포함하는 멀티미디어 데이터 프로세싱 장치.
  11. 제 10 항에 있어서,
    상기 정보 조직화기는 상기 기술적 정보를 상기 제 2 계층에 전달하도록 추가로 구성되는, 멀티미디어 데이터 프로세싱 장치.
  12. 제 10 항에 있어서,
    상기 기술적 정보는 프레임 특성 정보, 기저 또는 확장 데이터 식별 정보, 타이밍 정보, 인코딩 타입, 프레임 타입, 동기화 정보, 및 예측 인코딩 관련 정보 중 하나 이상을 포함하는, 멀티미디어 데이터 프로세싱 장치.
  13. 제 10 항에 있어서,
    상기 멀티미디어 데이터는 일부 오류 데이터를 포함하며, 상기 멀티미디어 데이터 프로세서는 상기 오류 데이터의 에러 분포를 나타내는 정보를 상기 멀티미디어 데이터 내에 포함시키도록 상기 기술적 정보를 조직화하도록 추가로 구성되는, 멀티미디어 데이터 프로세싱 장치.
  14. 제 13 항에 있어서,
    상기 에러 제어 결정 서브시스템은 상기 에러 분포 정보에 적어도 일부 기초하여 상기 지시들을 결정하도록 추가로 구성되는, 멀티미디어 데이터 프로세싱 장치.
  15. 제 10 항에 있어서,
    상기 지시들에 적어도 일부 기초하여 상기 제 2 계층에서의 상기 멀티미디어 데이터의 프로세싱을 변경하도록 구성되는 멀티미디어 디코더를 더 포함하는 멀티미디어 데이터 프로세싱 장치.
  16. 제 10 항에 있어서,
    상기 기술적 정보는 메타데이터를 포함하는, 멀티미디어 데이터 프로세싱 장치.
  17. 제 10 항에 있어서,
    상기 에러 제어 결정 서브시스템은 에러 분포 정보에 적어도 일부 기초하여 에러 제어 방법을 결정하도록 추가로 구성되며, 상기 제 2 계층에 제공되는 상기 지시들은 상기 결정되는 에러 제어 방법에 관련되는, 멀티미디어 데이터 프로세싱 장치.
  18. 제 17 항에 있어서,
    상기 결정되는 에러 제어 방법은 에러 복구, 에러 은닉, 및 프레임의 내삽(interpolation) 중 하나 이상을 포함하는, 멀티미디어 데이터 프로세싱 장치.
  19. 멀티미디어 데이터를 프로세싱하는 장치로서:
    상기 멀티미디어 데이터를 수신하는 수단;
    제 1 계층에서 상기 멀티미디어 데이터에 대한 기술적 정보를 조직화하는 수단으로서, 상기 기술적 정보는 제 2 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는, 조직화 수단; 및
    상기 기술적 정보에 적어도 일부 기초하여 상기 제 2 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는 지시들을 제공하는 수단을 포함하는 멀티미디어 데이터 프로세싱 장치.
  20. 제 19 항에 있어서,
    상기 기술적 정보를 상기 제 2 계층에 전달하는 수단을 더 포함하는 멀티미디어 데이터 프로세싱 장치.
  21. 제 19 항에 있어서,
    상기 기술적 정보는 프레임 특성 정보, 기저 또는 확장 데이터 식별 정보, 타이밍 정보, 인코딩 타입, 프레임 타입, 동기화 정보, 및 예측 인코딩 관련 정보 중 하나 이상을 포함하는, 멀티미디어 데이터 프로세싱 장치.
  22. 제 19 항에 있어서,
    상기 멀티미디어 데이터는 일부 오류 데이터를 포함하며, 상기 조직화 수단은 상기 오류 데이터의 에러 분포를 나타내는 정보를 상기 멀티미디어 데이터 내에 포함시키도록 상기 기술적 정보를 조직화하는, 멀티미디어 데이터 프로세싱 장치.
  23. 제 22 항에 있어서,
    상기 에러 분포 정보에 적어도 일부 기초하여 상기 지시들을 결정하는 수단을 더 포함하는 멀티미디어 데이터 프로세싱 장치.
  24. 제 19 항에 있어서,
    상기 지시들에 적어도 일부 기초하여 상기 제 2 계층에서의 상기 멀티미디어 데이터의 프로세싱을 변경하는 수단을 더 포함하는 멀티미디어 데이터 프로세싱 장치.
  25. 제 19 항에 있어서,
    상기 기술적 정보는 메타데이터를 포함하는, 멀티미디어 데이터 프로세싱 장치.
  26. 제 19 항에 있어서,
    에러 분포 정보에 적어도 일부 기초하여 에러 제어 방법을 결정하는 수단을 더 포함하며, 상기 제 2 계층에 제공되는 상기 지시들은 상기 결정되는 에러 제어 방법에 관련되는, 멀티미디어 데이터 프로세싱 장치.
  27. 제 26 항에 있어서,
    상기 결정되는 에러 제어 방법은 에러 복구, 에러 은닉, 및 프레임의 내삽 중 하나 이상을 포함하는, 멀티미디어 데이터 프로세싱 장치.
  28. 하나 이상의 기계(machine)들 상에서 실행될 때, 상기 하나 이상의 기계들로 하여금 프로그램 동작(operation)들을 수행하게 하는 프로그램 코드를 포함하는 기계 판독가능 매체(machine readable medium)로서, 상기 프로그램 코드는:
    멀티미디어 데이터를 수신하는 코드;
    제 1 계층에서 상기 멀티미디어 데이터에 대한 기술적 정보를 조직화하는 코드로서, 상기 기술적 정보는 제 2 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는, 기술적 정보 조직화 코드; 및
    상기 기술적 정보에 적어도 일부 기초하여 상기 제 2 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는 지시들을 제공하는 코드를 포함하는, 기계 판독가능 매체.
  29. 제 28 항에 있어서,
    상기 기술적 정보를 상기 제 2 계층에 전달하는 코드를 더 포함하는, 기계 판독가능 매체.
  30. 제 28 항에 있어서,
    상기 기술적 정보는 프레임 특성 정보, 기저 또는 확장 데이터 식별 정보, 타이밍 정보, 인코딩 타입, 프레임 타입, 동기화 정보, 및 예측 인코딩 관련 정보 중 하나 이상을 포함하는, 기계 판독가능 매체.
  31. 제 28 항에 있어서,
    상기 멀티미디어 데이터는 일부 오류 데이터를 포함하며, 상기 오류 데이터의 에러 분포를 나타내는 정보를 상기 멀티미디어 데이터 내에 포함시키도록 상기 기술적 정보를 조직화하는 코드를 더 포함하는 기계 판독가능 매체.
  32. 제 31 항에 있어서,
    상기 에러 분포 정보에 적어도 일부 기초하여 상기 지시들을 결정하는 코드를 더 포함하는 기계 판독가능 매체.
  33. 제 28 항에 있어서,
    상기 지시들에 적어도 일부 기초하여 상기 제 2 계층에서의 상기 멀티미디어 데이터의 프로세싱을 변경하는 코드를 더 포함하는 기계 판독가능 매체.
  34. 제 28 항에 있어서,
    상기 기술적 정보는 메타데이터를 포함하는, 기계 판독가능 매체.
  35. 제 28 항에 있어서,
    에러 분포 정보에 적어도 일부 기초하여 에러 제어 방법을 결정하는 코드를 더 포함하며, 상기 제 2 계층에 제공되는 상기 지시들은 상기 결정되는 에러 제어 방법에 관련되는, 기계 판독가능 매체.
  36. 제 35 항에 있어서,
    상기 결정되는 에러 제어 방법은 에러 복구, 에러 은닉, 및 프레임의 내삽 중 하나 이상을 포함하는, 기계 판독가능 매체.
  37. 멀티미디어 데이터를 프로세싱하는 방법으로서:
    상기 멀티미디어 데이터를 수신하는 단계;
    상기 멀티미디어 데이터를 상위(upper) 계층에서 프로세싱하는 단계;
    상기 상위 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는 정보에 적어도 일부 기초하여 하위(lower) 계층에 지시하는 단계; 및
    상기 상위 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는 상기 정보에 적어도 일부 기초하여 상기 하위 계층에서 상기 멀티미디어 데이터를 프로세싱하는 단계를 포함하는 멀티미디어 데이터 프로세싱 방법.
  38. 제 37 항에 있어서,
    상기 상위 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는 상기 정보에 적어도 일부 기초하여 상기 멀티미디어 데이터에 대해 상기 하위 계층에서 기술적 정보를 조직화하는 단계를 더 포함하는 멀티미디어 데이터 프로세싱 방법.
  39. 제 38 항에 있어서,
    상기 기술적 정보에 적어도 일부 기초하여 상기 상위 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는 지시들을 제공하는 단계를 더 포함하는 멀티미디어 데이터 프로세싱 방법.
  40. 제 38 항에 있어서,
    상기 기술적 정보는 메타데이터를 포함하는, 멀티미디어 데이터 프로세싱 방법.
  41. 제 38 항에 있어서,
    상기 기술적 정보는 프레임 특성 정보, 기저 또는 확장 데이터 식별 정보, 타이밍 정보, 인코딩 타입, 프레임 타입, 동기화 정보, 및 예측 인코딩 관련 정보 중 하나 이상을 포함하는, 멀티미디어 데이터 프로세싱 방법.
  42. 제 37 항에 있어서,
    상기 하위 계층에 지시하는 단계는 프로세싱 시간(processing time), 프로세싱 동작(action) 및 프로세싱 상태 중 하나 이상을 포함하는 정보를 전달하는 단계 를 포함하는, 멀티미디어 데이터 프로세싱 방법.
  43. 멀티미디어 데이터를 프로세싱하는 장치로서:
    상기 멀티미디어 데이터를 수신하도록 구성되는 수신기;
    상위 계층에서 상기 멀티미디어 데이터를 프로세싱하고, 그리고 상기 상위 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는 정보에 적어도 일부 기초하여 하위 계층에 지시하도록 구성되는 상위 계층 디코더 서브시스템; 및
    상기 상위 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는 상기 정보에 적어도 일부 기초하여 상기 하위 계층에서 상기 멀티미디어 데이터를 프로세싱하도록 구성되는 하위 계층 디코더 서브시스템을 포함하는 멀티미디어 데이터 프로세싱 장치.
  44. 제 43 항에 있어서,
    상기 상위 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는 상기 정보에 적어도 일부 기초하여 상기 멀티미디어 데이터에 대해 상기 하위 계층에서 기술적 정보를 조직화하도록 구성되는 정보 조직화기(information organizer)를 더 포함하는 멀티미디어 데이터 프로세싱 장치.
  45. 제 44 항에 있어서,
    상기 기술적 정보에 적어도 일부 기초하여 상기 상위 계층에서의 상기 멀티 미디어 데이터의 프로세싱에 관련되는 지시들을 제공하도록 구성되는 에러 제어 결정 서브시스템을 더 포함하는 멀티미디어 데이터 프로세싱 장치.
  46. 제 44 항에 있어서,
    상기 기술적 정보는 메타데이터를 포함하는, 멀티미디어 데이터 프로세싱 장치.
  47. 제 44 항에 있어서,
    상기 기술적 정보는 프레임 특성 정보, 기저 또는 확장 데이터 식별 정보, 타이밍 정보, 인코딩 타입, 프레임 타입, 동기화 정보, 및 예측 인코딩 관련 정보 중 하나 이상을 포함하는, 멀티미디어 데이터 프로세싱 장치.
  48. 제 43 항에 있어서,
    상기 상위 계층 디코더 서브시스템은 프로세싱 시간, 프로세싱 동작 및 프로세싱 상태 중 하나 이상을 포함하는 정보를 전달함으로써 상기 하위 계층에 지시하도록 추가로 구성되는, 멀티미디어 데이터 프로세싱 장치.
  49. 멀티미디어 데이터를 프로세싱하는 장치로서:
    상기 멀티미디어 데이터를 수신하는 수단;
    상기 멀티미디어 데이터를 상위 계층에서 프로세싱하는 수단;
    상기 상위 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는 정보에 적어도 일부 기초하여 하위 계층에 지시하는 수단; 및
    상기 상위 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는 상기 정보에 적어도 일부 기초하여 상기 하위 계층에서 상기 멀티미디어 데이터를 프로세싱하는 수단을 포함하는 멀티미디어 데이터 프로세싱 장치.
  50. 제 49 항에 있어서,
    상기 상위 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는 상기 정보에 적어도 일부 기초하여 상기 멀티미디어 데이터에 대해 상기 하위 계층에서 기술적 정보를 조직화하는 수단을 더 포함하는 멀티미디어 데이터 프로세싱 장치.
  51. 제 50 항에 있어서,
    상기 기술적 정보에 적어도 일부 기초하여 상기 상위 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는 지시들을 제공하는 수단을 더 포함하는 멀티미디어 데이터 프로세싱 장치.
  52. 제 50 항에 있어서,
    상기 기술적 정보는 메타데이터를 포함하는, 멀티미디어 데이터 프로세싱 장치.
  53. 제 50 항에 있어서,
    상기 기술적 정보는 프레임 특성 정보, 기저 또는 확장 데이터 식별 정보, 타이밍 정보, 인코딩 타입, 프레임 타입, 동기화 정보, 및 예측 인코딩 관련 정보 중 하나 이상을 포함하는, 멀티미디어 데이터 프로세싱 장치.
  54. 제 49 항에 있어서,
    상기 하위 계층에 지시하는 수단은 프로세싱 시간, 프로세싱 동작 및 프로세싱 상태 중 하나 이상을 포함하는 정보를 전달하는 수단을 포함하는, 멀티미디어 데이터 프로세싱 장치.
  55. 하나 이상의 기계들 상에서 실행될 때, 상기 하나 이상의 기계들로 하여금 프로그램 동작들을 수행하게 하는 프로그램 코드를 포함하는 기계 판독가능 매체로서, 상기 프로그램 코드는:
    멀티미디어 데이터를 수신하는 코드;
    상기 멀티미디어 데이터를 상위 계층에서 프로세싱하는 코드;
    상기 상위 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는 정보에 적어도 일부 기초하여 하위 계층에 지시하는 코드; 및
    상기 상위 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는 상기 정보에 적어도 일부 기초하여 상기 하위 계층에서 상기 멀티미디어 데이터를 프로세싱하는 코드를 포함하는, 기계 판독가능 매체.
  56. 제 55 항에 있어서,
    상기 상위 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는 상기 정보에 적어도 일부 기초하여 상기 멀티미디에 데이터에 대해 상기 하위 계층에서 기술적 정보를 조직화하는 코드를 더 포함하는 기계 판독가능 매체.
  57. 제 56 항에 있어서,
    상기 기술적 정보에 적어도 일부 기초하여 상기 상위 계층에서의 상기 멀티미디어의 프로세싱에 관련되는 지시들을 제공하는 코드를 더 포함하는 기계 판독가능 매체.
  58. 제 56 항에 있어서,
    상기 기술적 정보는 메타데이터를 포함하는, 기계 판독가능 매체.
  59. 제 56 항에 있어서,
    상기 기술적 정보는 프레임 특성 정보, 기저 또는 확장 데이터 식별 정보, 타이밍 정보, 인코딩 타입, 프레임 타입, 동기화 정보, 및 예측 인코딩 관련 정보 중 하나 이상을 포함하는, 기계 판독가능 매체.
  60. 제 55 항에 있어서,
    프로세싱 시간, 프로세싱 동작 및 프로세싱 상태 중 하나 이상을 포함하는 정보를 전달함으로써 상기 하위 계층에 지시하는 코드를 더 포함하는, 기계 판독가능 매체.
  61. 멀티미디어 데이터를 프로세싱하는 방법으로서:
    상기 멀티미디어 데이터를 수신하는 단계;
    상기 멀티미디어 데이터에 대한 기술적 정보를 제 1 계층으로부터 수신하는 단계로서, 상기 기술적 정보는 제 2 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는, 기술적 정보 수신단계; 및
    상기 수신된 기술적 정보에 적어도 일부 기초하여 상기 제 2 계층에서 상기 멀티미디어 데이터를 프로세싱하는 단계를 포함하는 멀티미디어 데이터 프로세싱 방법.
  62. 제 61 항에 있어서,
    상기 제 2 계층에서 적어도 하나의 지시(instruction)를 수신하는 단계로서, 상기 지시는 상기 기술적 정보에 적어도 일부 기초하는, 지시 수신 단계; 및
    상기 수신된 지시에 적어도 일부 기초하여 상기 제 2 계층에서의 상기 멀티미디어 데이터의 프로세싱을 변경하는 단계를 더 포함하는 멀티미디어 데이터 프로세싱 방법.
  63. 제 62 항에 있어서,
    상기 수신된 지시는 에러 제어 방법에 관련되는, 멀티미디어 데이터 프로세싱 방법.
  64. 제 63 항에 있어서,
    상기 에러 제어 방법은 에러 복구, 에러 은닉, 및 프레임의 내삽 중 하나 이상을 포함하는, 멀티미디어 데이터 프로세싱 방법.
  65. 제 61 항에 있어서,
    상기 기술적 정보는 메타데이터를 포함하는, 멀티미디어 데이터 프로세싱 방법.
  66. 제 61 항에 있어서,
    상기 기술적 정보는 프레임 특성 정보, 기저 또는 확장 데이터 식별 정보, 타이밍 정보, 인코딩 타입, 프레임 타입, 동기화 정보, 및 예측 코딩 관련 정보 중 하나 이상을 포함하는, 멀티미디어 데이터 프로세싱 방법.
  67. 멀티미디어 데이터를 프로세싱하는 장치로서:
    상기 멀티미디어 데이터를 수신하도록 구성되는 수신기; 및
    상기 멀티미디어 데이터에 대한 기술적 정보를 제 1 계층으로부터 수신하고 그리고 상기 수신된 기술적 정보에 적어도 일부 기초하여 제 2 계층에서 상기 멀티미디어 데이터를 프로세싱하도록 구성되는 디코더를 포함하며, 상기 기술적 정보는 상기 제 2 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는, 멀티미디어 데이터 프로세싱 장치.
  68. 제 67 항에 있어서,
    상기 디코더는 상기 제 2 계층에서 적어도 하나의 지시를 수신하도록 추가로 구성되고, 상기 지시는 상기 기술적 정보에 적어도 일부 기초하며 상기 디코더는 상기 수신된 지시에 적어도 일부 기초하여 상기 제 2 계층에서의 상기 멀티미디어 데이터의 프로세싱을 변경하도록 추가로 구성되는, 멀티미디어 데이터 프로세싱 장치.
  69. 제 68 항에 있어서,
    상기 수신된 지시는 에러 제어 방법에 관련되는, 멀티미디어 데이터 프로세싱 장치.
  70. 제 69 항에 있어서,
    상기 에러 제어 방법은 에러 복구, 에러 은닉, 및 프레임의 내삽 중 하나 이상을 포함하는, 멀티미디어 데이터 프로세싱 장치.
  71. 제 67 항에 있어서,
    상기 기술적 정보는 메타데이터를 포함하는, 멀티미디어 데이터 프로세싱 장치.
  72. 제 67 항에 있어서,
    상기 기술적 정보는 프레임 특성 정보, 기저 또는 확장 데이터 식별 정보, 타이밍 정보, 인코딩 타입, 프레임 타입, 동기화 정보, 및 예측 인코딩 관련 정보 중 하나 이상을 포함하는, 멀티미디어 데이터 프로세싱 장치.
  73. 멀티미디어 데이터를 프로세싱하는 장치로서:
    상기 멀티미디어 데이터를 수신하는 수단;
    상기 멀티미디어 데이터에 대한 기술적 정보를 제 1 계층으로부터 수신하는 수단으로서, 상기 기술적 정보는 제 2 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는, 기술적 정보 수신 수단; 및
    상기 수신된 기술적 정보에 적어도 일부 기초하여 상기 제 2 계층에서 상기 멀티미디어 데이터를 프로세싱하는 수단을 포함하는 멀티미디어 데이터 프로세싱 장치.
  74. 제 73 항에 있어서,
    상기 제 2 계층에서 적어도 하나의 지시를 수신하는 수단으로서, 상기 지시 는 상기 기술적 정보에 적어도 일부에 기초하는, 지시 수신 수단; 및
    상기 수신된 지시에 적어도 일부 기초하여 상기 제 2 계층에서의 상기 멀티미디어 데이터의 프로세싱을 변경하는 수단을 더 포함하는 멀티미디어 데이터 프로세싱 장치.
  75. 제 74 항에 있어서,
    상기 수신된 지시는 에러 제어 방법에 관련되는, 멀티미디어 데이터 프로세싱 장치.
  76. 제 75 항에 있어서,
    상기 에러 제어 방법은 에러 복구, 에러 은닉, 및 프레임의 내삽 중 하나 이상을 포함하는, 멀티미디어 데이터 프로세싱 장치.
  77. 제 73 항에 있어서,
    상기 기술적 정보는 메타데이터를 포함하는, 멀티미디어 데이터 프로세싱 장치.
  78. 제 73 항에 있어서,
    상기 기술적 정보는 프레임 특성 정보, 기저 또는 확장 데이터 식별 정보, 타이밍 정보, 인코딩 타입, 프레임 타입, 동기화 정보, 및 예측 인코딩 관련 정보 중 하나 이상을 포함하는, 멀티미디어 데이터 프로세싱 장치.
  79. 하나 이상의 기계들 상에서 실행될 때, 상기 하나 이상의 기계들로 하여금 프로그램 동작들을 수행하게 하는 프로그램 코드를 포함하는 기계 판독가능 매체로서, 상기 프로그램 코드는:
    멀티미디어 데이터를 수신하는 코드;
    상기 멀티미디어 데이터에 대한 기술적 정보를 제 1 계층으로부터 수신하는 코드로서, 상기 기술적 정보는 제 2 계층에서의 상기 멀티미디어 데이터의 프로세싱에 관련되는, 기술적 정보 수신 코드; 및
    상기 수신된 기술적 정보에 적어도 일부 기초하여 상기 제 2 계층에서 상기 멀티미디어 데이터를 프로세싱하는 코드를 포함하는, 기계 판독가능 매체.
  80. 제 79 항에 있어서,
    상기 제 2 계층에서 적어도 하나의 지시를 수신하는 코드로서, 상기 지시는 상기 기술적 정보에 적어도 일부 기초하는, 지시 수신 코드; 및
    상기 수신된 지시에 적어도 일부 기초하여 상기 제 2 계층에서의 상기 멀티미디어 데이터의 프로세싱을 변경하는 코드를 더 포함하는 기계 판독가능 매체.
  81. 제 80 항에 있어서,
    상기 수신된 지시는 에러 제어 방법에 관련되는, 기계 판독가능 매체.
  82. 제 81 항에 있어서,
    상기 에러 제어 방법은 에러 복구, 에러 은닉, 및 프레임의 내삽 중 하나 이상을 포함하는, 기계 판독가능 매체.
  83. 제 79 항에 있어서,
    상기 기술적 정보는 메타 데이터를 포함하는, 기계 판독가능 매체.
  84. 제 79 항에 있어서,
    상기 기술적 정보는 프레임 특성 정보, 기저 또는 확장 데이터 식별 정보, 타이밍 정보, 인코딩 타입, 프레임 타입, 동기화 정보, 및 예측 인코딩 관련 정보 중 하나 이상을 포함하는, 기계 판독가능 매체.
KR1020087026927A 2006-04-04 2007-04-04 프레임 정보 테이블을 이용한 프레임 레벨 멀티미디어 디코딩 KR100983169B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US78944306P 2006-04-04 2006-04-04
US60/789,443 2006-04-04
US11/696,071 2007-04-03
US11/696,071 US8358704B2 (en) 2006-04-04 2007-04-03 Frame level multimedia decoding with frame information table
PCT/US2007/065940 WO2008063687A2 (en) 2006-04-04 2007-04-04 Frame level multimedia decoding with frame information table

Publications (2)

Publication Number Publication Date
KR20090006163A true KR20090006163A (ko) 2009-01-14
KR100983169B1 KR100983169B1 (ko) 2010-09-20

Family

ID=38861516

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087026927A KR100983169B1 (ko) 2006-04-04 2007-04-04 프레임 정보 테이블을 이용한 프레임 레벨 멀티미디어 디코딩

Country Status (9)

Country Link
US (1) US8358704B2 (ko)
EP (1) EP2080384A2 (ko)
JP (3) JP2009537081A (ko)
KR (1) KR100983169B1 (ko)
CN (1) CN101690239B (ko)
BR (1) BRPI0709888A2 (ko)
CA (1) CA2645014A1 (ko)
RU (1) RU2008143381A (ko)
WO (1) WO2008063687A2 (ko)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060062312A1 (en) * 2004-09-22 2006-03-23 Yen-Chi Lee Video demultiplexer and decoder with efficient data recovery
JP4971660B2 (ja) * 2005-03-31 2012-07-11 キヤノン株式会社 画像処理装置、画像処理方法、コンピュータプログラム、記憶媒体
KR20070038396A (ko) * 2005-10-05 2007-04-10 엘지전자 주식회사 영상 신호의 인코딩 및 디코딩 방법
US20070230356A1 (en) * 2006-04-04 2007-10-04 Kalantri Sacchindrakumar G Method and apparatus for enabling FLO device certification
EP1855436A1 (en) * 2006-05-12 2007-11-14 Deutsche Thomson-Brandt Gmbh Method and apparatus for encrypting encoded audio signal
FR2906433B1 (fr) * 2006-09-22 2009-02-27 Canon Kk Procedes et dispositifs de codage et de decodage d'images, programme d'ordinateur les mettant en oeuvre et support d'informaton permettant de les mettre en oeuvre
KR100862662B1 (ko) 2006-11-28 2008-10-10 삼성전자주식회사 프레임 오류 은닉 방법 및 장치, 이를 이용한 오디오 신호복호화 방법 및 장치
US9888817B2 (en) 2014-12-17 2018-02-13 Omachron Intellectual Property Inc. Surface cleaning apparatus
US7969929B2 (en) * 2007-05-15 2011-06-28 Broadway Corporation Transporting GSM packets over a discontinuous IP based network
US20080298468A1 (en) * 2007-06-04 2008-12-04 Mediaphy Corporation Error tagging for decoder
JP4469879B2 (ja) * 2007-08-07 2010-06-02 株式会社東芝 半導体メモリ蓄積装置とその素材管理方法
FR2921529B1 (fr) * 2007-09-21 2009-11-13 Alcatel Lucent Procede de transmission de donnees depuis une infrastructure d'un reseau de radiocommunication vers des equipements utilisateur, et equipements pour la mise en oeuvre du procede
KR100958257B1 (ko) * 2007-11-05 2010-05-17 한국전자통신연구원 특정 장소에서의 선택적 방송 채널 시청 방법 및 시스템
US20090124250A1 (en) * 2007-11-14 2009-05-14 Topaltzas Dimitrios M System and Method for Testing Mobile Telephone Devices using a Plurality of Communication Protocols
US8566108B2 (en) * 2007-12-03 2013-10-22 Nokia Corporation Synchronization of multiple real-time transport protocol sessions
US9210480B2 (en) * 2007-12-20 2015-12-08 Broadcom Corporation Video processing system with layered video coding and methods for use therewith
JP5284652B2 (ja) * 2008-01-30 2013-09-11 京セラ株式会社 データ処理装置及びデータ処理方法並びに電子機器
US9357233B2 (en) 2008-02-26 2016-05-31 Qualcomm Incorporated Video decoder error handling
US8902996B2 (en) 2008-02-26 2014-12-02 Richwave Technology Corp. Adaptive wireless video transmission systems and methods
US20100080143A1 (en) * 2008-09-30 2010-04-01 Topaltzas Dimitrios M System and Method for Testing Mobile Telephone Data Services
JP4600574B2 (ja) * 2009-01-07 2010-12-15 日本電気株式会社 動画像復号装置、動画像復号方法、及びプログラム
US20120121014A1 (en) * 2009-03-04 2012-05-17 Thomas Rusert Processing of Multimedia Data
US20100269142A1 (en) * 2009-04-16 2010-10-21 Nec Laboratories America, Inc. Utility optimization for scalable video multicast in wireless systems
US8064900B2 (en) * 2009-06-17 2011-11-22 Metrico Wireless, Inc. System, method and device for testing mobile telephone call performance
US9578325B2 (en) * 2010-01-13 2017-02-21 Texas Instruments Incorporated Drift reduction for quality scalable video coding
CN101964188B (zh) * 2010-04-09 2012-09-05 华为技术有限公司 语音信号编码、解码方法、装置及编解码系统
EP2571258B1 (en) * 2010-05-10 2018-04-04 LG Electronics Inc. Apparatus for transmitting a broadcast signal, apparatus for receiving a broadcast signal, and method for transmitting/receiving a broadcast signal using an apparatus for transmitting/receiving a broadcast signal
CA2743738A1 (en) 2010-06-18 2011-12-18 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry, Through The Communications Research Centre Canada Multilayer decoding using persistent bits
US20120033620A1 (en) * 2010-08-03 2012-02-09 Nxp B.V. Synchronization for data transfers between physical layers
KR101443061B1 (ko) * 2010-11-12 2014-09-26 한국전자통신연구원 패킷 손실에 강인한 애드혹 멀티미디어 그룹통신 단말 및 그 동작방법
JP4929393B1 (ja) * 2010-11-19 2012-05-09 株式会社東芝 受信装置、受信方法および受信プログラム
US20120221884A1 (en) * 2011-02-28 2012-08-30 Carter Nicholas P Error management across hardware and software layers
US9843844B2 (en) * 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
TWI528793B (zh) * 2011-10-14 2016-04-01 立積電子股份有限公司 用以提供數位視訊內容錯誤復原的方法
KR101978811B1 (ko) * 2012-01-02 2019-08-29 삼성전자주식회사 계층 변조 및 복조 장치 및 이의 방법
WO2014003787A1 (en) * 2012-06-29 2014-01-03 Hewlett-Packard Development Company, L.P. Routing packet from edge device to home network or from home network to remote access network
US9602827B2 (en) * 2012-07-02 2017-03-21 Qualcomm Incorporated Video parameter set including an offset syntax element
US9319684B2 (en) 2012-08-21 2016-04-19 Qualcomm Incorporated Alternative transform in scalable video coding
US10194158B2 (en) 2012-09-04 2019-01-29 Qualcomm Incorporated Transform basis adjustment in scalable video coding
KR102059084B1 (ko) * 2012-10-18 2019-12-24 브이아이디 스케일, 인크. 모바일 멀티미디어 스트리밍에 대한 디코딩 복잡도
ES2603827T3 (es) * 2013-02-05 2017-03-01 Telefonaktiebolaget L M Ericsson (Publ) Método y aparato para controlar la ocultación de pérdida de trama de audio
US9530452B2 (en) * 2013-02-05 2016-12-27 Alc Holdings, Inc. Video preview creation with link
US9467700B2 (en) 2013-04-08 2016-10-11 Qualcomm Incorporated Non-entropy encoded representation format
KR20140122835A (ko) * 2013-04-11 2014-10-21 삼성전자주식회사 프로세스 병렬 처리 장치 및 방법
JP6605789B2 (ja) * 2013-06-18 2019-11-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 送信方法、受信方法、送信装置、および、受信装置
US20150009289A1 (en) * 2013-07-08 2015-01-08 Electronics And Telecommunications Research Institute Method and apparatus for providing three-dimensional (3d) video
US20150055527A1 (en) * 2013-08-26 2015-02-26 Qualcomm Incorporated Devices and methods for facilitating power savings by optimized data block decodes in wireless communications systems
US9412024B2 (en) * 2013-09-13 2016-08-09 Interra Systems, Inc. Visual descriptors based video quality assessment using outlier model
US9930250B2 (en) * 2013-09-15 2018-03-27 Mediatek Inc. Method and apparatus for performing image processing operation based on frame/algorithm selection
EP3130097A1 (de) * 2014-04-09 2017-02-15 Hirschmann Automation and Control GmbH Verfahren für ein redundantes übertragungssystem mit prp und mehrfachem datenpaketversand
WO2016031589A1 (ja) * 2014-08-29 2016-03-03 ソニー株式会社 受信装置、及び、受信方法
CN112468846B (zh) * 2014-12-05 2023-06-02 Lg 电子株式会社 广播信号发送方法和装置以及广播信号接收方法和装置
US9860537B2 (en) * 2014-12-16 2018-01-02 Intel Corporation Multi-focus image data compression
US11950745B2 (en) 2014-12-17 2024-04-09 Omachron Intellectual Property Inc. Surface cleaning apparatus
US11071032B2 (en) 2015-03-02 2021-07-20 Corning Optical Communications LLC Gateway coordinating multiple small cell radio access networks
US10728806B2 (en) * 2015-03-02 2020-07-28 Corning Optical Communications LLC Enhanced features for a gateway coordinating multiple small cell radio access networks
US10148510B2 (en) 2015-03-02 2018-12-04 Spidercloud Wireless, Inc. Topology discovery and management and SON orchestration
US10349313B2 (en) * 2015-03-02 2019-07-09 Corning Optical Communications LLC Enhanced features for a gateway coordinating multiple small cell radio access networks
KR102268856B1 (ko) * 2015-03-11 2021-06-24 한국전자통신연구원 미디어 데이터 송신 방법 및 장치
US10129805B2 (en) 2015-03-12 2018-11-13 Spidercloud Wireless, Inc. Hitless software upgrade for a virtualized gateway coordinating multiple small cell radio access networks
US11212539B2 (en) 2017-07-28 2021-12-28 Nvidia Corporation Efficient lossless compression of captured raw image information systems and methods
CN108777606B (zh) * 2018-05-30 2021-07-27 Tcl华星光电技术有限公司 解码方法、设备及可读存储介质
US10986339B2 (en) * 2019-02-08 2021-04-20 Tencent America LLC Method and apparatus for harmonization between transform skip mode and multiple transform selection
US11798128B2 (en) 2020-01-02 2023-10-24 Texas Instruments Incorporated Robust frame size error detection and recovery mechanism to minimize frame loss for camera input sub-systems
CN115053528A (zh) * 2020-01-02 2022-09-13 德克萨斯仪器股份有限公司 稳健的帧尺寸错误检测和恢复机制
CN117376632B (zh) * 2023-12-06 2024-02-06 中国信息通信研究院 基于智能深度合成的数据恢复方法和系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6614847B1 (en) * 1996-10-25 2003-09-02 Texas Instruments Incorporated Content-based video compression
TW398129B (en) * 1998-02-13 2000-07-11 Matsushita Electric Ind Co Ltd The Decoder and the decoding method of the same
KR100354745B1 (ko) * 1998-11-02 2002-12-18 삼성전자 주식회사 비디오코딩및디코딩방법
JP3411234B2 (ja) * 1999-04-26 2003-05-26 沖電気工業株式会社 符号化情報受信復号装置
US6621865B1 (en) * 2000-09-18 2003-09-16 Powerlayer Microsystems, Inc. Method and system for encoding and decoding moving and still pictures
CN1190916C (zh) * 2000-10-19 2005-02-23 华为技术有限公司 一种基于ip应用的抗误码编解码方法
JP3931595B2 (ja) * 2001-07-10 2007-06-20 株式会社日立製作所 データ修正装置及びデータ修正方法
WO2004047010A1 (en) 2002-11-15 2004-06-03 The Arizona Board Of Regents On Behalf Of The University Of Arizona Methods for decoding corrupt jpeg2000 codestreams
BRPI0410300A (pt) * 2003-05-16 2006-05-23 Thomson Licensing receptor unificado para sistemas de modulação em camadas e hierárquica
US20070086515A1 (en) * 2003-12-09 2007-04-19 Koninkiljke Phillips Electronics N.V. Spatial and snr scalable video coding
KR20050120491A (ko) * 2004-06-19 2005-12-22 삼성전자주식회사 멀티미디어 방송 시스템에서의 전송 에러 처리방법 및장치
KR20060005585A (ko) * 2004-07-13 2006-01-18 삼성전자주식회사 Usb를 이용한 데이터 전송 장치 및 방법
EP1772017A2 (en) 2004-07-20 2007-04-11 Qualcomm Incorporated Method and apparatus for encoder assisted-frame rate up conversion (ea-fruc) for video compression
US9055298B2 (en) * 2005-07-15 2015-06-09 Qualcomm Incorporated Video encoding method enabling highly efficient partial decoding of H.264 and other transform coded information
GB0600141D0 (en) * 2006-01-05 2006-02-15 British Broadcasting Corp Scalable coding of video signals

Also Published As

Publication number Publication date
EP2080384A2 (en) 2009-07-22
CA2645014A1 (en) 2008-05-29
JP2009537081A (ja) 2009-10-22
CN101690239A (zh) 2010-03-31
JP5507606B2 (ja) 2014-05-28
JP2012165431A (ja) 2012-08-30
WO2008063687A3 (en) 2009-10-22
BRPI0709888A2 (pt) 2011-07-26
JP2014042288A (ja) 2014-03-06
US20070291836A1 (en) 2007-12-20
CN101690239B (zh) 2012-07-25
JP5705941B2 (ja) 2015-04-22
RU2008143381A (ru) 2010-05-10
US8358704B2 (en) 2013-01-22
KR100983169B1 (ko) 2010-09-20
WO2008063687A2 (en) 2008-05-29

Similar Documents

Publication Publication Date Title
KR100983169B1 (ko) 프레임 정보 테이블을 이용한 프레임 레벨 멀티미디어 디코딩
US8229983B2 (en) Channel switch frame
US7886201B2 (en) Decoder architecture for optimized error management in streaming multimedia
US6317462B1 (en) Method and apparatus for transmitting MPEG video over the internet
US6490705B1 (en) Method and apparatus for receiving MPEG video over the internet
KR100960282B1 (ko) 비디오 부호화
KR101089072B1 (ko) 채널 전환용 시스템 및 방법
US8976858B2 (en) Error resilience using out of band directory information
Gringeri et al. Robust compression and transmission of MPEG-4 video
KR101012149B1 (ko) 비디오 부호화
US10075726B2 (en) Video decoding method/device of detecting a missing video frame
KR20080086764A (ko) 패킷 기반의 영상 프레임 전송 방법 및 장치
WO2002019708A1 (en) Dual priority video transmission for mobile applications
Apostolopoulos Error-resilient video compression
TW200803523A (en) Frame level multimedia decoding with frame information table

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130830

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140828

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 9