KR20120011791A - 통신 시스템에서 데이터 수신 장치 및 방법 - Google Patents

통신 시스템에서 데이터 수신 장치 및 방법 Download PDF

Info

Publication number
KR20120011791A
KR20120011791A KR1020110069941A KR20110069941A KR20120011791A KR 20120011791 A KR20120011791 A KR 20120011791A KR 1020110069941 A KR1020110069941 A KR 1020110069941A KR 20110069941 A KR20110069941 A KR 20110069941A KR 20120011791 A KR20120011791 A KR 20120011791A
Authority
KR
South Korea
Prior art keywords
tokens
decoding
input
scheduling
data
Prior art date
Application number
KR1020110069941A
Other languages
English (en)
Inventor
이승욱
구본기
김호원
추창우
이지형
장의선
김현규
박민수
김소원
임태희
Original Assignee
한국전자통신연구원
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원, 한양대학교 산학협력단 filed Critical 한국전자통신연구원
Priority to KR1020110069941A priority Critical patent/KR20120011791A/ko
Priority to US13/186,903 priority patent/US20120020233A1/en
Publication of KR20120011791A publication Critical patent/KR20120011791A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation

Abstract

본 발명은, 네트워크 코덱 시스템에서 모듈화된 복수의 디코딩 유닛(decoding unit)들을 통해 멀티미디어 데이터를 디코딩하여 수신하는 장치 및 방법에 관한 것으로, 멀티미디어 데이터를 수신하고, 상기 멀티미디어 데이터의 인코딩된 인코딩된 비트 스트림을 해석하여 상기 멀티미디어 데이터를 복수의 토큰들로 분해하고, 상기 복수의 토큰들을 소정의 디코딩 알고리즘들에 해당하는 각각의 입력 토큰들로 스케쥴링하며, 상기 입력 토큰들에 대한 상기 소정의 디코딩 알고리즘들을 각각 수행하여 상기 복수의 멀티미디어 데이터를 디코딩한다.

Description

통신 시스템에서 데이터 수신 장치 및 방법{Apparatus and method for receiving data in communication system}
본 발명은 통신 시스템에 관한 것으로서, 특히 네트워크 코덱 시스템에서 모듈화된 복수의 디코딩 유닛(decoding unit)들을 통해 멀티미디어 데이터를 디코딩하여 수신하는 장치 및 방법에 관한 것이다.
현재 통신 시스템에서는 고속의 전송 속도를 가지는 다양한 서비스 품질(QoS: Quality of Service, 이하 'QoS'라 칭하기로 함)의 서비스들을 사용자들에게 제공하기 위한 활발한 연구가 진행되고 있다. 이러한 통신 시스템의 일 예로 MEPEG(Moving Picture Experts Group) 기반 시스템에서는, 오디오 및 비디오 등의 대용량 멀티미디어 데이터를 한정된 자원을 통해 고속 및 안정적으로 전송하기 위한 방안들에 대한 연구가 활발하게 진행되고 있다.
또한, MEPEG 기반의 네트워크 코덱 시스템에서는, 소정의 인코딩/디코딩 알고리즘들이 각각 구현되어 모듈화된 복수의 인코딩/디코딩(encoding/decoding) 유닛들을 통해 대용량의 멀티미디어 데이터를 송수신하는 방안에 대한 연구가 진행되고 있으며, 특히 최근에는 소정의 인코딩/디코딩 알고리즘들 별로 각각 복수의 인코딩/디코딩 유닛들을 구현하고, 이렇게 각각 구현된 인코딩/디코딩 유닛들 간의 데이터 전송을 통해 대용량의 멀티미디어 데이터를 인코딩/디코딩하여 송수신하는 방안이 제안되고 있다.
하지만, 현재 통신 시스템에서는, 소정의 부호화/복호화 알고리즘들 별로 각각 구현된 복수의 인코딩/디코딩 유닛들을 통해 대용량의 멀티미디어 데이터를 송수신하기 위해서는, 각각 구현된 인코딩/디코딩 유닛들 간의 정확한 데이터 전송이 필요하며, 특히 각 인코딩/디코딩 유닛들로의 정확한 데이터 입출력이 수행되어야 하나, 현재까지 구체적인 방안이 제안되지 못하고 있다.
다시 말해, 상기 각 인코딩/디코딩 유닛들이 정상적으로 인코딩/디코딩 알고리즘들을 수행하여 상기 대용량의 멀티미디어 데이터를 송수신하기 위해서는, 상기 각 인코딩/디코딩 유닛들로 정확한 시점(또는 순서)에 해당 입력 데이터가 정확하게 입력되어야 만이, 상기 각 인코딩/디코딩 유닛들이 소정의 인코딩/디코딩 알고리즘들을 정상적으로 수행하게 된다.
하지만, 현재 통신 시스템에서는, 상기 각 인코딩/디코딩 유닛들로 정확한 시점(또는 순서)에 해당 입력 데이터를 정확하게 입력하여 상기 대용량의 멀티미디어 데이터를 송수신하기 위한 구체적인 방안이 존재하지 않는다. 특히, 현재 MEPEG 기반의 네트워크 코덱 시스템에서는, 한정된 자원을 통해 수신되는 대용량의 멀티미디어 데이터를 복수의 디코딩 유닛들을 이용하여 정확하게 디코딩하는 방안이 존재하지 않는다.
따라서, 통신 시스템, 예컨대 MEPEG 시스템에서 오디오 및 비디오 등의 대용량의 멀티미디어 데이터를 고속 및 안정적으로 수신하기 위해, 소정의 디코딩 알고리즘들이 각각 구현된 복수의 디코딩 유닛들을 통해 상기 대용량의 멀티미디어 데이터를 정상적으로 디코딩하여 데이터를 수신하는 방안이 필요하다.
따라서, 본 발명의 목적은 통신 시스템에서 데이터 수신 장치 및 방법을 제공함에 있다.
또한, 본 발명의 다른 목적은, 통신 시스템에서 오디오 및 비디오 등의 대용량의 멀티 미디어 데이터를 고속 및 안정적으로 수신하는 장치 및 방법을 제공함에 있다.
그리고, 본 발명의 다른 목적은, 통신 시스템에서 소정의 디코딩 알고리즘들이 각각 구현된 복수의 디코딩 유닛들을 통해 상기 대용량의 멀티미디어 데이터를 정상적으로 디코딩하여 데이터를 수신하는 장치 및 방법을 제공함에 있다.
아울러, 본 발명의 또 다른 목적은, 통신 시스템에서 소정의 디코딩 알고리즘들이 각각 구현된 복수의 디코딩 유닛들로 정확한 시점(또는 순서)에 해당 입력 데이터를 정확하게 입력하여, 멀티미디어 데이터를 정상적으로 디코딩하는 데이터 수신 장치 및 방법을 제공함에 있다.
상기한 목적들을 달성하기 위한 본 발명의 장치는, 통신 시스템에서 데이터 수신 장치에 있어서, 멀티미디어 데이터를 수신하고, 상기 멀티미디어 데이터를 복수의 토큰들로 분해하는 파서(parser); 상기 복수의 토큰들에서 각각 자신에게 해당하는 입력 토큰들을 수신하여 상기 멀티미디어 데이터를 디코딩하는 복수의 디코딩 유닛들; 및 상기 복수의 토큰들을 스케쥴링하여 상기 입력 토큰들을 정확한 시점에 상기 복수의 디코딩들로 각각 전송하는 스케쥴러;를 포함하며; 상기 복수의 디코딩 유닛들은, 상기 스케쥴러로부터 전송된 상기 입력 토큰들에 의해 상기 멀티미디어 데이터를 디코딩하여 멀티미디어 서비스를 제공한다.
상기한 목적들을 달성하기 위한 본 발명의 방법은, 통신 시스템에서 데이터 수신 방법에 있어서, 멀티미디어 데이터를 수신하고, 상기 멀티미디어 데이터의 인코딩된 인코딩된 비트 스트림을 해석하여 상기 멀티미디어 데이터를 복수의 토큰들로 분해하는 단계; 상기 복수의 토큰들을 소정의 디코딩 알고리즘들에 해당하는 각각의 입력 토큰들로 스케쥴링하는 단계; 및 상기 입력 토큰들에 대한 상기 소정의 디코딩 알고리즘들을 각각 수행하여 상기 복수의 멀티미디어 데이터를 디코딩하는 단계;를 포함하며; 상기 스케쥴링하는 단계는, 상기 입력 토큰들을 각각 해당하는 소정의 디코딩 알고리즘들에 정확한 시점에 각각 입력한다.
본 발명은, 통신 시스템에서 오디오 및 비디오 등의 대용량의 멀티미디어 데이터를 소정의 디코딩 알고리즘들이 각각 구현된 복수의 디코딩 유닛들로 정확하게 스케쥴링함으로써, 상기 소정의 디코딩 알고리즘들이 각각 구현된 복수의 디코딩 유닛들로 정확한 시점(또는 순서)에 해당 입력 데이터를 정확하게 입력하며, 그에 따라 상기 소정의 디코딩 알고리즘들이 각각 구현된 복수의 디코딩 유닛들을 통해 상기 대용량의 멀티미디어 데이터를 정상적으로 디코딩한다. 따라서, 본 발명은, 오디오 및 비디오 등의 대용량의 멀티미디어 데이터를 고속 및 안정적으로 수신할 수 있다.
또한, 본 발명은, 대용량의 멀티미디어 데이터를 소정의 디코딩 알고리즘들이 각각 구현된 복수의 디코딩 유닛들에 대해 스케쥴링, 다시 말해 상기 복수의 디코딩 유닛들로 각각 입력되는 해당 입력 데이터가 스케쥴링됨으로써, 상기 대용량의 멀티미디어 데이터를 상기 복수의 디코딩 유닛들이 정상적으로 디코딩하며, 특히 상기 해당 입력 데이터의 스케쥴링을 통해 각 디코딩 유닛들이 독립적인 디코딩 동작이 가능함에 따라, 다른 통신 시스템에서도 적응적으로 소정의 디코딩 알고리즘들을 수행하여 데이터를 정상적으로 디코딩할 수 있다.
도 1은 본 발명의 실시 예에 따른 통신 시스템에서 데이터 수신 장치의 구조를 개략적으로 도시한 도면.
도 2는 본 발명의 다른 실시 예에 따른 통신 시스템에서 데이터 수신 장치의 구조를 개략적으로 도시한 도면.
도 3은 본 발명의 실시 예에 따른 통신 시스템에서 데이터 수신 장치의 토큰 입출력을 설명하기 위한 도면.
도 4는 본 발명의 실시 예에 따른 통신 시스템에서 데이터 수신 장치의 동작 과정을 개략적으로 도시한 도면.
이하, 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩뜨리지 않도록 생략될 것이라는 것을 유의하여야 한다.
본 발명은, 통신 시스템, 예컨대 MEPEG(Moving Picture Experts Group) 기반 시스템에서 오디오 및 비디오 등의 대용량의 멀티미디어 데이터를 수신하는 장치 및 방법을 제안한다. 여기서, 본 발명의 실시 예에서는, MEPEG 기반 시스템, 일 예로 MEPEG 기반의 네트워크 코덱 시스템에서 소정의 디코딩 알고리즘들이 구현되어 복수의 디코딩 유닛들을 통해 멀티미디어 데이터를 디코딩하여 수신하는 데이터 수신 장치 및 방법을 제안한다. 본 발명의 실시 예에서는, MEPEG 기반 시스템을 일 예로 하여 설명하지만, 본 발명에서 제안하는 데이터 수신 방안은, 다른 통신 시스템들에도 적용될 수 있다.
또한, 본 발명의 실시 예에서는, 통신 시스템에서 소정의 디코딩 알고리즘을 통해 디코딩을 수행하는 정보 처리 모듈, 예컨대 복수의 기능 유닛(FU: Functional Unit, 이하, 'FU'라 칭하기로 함)들을 이용하여 오디오 및 비디오 코덱을 구현하는 MEPG 기반 시스템, 및 상기 오디오 및 비디오 코덱을 이용하여 3D 그래픽 코덱을 구현하는 MPEG 시스템, 즉 MPEG RVC(Reconfigurable Video Coding)/RGC(Reconfigurable Graphics Coding) 프레임워크(framework)의 데이터 수신 장치 및 방법을 제안한다. 여기서, 상기 RVC/RGC 프레임워크는 하나 또는 복수의 디코딩 유닛들, 즉 복수의 FU들로부터 하나의 완성된 코덱 시스템을 구현하도록 지원한다. 이때, 각 FU들은, 고유의 입력 및 출력을 갖거나, 또는 이러한 각 FU들의 입력/출력을 서로 연결하여 복수의 FU들로 네트워크를 이루며, 상기 네트워크에서 각 FU들 간의 데이터 전송을 통해 코덱 시스템이 구현된다. 그러면 여기서, 도 1을 참조하여 본 발명의 실시 예에 따른 통신 시스템에서 데이터 수신 장치에 대해 보다 구체적으로 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 통신 시스템에서 데이터 수신 장치의 구조를 개략적으로 도시한 도면이다. 여기서, 도 1은, 본 발명의 실시 예에 따른 통신 시스템, 일 예로 MEPEG 기반의 네트워크 코덱 시스템에서 오디오 및 비디오 등의 대용량의 멀티미디어 데이터를 수신하여 디코딩하는 데이터 수신 장치 구조를 개략적으로 나타낸 도면이다.
도 1을 참조하면, 상기 데이터 수신 장치는, 오디오 및 비디오 등의 대용량의 멀티미디어 데이터를 수신하는 파서(parser)(110), 상기 대용량의 멀티미디어 데이터를 디코딩하는 디코더들, 예컨대 디코더1(130), 디코더2(150), 및 디코더3(170), 그리고 상기 디코더들(130,150,170)로의 디코딩을 위해 입력되는 멀티미디어 데이터를 스케쥴링하는 스케쥴러들, 예컨대 스케쥴러1(120), 스케쥴러2(140), 및 스케쥴러3(160)을 포함한다.
상기 파서(110)는, 상기 통신 시스템의 송신 장치에서 인코딩되어 송신된 상기 대용량의 멀티미디어 데이터를 수신하며, 상기 수신한 멀티미디어 데이터의 인코딩된 비트 스트림을 해석하여 각 디코더들에서 처리 가능한 개별 데이터, 예컨대 토큰(token)들로 분해한다. 여기서, 상기 파서(110)는, 상기 수신한 멀티미디어 데이터의 비트 스트림을 해석하여 복수의 토큰들로 분해하여 출력하는 FU의 일 예로 하나 또는 복수의 신택스 파서 FU(Syntax Parser FU)들로 구현된다. 그리고, 상기 신택스 파서 FU는, 다른 FU들, 예컨대 디코딩 유닛들과 같이 이미 완성된 FU로 제공되거나, BSD(Bitstream Synatx Description)에 기반하여 실제 코덱 시스템의 구현 시에 제공될 수 있다.
여기서, 상기 BSD는, 디코더 기술 정보(Decoder Description)에 포함되는 정보로서, 상기 디코더들(130,150,170)이 디코딩하게 될 멀티미디어 데이터의 비트 스트림 구조를 나타내는 정보를 의미하며, 상기 디코더 기술 정보에 대해서는 이하에서 보다 구체적으로 설명할 것임으로 여기서는 그에 관한 구체적인 설명을 생략하기로 한다. 그리고, 상기 토큰은, 상기 대용량의 멀티미디어 데이터를 복수의 FU들로서 소정의 디코딩 알고리즘들이 각각 구현된 복수의 디코딩 유닛들, 다시 말해 디코더들(130,150,170)을 통해 디코딩하여 수신하기 위해, 상기 디코더들(130,150,170)에서 상기 대용량의 멀티미디어 데이터를 디코딩하도록 상기 디코더들(130,150,170)로 입력되는 데이터를 의미하며, 각 디코더들(130,150,170)의 디코딩 알고리즘들에 따라 정상적인 디코딩을 위해 입력 데이터, 즉 입력 토큰들이 상기 디코더들(130,150,170)로 입력된다.
또한, 상기 파서(110)는, 상기 수신한 멀티미디어 데이터의 인코딩된 비트 스트림을 해석하여 각 디코더들에서 처리 가능한 개별 데이터인 토큰들로 분해한 후, 상기 분해한 토큰들, 예컨대 토큰 A, 토큰 B, 토큰 C, 및 토큰 D를 각각 출력한다. 여기서, 상기 토큰 A, 토큰 B, 토큰 C, 및 토큰 D는, 상기 파서(110)의 데이터 처리 능력에 따라 각각 독립적으로 출력된다.
상기 디코더들(130,150,170)은, 소정의 디코딩 알고리즘들이 각각 구현된 정보 처리 모듈인 FU들, 즉 디코딩 유닛들로서, 각각 자신에게 구현된 디코딩 알고리즘의 수행을 위해 필요한 입력 데이터, 즉 각 디코더들(130,150,170) 자신에게 해당하는 토큰들이 각각 입력될 경우, 디코딩 알고리즘을 수행하여 대용량의 멀티미디어 데이터를 디코딩한다. 여기서, 상기 디코더들(130,150,170)은, MEPEG 기반의 네트워크 코덱 시스템에서 코덱을 구현하기 위한 복수의 FU들의 집합, 즉 기능 집합(tool library)에서, 비디오 코덱에 사용되는 툴 박스(tool box), 즉 VTL(Video Tool Library) 및 그래픽 코덱에 사용되는 툴 박스, 즉 GTL(Graphics Tool Library)에 따라 연결 관계가 결정된다. 다시 말해, 상기 멀티미디어 데이터를 디코딩하여 사용자에게 제공하고자 하는 서비스 타입에 따라 상기 디코더들(130,150,170)의 연결 관계, 즉 FND(FU Network Description)가 결정된다.
여기서, 상기 FND는, 디코더 기술 정보로서, 상기 멀티 미디어 데이터를 디코딩하기 위한 FU들로 디코딩 유닛들, 즉 상기 디코더들(130,150,170)의 연결 관계를 나타내는 정보를 의미한다. 또한, 상기 디코더 기술 정보는, MPEG RVC/RGC 프레임워크에서, RVC/RGC 플랫폼을 이용한 디코더 구현을 나타낸 정보를 의미하며, 전술한 바와 같이, BSD 및 FND를 포함하며, 아울러 VTL 및 GTL과, 상기 VTL 및 GTL에 해당하는 FU들, 즉 디코딩 유닛들, 및 상기 디코더들(130,150,170)에 대한 기술 정보를 나타내는 디코더 요약 모델(abstract decoder model)을 포함하고, 상기 디코더 요약 모델을 기반으로 한 하드웨어/소프웨어 형태로의 디코더 구현, 즉 코덱 구현 과정을 나타내는 디코더 구현(decoder implementation)을 포함한다.
그리고, 상기 디코더들(130,150,170)은, 상기 파서(110)에서 출력된 데이터들, 다시 말해 토큰 A, 토큰 B, 토큰 C, 및 토큰 D에서 각각 자신에게 해당하는 입력 데이터를 입력받아 디코딩 알고리즘을 각각 수행한다. 보다 구체적으로 설명하면, 디코더1(130)은, 토큰 A 및 토큰 B가 입력 데이터로 입력되면, 자신에게 구현된 디코딩 알고리즘을 수행하여 출력 데이터로 토큰 E를 출력한다. 또한, 디코더2(150)는, 토큰 A 및 토큰 D가 입력 데이터로 입력되면, 자신에게 구현된 디코딩 알고리즘을 수행하여 출력 데이터로 토큰 F를 출력한다. 아울러, 디코더3(160)은, 토큰 A, 토큰 C, 토큰 E, 및 토큰 F가 입력 데이터로 입력되면, 자신에게 구현된 디코딩 알고리즘을 수행하여 최종 디코딩된 멀티미디어 데이터를 출력, 사용자에게 오디오 및 비디오 등의 멀티미디어 서비스를 제공하기 위한 멀티미디어 데이터를 출력한다.
여기서, 상기 토크들, 즉 상기 디코더들(130,150,170)에 입력되는 입력 데이터의 일 예로, 상기 토큰 A는, 상기 디코더들(130,150,170)의 디코딩 알고리즘 수행 시에, 멀티미디어 데이터의 프레임 별로 상기 디코더들(130,150,170)의 디코딩 알고리즘 수행을 초기화하는 정보 데이터, 예컨대 프레임 코딩 정보 데이터(FCODE) 및 프레임 길이 정보 데이터(WIDTH) 등을 포함한다. 그리고, 상기 토큰 B, 토큰 C, 및 토큰 D는, 상기 멀티미디어 데이터에서 인코딩된 모션 벡터 정보 데이터, 및 상기 모션 벡터 정보 데이터의 디코딩에 필요한 부가 정보 데이터 등을 포함하며, 예컨대 상기 모션 벡터 정보 데이터는, 모션 벡터 데이터(MONTION) 및 모션 벡터 차이 데이터(MVD) 등을 포함하고, 상기 부가 정보 데이터는, 모드 데이터(VOPMODE) 및 부가 모션 벡터 데이터(FOUR_MV) 등을 포함한다. 또한, 상기 토큰 E 및 토큰 F는, 상기 토큰 B 및 토큰 D의 디코딩에 따른 상기 멀티미디어 데이터에서 모션 벡터의 예측 디코딩을 위한 방향 정보 데이터, 예컨대 좌향, 상향, 좌상향 등의 방향값을 포함하는 좌표 데이터(COORDINATE) 등을 포함한다.
또한, 상기 디코더들(130,150,170)은, 전술한 바와 같이 자신에게 구현된 디코딩 알고리즘을 정상적으로 수행하여 멀티미디어 데이터를 정확하게 디코딩하기 위해서는, 자신에게 해당하는 입력 데이터, 즉 토큰들이 각각 정확한 시점(또는 순서)에 정확하게 입력되어야 만이 정상적으로 디코딩 알고리즘을 수행하게 된다. 이러한 상기 디코더들(130,150,170)의 정상적인 디코딩 알고리즘 수행, 즉 복수의 디코딩 유닛들인 상기 디코더들(130,150,170)을 통해 대용량의 멀티미디어 데이터를 정상적으로 디코딩하기 위해, 본 발명의 실시 예에서는 스케쥴러들(120,140,160)을 포함한다.
즉, 상기 스케쥴러들(120,140,160)은, 상기 디코더들(130,150,170)로 입력되는 입력 데이터, 즉 토큰들이 정상적인 디코딩을 위해 정확한 시점(또는 순서)에 해당하는 디코더들(130,150,170)로 정확하게 입력되도록 스케쥴링한다. 여기서, 상기 스케쥴러들(120,140,160)은, 상기 디코더들(130,150,170)의 연결 관계, 즉 FND, 및 상기 디코더들(130,150,170)이 디코딩할 멀티미디어 데이터의 비트 스트림 구조, 즉 BSD를 고려하여 상기 디코더들(130,150,170)로 입력되는 토큰들을 스케쥴링한다.
다시 말해, 상기 스케쥴러들(120,140,160)은, 상기 FND를 통해 상기 디코더들(130,150,170)의 연결 관계를 확인하며, 상기 디코더들(130,150,170)의 연결 관계로부터 상기 디코더들(130,150,170) 간의 입출력 관계, 즉 상기 디코더들(130,150,170) 간의 데이터 전송, 즉 각 FU들 간의 데이터 전송을 확인하여, 상기 디코더들(130,150,170)을 통해 멀티미디어 데이터의 정상적인 디코딩이 이루어지도록 토큰들을 스케쥴링한다. 예컨대, 스케쥴러3(160)은, 상기 FND를 통해 상기 디코더들(130,150,170)의 연결 관계를 확인하여, 상기 디코더1(130) 및 디코더2(150)의 출력 데이터, 즉 토큰 E 및 토큰 F를 디코더3(170)의 입력 데이터로 스케쥴링한다. 또한, 상기 스케쥴러들(120,140,160)은, 상기 BSD를 통해 멀티미디어 데이터의 비트 스트림 구조를 확인, 즉 상기 파서(110)에서 출력되는 토큰들을 확인하여, 상기 디코더들(130,150,170)을 통해 멀티미디어 데이터의 정상적인 디코딩이 이루어지도록 토큰들을 스케쥴링한다.
아울러, 상기 스케쥴러들(120,140,160)은, 상기 디코더들(130,150,170)의 능력 정보, 예컨대 상기 디코더들(130,150,170)에 구현된 디코딩 알고리즘 정보, 상기 디코딩 알고즘에 따라 디코더들(130,150,170)의 디코딩 알고리즘 수행을 위해 필요한 입력 데이터에 대한 정보, 즉 입력 토큰 정보, 및 상기 디코더들(130,150,170)의 디코딩 알고리즘 수행 능력 정보 등을 고려하여 상기 디코더들(130,150,170)로 입력되는 토큰들을 스케쥴링한다. 여기서, 상기 디코더들(130,150,170)의 능력 정보는, 상기 디코딩 알고리즘 정보, 상기 입력 토큰 정보, 및 상기 디코딩 알고리즘 수행 능력 정보를 포함하며, 상기 디코딩 알고리즘 수행 능력 정보는, 상기 디코더들(130,150,170)의 디코딩 알고리즘 수행 시에, 처리 가능한 데이터 양, 처리 속도 등에 대한 정보를 포함한다. 예컨대, 상기 스케쥴러들(120,140,160)은, 상기 BSD 및 상기 디코더들(130,150,170)의 능력 정보를 고려하여, 각 디코더들(130,150,170)의 디코딩 알고리즘의 정상적인 수행을 위해 상기 각 디코더들(130,150,170)로 정확하게 입력되어야 하는 토큰들, 및 상기 토큰들의 정확한 입력 시점(또는 순서)을 스케쥴링한다.
즉, 상기 스케쥴러들(120,140,160)은, 토큰 스케쥴링 정보를 이용하여 전술한 바와 같이, 상기 디코더들(130,150,170)로 입력되는 토큰들을 스케쥴링하며, 상기 토큰 스케쥴링 정보는, 상기 디코더 기술 정보에 포함되며, 상기 FND, BSD, 및 상기 디코더들(130,150,170)의 능력 정보를 포함한다. 다시 말해, 상기 스케쥴러들(120,140,160)은, 상기 디코더 기술 정보에 포함된 토큰 스케쥴링 정보로, 상기 FND, BSD, 및 상기 디코더들(130,150,170)의 능력 정보를 이용하여 스케쥴링하며, 상기 디코더들(130,150,170)이 시스템에 초기에 구현될 시에 상기 토큰 스케쥴링 정보를 상기 디코더들(130,150,170)로부터 획득한다.
여기서, 상기 토큰 스케쥴링 정보에는, 상기 파서(110)에서 분해된 복수의 토큰들의 데이터 특성 정보가 더 포함될 수 있으며, 상기 스케쥴러들(120,140,160)은, 상기 데이터 특성 정보를 고려하여 상기 복수의 토큰들을 스케쥴링하여 상기 각 디코더들(130,150,170)로 정확한 시점(또는 순서)에 정확하게 입력한다. 예컨대, 상기 멀티미디어 데이터의 프레임 별로 디코딩 알고리즘 수행을 초기화하는 정보 데이터, 즉 상기 토큰 A가 상기 멀티미디어 데이터의 프레임 시작 시점에 각 디코더들(130,150,170)로 입력되도록, 상기 스케쥴러들(120,140,160)은, 상기 데이터 특성 정보를 이용하여 상기 토큰 A를 스케쥴링한다. 이러한 상기 데이터 특성 정보를 고려한 상기 스케쥴러들(120,140,160)의 스케쥴링을 통해, 상기 프레임 시작 시점에만 상기 토크 A가 각 디코더들(130,150,170)로 입력된다.
그러므로, 스케쥴러1(120)은, 상기 파서(110)에서 출력된 토큰들에서, 디코더1(130)의 정상적인 디코딩 알고리즘 수행을 위해 필요한 입력 데이터, 즉 토큰들을 스케쥴링하며, 그에 따라 정확한 시점(또는 순서)에 토큰 A 및 토큰 B를 정확하게 디코더1(130)로 입력한다. 또한, 스케쥴러2(130)는, 상기 파서(110)에서 출력된 토큰들에서, 디코더2(150)의 정상적인 디코딩 알고리즘 수행을 위해 필요한 입력 데이터, 즉 토큰들을 스케쥴링하며, 그에 따라 정확한 시점(또는 순서)에 토큰 A 및 토큰 D를 정확하게 디코더2(150)로 입력한다. 아울러, 스케쥴러3(170)은, 상기 파서(110)에서 출력된 토큰들 및 상기 디코더1(130) 및 디코더2(150)에서 출력된 토큰들에서, 디코더3(170)의 정상적인 디코딩 알고리즘 수행을 위해 필요한 입력 데이터, 즉 토큰들을 스케쥴링하며, 그에 따라 정확한 시점(또는 순서)에 토큰 A, 토큰 C, 토큰 E 및 토큰 F를 정확하게 디코더3(170)으로 입력한다. 여기서, 상기 스케쥴러들(120,140,160)의 스케쥴링에 따른 상기 디코더들(130,150,170)로 토큰들의 입출력에 대해서는 이하 도 3을 참조하여 보다 구체적으로 설명할 것임으로 여기서는 그에 관한 구체적인 설명을 생략하기로 한다. 그러면 여기서, 도 2를 참조하여 본 발명의 다른 실시 예에 따른 통신 시스템에서 데이터 수신 장치에 대해 보다 구체적으로 설명하기로 한다.
도 2는 본 발명의 다른 실시 예에 따른 통신 시스템에서 데이터 수신 장치의 구조를 개략적으로 도시한 도면이다. 여기서, 도 2는, 본 발명의 다른 실시 예에 따른 통신 시스템, 일 예로 MEPEG 기반의 네트워크 코덱 시스템에서 오디오 및 비디오 등의 대용량의 멀티미디어 데이터를 수신하여 디코딩하는 데이터 수신 장치 구조를 개략적으로 나타낸 도면이다. 특히, 앞서 설명한 도 1에서는 복수의 FU들인 디코딩 유닛들 별로 해당 스케쥴러들이 각각 구비된 구조였으나, 도 2는 복수의 FU들인 디코딩 유닛들에 대해 단일 스케쥴러가 구비된 구조를 개략적으로 도시한 도면이다.
도 2를 참조하면, 상기 데이터 수신 장치는, 오디오 및 비디오 등의 대용량의 멀티미디어 데이터를 수신하는 파서(210), 상기 대용량의 멀티미디어 데이터를 디코딩하는 디코더들, 예컨대 디코더1(230), 디코더2(240), 및 디코더3(250), 그리고 상기 디코더들(230,240,250)로의 디코딩을 위해 입력되는 멀티미디어 데이터를 스케쥴링하는 스케쥴러(220)를 포함한다.
상기 파서(210)는, 앞서 도 1에서 설명한 바와 같이, 상기 통신 시스템의 송신 장치에서 인코딩되어 송신된 상기 대용량의 멀티미디어 데이터를 수신하며, 상기 수신한 멀티미디어 데이터의 인코딩된 비트 스트림을 해석하여 각 디코더들에서 처리 가능한 개별 데이터, 예컨대 토큰들로 분해한다. 여기서, 상기 파서(210)는, 상기 수신한 멀티미디어 데이터의 비트 스트림을 해석하여 복수의 토큰들로 분해하여 출력하는 FU의 일 예로 하나 또는 복수의 신택스 파서 FU들로 구현된다. 그리고, 상기 신택스 파서 FU는, 다른 FU들, 예컨대 디코딩 유닛들과 같이 이미 완성된 FU로 제공되거나, BSD 정보에 기반하여 실제 코덱 시스템의 구현 시에 제공될 수 있다. 여기서, 상기 BSD에 대해서는 앞서 구체적으로 설명하였음으로 여기서는 그에 관한 구체적인 설명을 생략하기로 한다.
그리고, 상기 토큰은, 상기 대용량의 멀티미디어 데이터를 복수의 FU들로서 소정의 디코딩 알고리즘들이 각각 구현된 복수의 디코딩 유닛들, 다시 말해 디코더들(230,240,250)을 통해 디코딩하여 수신하기 위해, 상기 디코더들(230,240,250)에서 상기 대용량의 멀티미디어 데이터를 디코딩하도록 상기 디코더들(230,240,250)로 입력되는 데이터를 의미하며, 각 디코더들(230,240,250)의 디코딩 알고리즘들에 따라 정상적인 디코딩을 위해 입력 데이터, 즉 입력 토큰들이 상기 디코더들(230,240,250)로 입력된다.
또한, 상기 파서(210)는, 상기 수신한 멀티미디어 데이터의 인코딩된 비트 스트림을 해석하여 각 디코더들에서 처리 가능한 개별 데이터인 토큰들로 분해하며, 상기 분해한 토큰들, 예컨대 토큰 A, 토큰 B, 토큰 C, 및 토큰 D를 각각 출력하며, 여기서 상기 토큰 A, 토큰 B, 토큰 C, 및 토큰 D는, 상기 파서(210)의 데이터 처리 능력에 따라 각각 독립적으로 출력된다.
상기 디코더들(230,240,250)은, 앞서 도 1에서 설명한 바와 같이, 소정의 디코딩 알고리즘들이 각각 구현된 정보 처리 모듈인 FU들, 즉 디코딩 유닛들로서, 각각 자신에게 구현된 디코딩 알고리즘의 수행을 위해 필요한 입력 데이터, 즉 각 디코더들(230,240,250) 자신에게 해당하는 토큰들이 각각 입력될 경우, 디코딩 알고리즘을 수행하여 대용량의 멀티미디어 데이터를 디코딩한다.
여기서, 상기 디코더들(230,240,250)은, 도 1에서 설명한 디코더들(130,150,170)과 같이, 상기 파서(210)에서 출력된 데이터들, 다시 말해 토큰 A, 토큰 B, 토큰 C, 및 토큰 D에서 각각 자신에게 해당하는 입력 데이터를 입력받아 디코딩 알고리즘을 각각 수행한다. 보다 구체적으로 설명하면, 디코더1(230)은, 토큰 A 및 토큰 B가 입력 데이터로 입력되면, 자신에게 구현된 디코딩 알고리즘을 수행하여 출력 데이터로 토큰 E를 출력한다. 또한, 디코더2(240)는, 토큰 A 및 토큰 D가 입력 데이터로 입력되면, 자신에게 구현된 디코딩 알고리즘을 수행하여 출력 데이터로 토큰 F를 출력한다. 아울러, 디코더3(250)은, 토큰 A, 토큰 C, 토큰 E, 및 토큰 F가 입력 데이터로 입력되면, 자신에게 구현된 디코딩 알고리즘을 수행하여 최종 디코딩된 멀티미디어 데이터를 출력, 사용자에게 오디오 및 비디오 등의 멀티미디어 서비스를 제공하기 위한 멀티미디어 데이터를 출력한다. 여기서, 상기 토큰들의 일 예, 즉 각 디코더들(230,240,250)로 입력되는 입력 데이터의 일 예에 대해서는 앞서 구체적으로 설명하였음으로 여기서는 그에 관한 구체적인 설명을 생략하기로 한다.
또한, 상기 디코더들(230,240,250)은, 전술한 바와 같이 자신에게 구현된 디코딩 알고리즘을 정상적으로 수행하여 멀티미디어 데이터를 정확하게 디코딩하기 위해서는, 자신에게 해당하는 입력 데이터, 즉 토큰들이 각각 정확한 시점(또는 순서)에 정확하게 입력되어야 만이 정상적으로 디코딩 알고리즘을 수행하게 된다. 이러한 상기 디코더들(230,240,250)의 정상적인 디코딩 알고리즘 수행, 즉 복수의 디코딩 유닛들인 상기 디코더들(230,240,250)을 통해 대용량의 멀티미디어 데이터를 정상적으로 디코딩하기 위해, 본 발명의 다른 실시 예에서는 단일 스케쥴러(220)를 포함한다.
즉, 상기 스케쥴러(220)는, 상기 디코더들(230,240,250)로 입력되는 입력 데이터, 즉 토큰들이 정상적인 디코딩을 위해 정확한 시점(또는 순서)에 해당하는 디코더들(230,240,250)로 정확하게 입력되도록 스케쥴링한다. 여기서, 상기 스케쥴러(220)는, 상기 디코더들(230,240,250)의 연결 관계, 즉 FND, 및 상기 디코더들(230,240,250)이 디코딩할 멀티미디어 데이터의 비트 스트림 구조, 즉 BSD를 고려하여 상기 디코더들(230,240,250)로 입력되는 토큰들을 스케쥴링한다.
다시 말해, 상기 스케쥴러(220)는, 상기 FND를 통해 상기 디코더들(230,240,250)의 연결 관계를 확인하며, 상기 디코더들(230,240,250)의 연결 관계로부터 상기 디코더들(230,240,250) 간의 입출력 관계, 즉 상기 디코더들(230,240,250) 간의 데이터 전송, 즉 각 FU들 간의 데이터 전송을 확인하여, 상기 디코더들(230,240,250)을 통해 멀티미디어 데이터의 정상적인 디코딩이 이루어지도록 토큰들을 스케쥴링한다. 예컨대, 상기 스케쥴러(220)는, 상기 FND를 통해 상기 디코더들(230,240,250)의 연결 관계를 확인하여, 상기 디코더1(230) 및 디코더2(240)의 출력 데이터, 즉 토큰 E 및 토큰 F를 디코더3(260)의 입력 데이터로 스케쥴링한다. 또한, 상기 스케쥴러(220)는, 상기 BSD를 통해 멀티미디어 데이터의 비트 스트림 구조를 확인, 즉 상기 파서(210)에서 출력되는 토큰들을 확인하여, 상기 디코더들(230,240,250)을 통해 멀티미디어 데이터의 정상적인 디코딩이 이루어지도록 토큰들을 스케쥴링한다.
아울러, 상기 스케쥴러(220)는, 상기 디코더들(230,240,250)의 능력 정보, 예컨대 상기 디코더들(230,240,250)에 구현된 디코딩 알고리즘 정보, 상기 디코딩 알고즘에 따라 디코더들(230,240,250)의 디코딩 알고리즘 수행을 위해 필요한 입력 데이터에 대한 정보, 즉 입력 토큰 정보, 및 상기 디코더들(230,240,250)의 디코딩 알고리즘 수행 능력 정보 등을 고려하여 상기 디코더들(230,240,250)로 입력되는 토큰들을 스케쥴링한다. 여기서, 상기 디코더들(230,240,250)의 능력 정보는, 상기 디코딩 알고리즘 정보, 상기 입력 토큰 정보, 및 상기 디코딩 알고리즘 수행 능력 정보를 포함하며, 상기 디코딩 알고리즘 수행 능력 정보는, 상기 디코더들(230,240,250)의 디코딩 알고리즘 수행 시에, 처리 가능한 데이터 양, 처리 속도 등에 대한 정보를 포함한다. 예컨대, 상기 스케쥴러(220)는, 상기 BSD 및 상기 디코더들(230,240,250)의 능력 정보를 고려하여, 각 디코더들(230,240,250)의 디코딩 알고리즘의 정상적인 수행을 위해 상기 각 디코더들(230,240,250)로 정확하게 입력되어야 하는 토큰들, 및 상기 토큰들의 정확한 입력 시점(또는 순서)을 스케쥴링한다.
즉, 상기 스케쥴러(220)는, 토큰 스케쥴링 정보를 이용하여 전술한 바와 같이, 상기 디코더들(230,240,250)로 입력되는 토큰들을 스케쥴링하며, 상기 토큰 스케쥴링 정보는, 상기 디코더 기술 정보에 포함되며, 상기 FND, BSD, 및 상기 디코더들(230,240,250)의 능력 정보를 포함한다. 다시 말해, 상기 스케쥴러(220)는, 상기 디코더 기술 정보에 포함된 토큰 스케쥴링 정보로, 상기 FND, BSD, 및 상기 디코더들(230,240,250)의 능력 정보를 이용하여 스케쥴링하며, 상기 디코더들(230,240,250)이 시스템에 초기에 구현될 시에 상기 토큰 스케쥴링 정보를 상기 디코더들(230,240,250)로부터 획득한다.
여기서, 상기 토큰 스케쥴링 정보에는, 상기 파서(210)에서 분해된 복수의 토큰들의 데이터 특성 정보가 더 포함될 수 있으며, 상기 스케쥴러(220)는, 상기 데이터 특성 정보를 고려하여 상기 복수의 토큰들을 스케쥴링하여 상기 각 디코더들(230,240,250)로 정확한 시점(또는 순서)에 정확하게 입력한다. 예컨대, 상기 멀티미디어 데이터의 프레임 별로 디코딩 알고리즘 수행을 초기화하는 정보 데이터, 즉 상기 토큰 A가 상기 멀티미디어 데이터의 프레임 시작 시점에 각 디코더들(230,240,250)로 입력되도록, 상기 스케쥴러(220)는, 상기 데이터 특성 정보를 이용하여 상기 토큰 A를 스케쥴링한다. 이러한 상기 데이터 특성 정보를 고려한 상기 스케쥴러(220)의 스케쥴링을 통해, 상기 프레임 시작 시점에만 상기 토크 A가 각 디코더들(230,240,250)로 입력된다.
그러므로, 상기 스케쥴러(220)는, 상기 파서(210)에서 출력된 토큰들에서, 디코더1(230)의 정상적인 디코딩 알고리즘 수행을 위해 필요한 입력 데이터, 즉 토큰들을 스케쥴링하며, 그에 따라 정확한 시점(또는 순서)에 토큰 A 및 토큰 B를 정확하게 디코더1(230)로 입력한다. 또한, 상기 스케쥴러(220)는, 상기 파서(210)에서 출력된 토큰들에서, 디코더2(240)의 정상적인 디코딩 알고리즘 수행을 위해 필요한 입력 데이터, 즉 토큰들을 스케쥴링하며, 그에 따라 정확한 시점(또는 순서)에 토큰 A 및 토큰 D를 정확하게 디코더2(240)로 입력한다. 아울러, 상기 스케쥴러(260)는, 상기 파서(210)에서 출력된 토큰들 및 상기 디코더1(230) 및 디코더2(240)에서 출력된 토큰들에서, 디코더3(250)의 정상적인 디코딩 알고리즘 수행을 위해 필요한 입력 데이터, 즉 토큰들을 스케쥴링하며, 그에 따라 정확한 시점(또는 순서)에 토큰 A, 토큰 C, 토큰 E, 및 토큰 F를 정확하게 디코더3(250)으로 입력한다. 그러면 여기서, 도 3을 참조하여, 도 1 및 도 2에서 설명한 상기 스케쥴러들(120,140,160,220)의 스케쥴링에 따른 상기 디코더들(130,150,170,230,240,250)로 토큰들의 입출력에 대해서 보다 구체적으로 설명하기로 한다.
도 3은 본 발명의 실시 예에 따른 통신 시스템에서 데이터 수신 장치의 토큰 입출력을 설명하기 위한 도면이다.
도 3을 참조하면, 상기 데이터 수신 장치는, 도 1 및 도 2에서 설명한 바와 같이, 파서가 상기 수신한 멀티미디어 데이터의 인코딩된 비트 스트림을 해석한 후, 각 디코더들에서 처리 가능한 개별 데이터, 예컨대 토큰들로 분해하여 각각 출력한다. 즉, 상기 파서는, 토큰 A, 토큰 B, 토큰 C, 및 토큰 D를 각각 독립적으로 출력한다. 그러면, 상기 데이터 수신 장치는, 상기 수신한 멀티미디어 데이터를 복수의 디코딩 유닛들로 디코딩하여 수신하기 위해, 토큰 스케쥴링 정보를 이용하여 상기 파서에서 출력된 토큰들, 예컨대 토큰 A, 토큰 B, 토큰 C, 및 토큰 D를 스케쥴링하며, 또한 상기 디코딩 유닛들에서 출력되는 토큰들, 예컨대 토큰 E 및 토큰 F를 스케쥴링한다.
예를 들어, 시간(time) 축 상에서 상기 데이터 수신 장치의 동작을 보다 구체적으로 설명하면, 우선 상기 파서가, 자신의 데이터 처리 능력에 따라, 상기 수신한 멀티미디어 데이터의 인코딩된 비트 스트림을 해석하여 복수의 토큰들을 각 독립적으로 출력하면, 상기 스케쥴러는, 우선 멀티미디어 데이터에서 임의의 n번째 프레임(t1 ~ t6)의 데이터를 디코딩하도록, 복수의 디코딩 유닛들을 초기화하는 최기화 정보 데이터, 즉 토큰 A(302)를 스케쥴링하여 t1 시점에 상기 복수의 디코딩 유닛들로 각각 입력한다. 즉, 상기 스케쥴링을 통해 상기 복수의 디코딩 유닛들에는 t1 시점에 토큰 A(302)가 각각 입력되며, 그에 따라 상기 복수의 디코딩 유닛들은 초기화된다. 이렇게 상기 복수의 디코딩 유닛들을 초기화한 후, 상기 스케쥴러는 상기 파서에서 출력되는 토큰 A가 상기 n번째 프레임 동안에 상기 복수의 디코딩 유닛들로 입력되지 않도록 스케쥴링한다.
그리고, 상기 스케쥴러는, 상기 복수의 디코딩 유닛들에서 임의의 디코딩 유닛들, 예컨대 디코더1(130,230)이 디코딩 알고리즘을 정상적으로 수행하도록 토큰 B(304)를 스케쥴링하여 t2 시점에 상기 디코더1(130,230)로 입력하며, 또한 디코더2(150,240)가 디코딩 알고리즘을 정상적으로 수행하도록 토큰 D(306)를 스케쥴링하여 t2 시점에 상기 디코더2(150,240)로 입력한다. 즉, 상기 스케쥴링을 통해 t2 시점에 상기 디코더1(130,230)에는 토큰 B(304)가 입력되고 상기 디코더2(150,240)에는 토큰 D(306)가 각각 입력되며, 그에 따라 상기 디코더들(130,230,150,240)는, 소정의 디코딩 알고리즘을 정상적으로 수행하여 토큰 B(304) 및 토큰 D(306)를 디코딩한 후, 토큰 E 및 토큰 F를 각각 출력한다.
또한, 상기 스케쥴러는, 상기 복수의 디코딩 유닛들에서 임의의 디코딩 유닛들, 예컨대 디코더3(170,250)이 디코딩 알고리즘을 정상적으로 수행하도록 토큰 C(308), 토큰 E(310), 및 토큰 F(312)를 스케쥴링하여 t3 시점에 상기 디코더3(170,250)로 입력한다. 즉, 상기 스케쥴링을 통해 t3 시점에 상기 디코더3(170,250)에는 토큰 C(308), 토큰 E(310), 및 토큰 F(312)가 각각 입력되며, 그에 따라 상기 디코더3(170,250)는, 소정의 디코딩 알고리즘을 정상적으로 수행하여 토큰 C(308), 토큰 E(310), 및 토큰 F(312)를 디코딩한 후, 상기 n번째 프레임에서 소정 시구간의 부분 최종 디코딩된 멀티미디어 데이터를 출력한다.
그런 다음, 상기 n번째 프레임의 멀티미디어 데이터에 대한 디코딩이 완료되지 않음에 따라, 상기 스케쥴러는, 상기 복수의 디코딩 유닛들에서 임의의 디코딩 유닛들, 예컨대 디코더1(130,230)이 디코딩 알고리즘을 정상적으로 수행하도록 토큰 B(314)를 스케쥴링하여 t4 시점에 상기 디코더1(130,230)로 입력하며, 또한 디코더2(150,240)가 디코딩 알고리즘을 정상적으로 수행하도록 토큰 D(316)를 스케쥴링하여 t4 시점에 상기 디코더2(150,240)로 입력한다. 즉, 상기 스케쥴링을 통해 t4 시점에 상기 디코더1(130,230)에는 토큰 B(314)가 입력되고 상기 디코더2(150,240)에는 토큰 D(316)가 각각 입력되며, 그에 따라 상기 디코더들(130,230,150,240)는, 소정의 디코딩 알고리즘을 정상적으로 수행하여 토큰 B(314) 및 토큰 D(316)를 디코딩한 후, 토큰 E 및 토큰 F를 각각 출력한다.
또한, 상기 스케쥴러는, 상기 복수의 디코딩 유닛들에서 임의의 디코딩 유닛들, 예컨대 디코더3(170,250)이 디코딩 알고리즘을 정상적으로 수행하도록 토큰 C(318), 토큰 E(320), 및 토큰 F(322)를 스케쥴링하여 t5 시점에 상기 디코더3(170,250)로 입력한다. 즉, 상기 스케쥴링을 통해 t5 시점에 상기 디코더3(170,250)에는 토큰 C(318), 토큰 E(320), 및 토큰 F(322)가 각각 입력되며, 그에 따라 상기 디코더3(170,250)는, 소정의 디코딩 알고리즘을 정상적으로 수행하여 토큰 C(318), 토큰 E(320), 및 토큰 F(322)를 디코딩한 후, 상기 n번째 프레임에서 소정 시구간의 부분 최종 디코딩된 멀티미디어 데이터를 출력한다.
이러한 스케쥴링에 따른 복수의 디코딩 유닛들에서의 디코딩을 통해 상기 n번째 프레임의 최종 디코딩된 멀티미디어 데이터를 출력하면, 상기 스케쥴러는, 다음 프레임, 예컨대 (n+1)번째 프레임의 데이터를 디코딩하도록, 복수의 디코딩 유닛들을 초기화하는 최기화 정보 데이터, 즉 토큰 A(324)를 스케쥴링하여 t6 시점에 상기 복수의 디코딩 유닛들로 각각 입력한다. 즉, 상기 스케쥴링을 통해 상기 복수의 디코딩 유닛들에는 t6 시점에 토큰 A(324)가 각각 입력되며, 그에 따라 상기 복수의 디코딩 유닛들은 초기화된 후, 전술한 바와 같은 토큰들을 스케쥴링하여 (n+1)번째 프레임의 최종 디코딩된 멀티미디어 데이터를 출력한다.
이렇게 본 발명의 실시 예에 따른 통신 시스템에서 데이터 수신 장치는, 오디오 및 비디오 등의 대용량의 멀티미디어 데이터에 대한 복수의 토큰들을 상기 토큰 스케쥴링 정보를 이용하여 스케쥴링함으로써, 복수의 디코딩 유닛들 통해 상기 대용량의 멀티미디어 데이터를 정상적으로 디코딩하여 고속 및 안정적으로 수신한다. 특히, 상기 데이터 수신 장치는, 상기 복수의 디코딩 유닛들에 구현된 소정의 디코딩 알고리즘들이 정상적으로 수행되도록, 상기 디코딩 알고리즘들의 수행을 위해 필요한 입력 데이터, 즉 토큰들이 모두 존재할 경우 상기 토큰들을 스케쥴링하여 정확한 시점(또는 순서)에 해당 디코딩 유닛으로 정확하게 입력한다.
또한, 상기 데이터 수신 장치는, 상기 토큰 스케쥴링 정보, 예컨대 상기 FND를 확인하여 상기 복수의 디코딩 유닛들에서 우선 순위로 디코딩 알고리즘을 수행하여야 하는 디코딩 유닛을 확인하며, 즉 상기 복수의 디코딩 유닛들의 디코딩 우선 순위를 확인하며, 상기 디코딩 우선 순위에 상응하여 상기 토큰들을 스케쥴링하며, 우선 순위를 갖는 디코딩 유닛들, 예컨대 디코더1(130,230) 및 디코더2(150,240)에는 디코더3(170,250)보다 먼저 토큰들이 입력된다.
또한, 상기 데이터 수신 장치는, 도 2에 도시한 바와 같이, 단일 스케쥴러를 통해 상기 토큰들을 스케쥴링하거나, 또는 도 1에 도시한 바와 같이 복수의 디코딩 유닛들에 각각 대응하는 스케쥴링 유닛들을 통해 상기 토큰들을 스케쥴링한다. 즉, 상기 데이터 수신 장치는, 하나 이상의 스케쥴러를 통해 상기 토큰들을 스케쥴링하여, 상기 복수의 디코딩 유닛들로 정확한 시점(또는 순서)에 각 디코딩 유닛들에 해당하는 입력 토큰들을 정확하게 입력한다. 그러면 여기서, 도 4를 참조하여 본 발명의 실시 예에 따른 통신 시스템에서 데이터 수신 장치의 멀티미디어 데이터 수신에 대해 보다 구체적으로 설명하기로 한다.
도 4는 본 발명의 실시 예에 따른 통신 시스템에서 데이터 수신 장치의 동작 과정을 개략적으로 도시한 도면이다.
도 4를 참조하면, 410단계에서, 상기 데이터 수신 장치는, 음성 및 비디오 등의 대용량의 멀티미디어 데이터를 수신한다. 그런 다음, 420단계에서, 상기 수신한 멀티미디어 데이터의 인코딩된 비트 스트림을 해석하여 복수의 디코딩 유닛들에서 처리 가능한 개별 데이터, 예컨대 토큰들로 분해한다. 여기서, 상기 토큰들에 대해서는 앞서 구체적으로 설명하였음으로 여기서는 그에 관한 구체적인 설명을 생략하기로 한다.
다음으로, 430단계에서, 상기 복수의 디코딩 유닛들이 소정의 디코딩 알고리즘들을 각각 정상적으로 수행하여 상기 멀티미디어 데이터를 정확하게 디코딩하도록, 토큰 스케쥴링 정보를 이용하여 상기 분해한 토큰들을 스케쥴링한다. 여기서, 상기 토큰 스케쥴링 정보는, 상기 토큰 스케쥴링 정보는, 상기 디코더 기술 정보에 포함되며, 상기 FND, BSD, 및 상기 디코더들(130,150,170)의 능력 정보를 포함한다. 또한, 상기 토큰들의 스케쥴링을 통해 상기 복수의 디코딩 유닛들에는 소정의 디코딩 알고리즘들의 정상적인 수행을 위해 필요한 해당 토큰들이 정확한 시점(또는 순서)에 정확하게 입력된다. 여기서, 상기 토큰들의 스케쥴링에 대해서는 앞서 구체적으로 설명하였음으로 여기서는 그에 관한 구체적인 설명을 생략하기로 한다.
그리고, 440단계에서, 상기 토큰들의 스케쥴링을 통해 각 디코딩 유닛들로 정확한 시점(또는 순서)에 해당 입력 데이터, 즉 토큰들이 정확하게 입력됨에 따라, 상기 각 디코딩 유닛들은 자신에게 각각 구현된 소정의 디코딩 알고리즘을 정상적으로 수행하여, 입력된 토큰들을 디코딩하며, 그에 따라 최종 디코딩된 멀티미디어 데이터를 출력하여 사용자에게 오디오 및 비디오 등의 멀티미디어 서비스를 제공한다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (20)

  1. 통신 시스템에서 데이터 수신 장치에 있어서,
    멀티미디어 데이터를 수신하고, 상기 멀티미디어 데이터를 복수의 토큰들로 분해하는 파서(parser);
    상기 복수의 토큰들에서 각각 자신에게 해당하는 입력 토큰들을 수신하여 상기 멀티미디어 데이터를 디코딩하는 복수의 디코딩 유닛들; 및
    상기 복수의 토큰들을 스케쥴링하여 상기 입력 토큰들을 정확한 시점에 상기 복수의 디코딩들로 각각 전송하는 스케쥴러;를 포함하며;
    상기 복수의 디코딩 유닛들은, 상기 스케쥴러로부터 전송된 상기 입력 토큰들에 의해 상기 멀티미디어 데이터를 디코딩하여 멀티미디어 서비스를 제공하는 것을 특징으로 하는 데이터 수신 장치.
  2. 제1항에 있어서,
    상기 스케쥴러는, 상기 복수의 디코딩 유닛들에 각각 대응하는 복수의 스케쥴링 유닛들을 포함하며;
    상기 스케쥴러 및 상기 복수의 스케쥴링 유닛들은, 토큰 스케쥴링 정보를 이용하여 상기 복수의 토큰들을 스케쥴링하는 것을 특징으로 하는 데이터 수신 장치.
  3. 제2항에 있어서,
    상기 토큰 스케쥴링 정보는, 상기 복수의 디코딩 유닛들의 연결 관계 정보(FND: FU(Functional Unit) Network Description), 상기 멀티미디어 데이터의 비트 스트림 구조 정보(BSD: Bitstream Synatx Description), 및 상기 복수의 디코딩 유닛들의 능력 정보를 포함하는 것을 특징으로 하는 데이터 수신 장치.
  4. 제3항에 있어서,
    상기 스케쥴러 및 상기 복수의 스케쥴링 유닛들은, 상기 연결 관계 정보를 통해 상기 복수의 디코딩 유닛들 간의 입출력 관계를 확인하고, 상기 입출력 관계에 따라 스케쥴링하여, 상기 복수의 디코딩 유닛들에서 제1디코딩 유닛의 출력 토큰을 제2디코딩 유닛의 입력 토큰으로 전송하는 것을 특징으로 하는 데이터 수신 장치.
  5. 제3항에 있어서,
    상기 스케쥴러 및 상기 복수의 스케쥴링 유닛들은, 상기 연결 관계 정보를 통해 상기 복수의 디코딩 유닛들의 디코딩 우선 순위를 확인하고, 상기 디코딩 우선 순위에 상응하여 상기 복수의 토큰들을 스케쥴링하며, 상기 스케쥴링을 통해 상기 입력 토큰들을 정확한 시점에 각각 전송하는 것을 특징으로 하는 데이터 수신 장치.
  6. 제3항에 있어서,
    상기 스케쥴러 및 상기 복수의 스케쥴링 유닛들은, 상기 멀티미디어 데이터의 비트 스트림 구조 정보를 통해 상기 파서에서 분해된 상기 복수의 토큰들을 확인하여 스케쥴링하며, 상기 스케쥴링을 통해 상기 복수의 디코딩 유닛들의 정상 디코딩 시에 필요한 상기 입력 토큰들을 정확한 시점에 각각 전송하는 것을 특징으로 하는 데이터 수신 장치.
  7. 제3항에 있어서,
    상기 복수의 디코딩 유닛들의 능력 정보는, 상기 복수의 디코딩 유닛들에 각각 구현된 디코딩 알고리즘들의 정보, 상기 입력 토큰들의 정보, 및 상기 디코딩 알고리즘들의 수행 능력 정보를 포함하는 것을 특징으로 하는 데이터 수신 장치.
  8. 제7항에 있어서,
    상기 디코딩 알고리즘들의 수행 능력 정보는, 상기 복수의 디코딩 유닛들의 디코딩 시에 처리 가능한 데이터 양 및 처리 속도에 대한 정보를 포함하는 것을 특징으로 하는 데이터 수신 장치.
  9. 제7항에 있어서,
    상기 스케쥴러 및 상기 복수의 스케쥴링 유닛들은, 상기 복수의 디코딩 유닛들의 능력 정보를 통해 상기 복수의 디코딩 유닛들의 디코딩 시에 필요한 상기 입력 토큰들을 확인하여 스케쥴링하며, 상기 스케쥴링을 통해 상기 입력 토큰들을 정확한 시점에 각각 전송하는 것을 특징으로 하는 데이터 수신 장치.
  10. 제2항에 있어서,
    상기 스케쥴러 및 상기 복수의 스케쥴링 유닛들은, 상기 복수의 디코딩 유닛들의 디코딩 시에 필요한 상기 입력 토큰들이 모두 존재할 경우, 상기 입력 토큰들을 스케쥴링하여 상기 입력 토큰들을 정확한 시점에 각각 전송하는 것을 특징으로 하는 데이터 수신 장치.
  11. 제2항에 있어서,
    상기 토큰 스케쥴링 정보는, 상기 복수의 토큰들의 데이터 특성 정보를 포함하며;
    상기 스케쥴러 및 상기 복수의 스케쥴링 유닛들은, 상기 데이터 특정 정보를 통해 상기 복수의 토큰들의 특성을 확인하며, 상기 복수의 토큰들의 특성에 따라 상기 복수의 토큰들을 스케쥴링하며, 상기 스케쥴링을 통해 상기 입력 토큰들을 정확한 시점에 각각 전송하는 것을 특징으로 하는 데이터 수신 장치.
  12. 제1항에 있어서,
    상기 파서는, 상기 멀티미디어 데이터의 인코딩된 인코딩된 비트 스트림을 해석하여, 상기 복수의 디코딩 유닛들에서 처리 가능한 개별 데이터로서 상기 멀티미디어 데이터를 상기 복수의 토큰들로 분해하는 것을 특징으로 하는 데이터 수신 장치.
  13. 통신 시스템에서 데이터 수신 방법에 있어서,
    멀티미디어 데이터를 수신하고, 상기 멀티미디어 데이터의 인코딩된 인코딩된 비트 스트림을 해석하여 상기 멀티미디어 데이터를 복수의 토큰들로 분해하는 단계;
    상기 복수의 토큰들을 소정의 디코딩 알고리즘들에 해당하는 각각의 입력 토큰들로 스케쥴링하는 단계; 및
    상기 입력 토큰들에 대한 상기 소정의 디코딩 알고리즘들을 각각 수행하여 상기 복수의 멀티미디어 데이터를 디코딩하는 단계;를 포함하며;
    상기 스케쥴링하는 단계는, 상기 입력 토큰들을 각각 해당하는 소정의 디코딩 알고리즘들에 정확한 시점에 각각 입력하는 것을 특징으로 데이터 수신 방법.
  14. 제13항에 있어서,
    상기 스케쥴링하는 단계는, 상기 소정의 알고리즘들이 각각 구현된 복수의 유닛들의 연결 관계 정보(FND: FU(Functional Unit) Network Description)를 통해, 상기 복수의 유닛들 간의 입출력 관계를 확인하고, 상기 입출력 관계에 따라 스케쥴링하여, 상기 복수의 유닛들에서 제1유닛의 출력 토큰을 제2유닛의 입력 토큰으로 입력하는 것을 특징으로 하는 데이터 수신 방법.
  15. 제14항에 있어서,
    상기 스케쥴링하는 단계는, 상기 연결 관계 정보를 통해 상기 소정의 알고리즘들의 디코딩 우선 순위를 확인하고, 상기 디코딩 우선 순위에 따라 상기 복수의 토큰들을 스케쥴링하여, 상기 입력 토큰들을 정확한 시점에 각각 입력하는 것을 특징으로 하는 데이터 수신 방법.
  16. 제13항에 있어서,
    상기 스케쥴링하는 단계는, 상기 멀티미디어 데이터의 비트 스트림 구조 정보를 통해 상기 분해된 상기 복수의 토큰들을 확인하고, 상기 복수의 토큰들을 스케쥴링하여, 상기 소정의 알고리즘들의 정상 수행 시에 필요한 상기 입력 토큰들을 정확한 시점에 각각 입력하는 것을 특징으로 하는 데이터 수신 방법.
  17. 제13항에 있어서,
    상기 스케쥴링하는 단계는, 상기 소정의 알고리즘들이 각각 구현된 복수의 유닛들의 능력 정보를 통해 상기 소정의 알고리즘들의 정상 수행 시에 필요한 상기 입력 토큰들을 확인하고, 상기 입력 토큰들을 정확한 시점에 각각 입력하는 것을 특징으로 하는 데이터 수신 방법.
  18. 제17항에 있어서,
    상기 복수의 유닛들의 능력 정보는, 상기 디코딩 알고리즘들의 정보, 상기 입력 토큰들의 정보, 및 상기 디코딩 알고리즘들의 수행 능력 정보를 포함하며;
    상기 디코딩 알고리즘들의 수행 능력 정보는, 상기 복수의 유닛들의 디코딩 시에 처리 가능한 데이터 양 및 처리 속도에 대한 정보를 포함하는 것을 특징으로 하는 데이터 수신 방법.
  19. 제13항에 있어서,
    상기 스케쥴링하는 단계는, 상기 소정의 디코딩 알고리즘들의 수행 시에 필요한 상기 입력 토큰들이 모두 존재할 경우, 상기 입력 토큰들을 스케쥴링하여 상기 입력 토큰들을 정확한 시점에 각각 입력하는 것을 특징으로 하는 데이터 수신 방법.
  20. 제13항에 있어서,
    상기 스케쥴링하는 단계는, 상기 복수의 토큰들의 데이터 특성 정보를 통해 상기 복수의 토큰들의 특성을 확인하며, 상기 복수의 토큰들의 특성에 따라 상기 복수의 토큰들을 스케쥴링하여 상기 입력 토큰들을 정확한 시점에 각각 입력하는 것을 특징으로 하는 데이터 수신 방법.
KR1020110069941A 2010-07-21 2011-07-14 통신 시스템에서 데이터 수신 장치 및 방법 KR20120011791A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110069941A KR20120011791A (ko) 2010-07-21 2011-07-14 통신 시스템에서 데이터 수신 장치 및 방법
US13/186,903 US20120020233A1 (en) 2010-07-21 2011-07-20 Apparatus and method for receiving data in a communication system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020100070411 2010-07-21
KR20100070411 2010-07-21
KR1020110069941A KR20120011791A (ko) 2010-07-21 2011-07-14 통신 시스템에서 데이터 수신 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20120011791A true KR20120011791A (ko) 2012-02-08

Family

ID=45493551

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110069941A KR20120011791A (ko) 2010-07-21 2011-07-14 통신 시스템에서 데이터 수신 장치 및 방법

Country Status (2)

Country Link
US (1) US20120020233A1 (ko)
KR (1) KR20120011791A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8954816B2 (en) * 2011-11-28 2015-02-10 Sandisk Technologies Inc. Error correction coding (ECC) decode operation scheduling

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5699460A (en) * 1993-04-27 1997-12-16 Array Microsystems Image compression coprocessor with data flow control and multiple processing units
GB9930788D0 (en) * 1999-12-30 2000-02-16 Koninkl Philips Electronics Nv Method and apparatus for converting data streams
DE10218812A1 (de) * 2002-04-26 2003-11-20 Siemens Ag Generische Datenstrombeschreibung
KR100604032B1 (ko) * 2003-01-08 2006-07-24 엘지전자 주식회사 복수 코덱을 지원하는 장치와 방법
JP2009044537A (ja) * 2007-08-09 2009-02-26 Osaka Univ 映像ストリーム処理装置及びその制御方法、プログラム、記録媒体
US7885270B2 (en) * 2008-05-15 2011-02-08 Verlvue, Inc. Statistical multiplexing of compressed video streams

Also Published As

Publication number Publication date
US20120020233A1 (en) 2012-01-26

Similar Documents

Publication Publication Date Title
JP4389883B2 (ja) 符号化装置、符号化方法、符号化方法のプログラム、符号化方法のプログラムを記録した記録媒体
CN107205149A (zh) 通过参考帧缓冲器跟踪的运动矢量参考选择
RU2014107928A (ru) Схемы многопланового видеокодирования
CN102801979A (zh) 多路视频混合编码方法及装置
US20090310686A1 (en) Distributed decoding device of sequential parallel processing scheme and method for the same
EP2645710A1 (en) Method for monitoring terminal through ip network and mcu
CN113271493A (zh) 视频流解码方法及计算机可读存储介质
KR20120011791A (ko) 통신 시스템에서 데이터 수신 장치 및 방법
US20100186464A1 (en) Laundry refresher unit and laundry treating apparatus having the same
US20130170560A1 (en) Latency Aware Priority Based Multi-Channel Decoding
CN103957446B (zh) 基于linux的支持多用户使用的机顶盒及其控制方法
CN114067800B (zh) 语音识别方法、装置和电子设备
KR20160008011A (ko) 초고해상도 영상 처리를 위한 장치
CN107210041B (zh) 发送装置、发送方法、接收装置以及接收方法
US20100076944A1 (en) Multiprocessor systems for processing multimedia data and methods thereof
WO2014047027A1 (en) Distribution and use of video statistics for cloud-based video encoding
CN114095781A (zh) 多媒体数据处理方法、装置、电子设备及存储介质
US10623017B2 (en) Arithmetic coding device, arithmetic coding method, and arithmetic coding circuit
EP2860728A1 (en) Method and apparatus for encoding and for decoding directional side information
CN111447453B (zh) 图像处理方法及装置
CN104811782A (zh) 同步影音码流的解码器与解码方法
CN113691532B (zh) 基于fast协议的万兆通信数据的并行解析方法及装置
US20210185102A1 (en) Server in multipoint communication system, and operating method thereof
CN109462716B (zh) 信号处理方法、显控设备和显控系统
US20130195185A1 (en) Apparatus and method for providing additional information to functional unit in reconfigurable codec

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid