KR20060048312A - 멀티스레딩 환경에서 스레드인 처리 유닛에서 데이터를처리하는 방법 및 장치 - Google Patents

멀티스레딩 환경에서 스레드인 처리 유닛에서 데이터를처리하는 방법 및 장치 Download PDF

Info

Publication number
KR20060048312A
KR20060048312A KR1020050049270A KR20050049270A KR20060048312A KR 20060048312 A KR20060048312 A KR 20060048312A KR 1020050049270 A KR1020050049270 A KR 1020050049270A KR 20050049270 A KR20050049270 A KR 20050049270A KR 20060048312 A KR20060048312 A KR 20060048312A
Authority
KR
South Korea
Prior art keywords
processing unit
timer
data
value
output
Prior art date
Application number
KR1020050049270A
Other languages
English (en)
Other versions
KR101189842B1 (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 KR20060048312A publication Critical patent/KR20060048312A/ko
Application granted granted Critical
Publication of KR101189842B1 publication Critical patent/KR101189842B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4825Interrupt from clock, e.g. time of day
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24549Run-time optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Complex Calculations (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

멀티스레딩 환경에서 처리 유닛(14)의 타이밍 행동을 개선하는 방법을 개시하며, 여기서 처리 유닛(14)은 복수의 입력 유닛(11, 12, 13)으로부터의 데이터를 조합함으로써 출력 유닛(16)용 데이터 프레임을 생성하고, 처리된 데이터는 처리 유닛과 출력 유닛 간의 출력 버퍼(15)에서 버퍼링된다. 이 방법은, 출력 유닛으로부터 처리 유닛으로 출력 버퍼의 필링에 대응하는 값을 전송하는 단계(18)와, 타이머 값을 계산하는 단계와, 타이머 값으로 타이머(21)를 설정하는 단계를 포함하고, 여기서 타이머는 특정 시간 후에 처리 유닛 스레드를 호출한다. 타이머 값은 출력 버퍼의 평균화된 필링에 대응하는 값에 의존한다. 그 결과, 출력 버퍼(15)의 평균 필링은 종래의 스레드 관리에 비교할 때 적으며, 이에 따라 시스템이 보다 유연성 있으며 보다 빠르게 반응한다.
타이밍 행동, 평균화된 필링, 출력 버퍼, 처리 유닛, 공배수

Description

멀티스레딩 환경에서 스레드인 처리 유닛에서 데이터를 처리하는 방법 및 장치{METHOD AND APPARATUS FOR PROCESSING DATA IN A PROCESSING UNIT BEING A THREAD IN A MULTITHREADING ENVIRONMENT}
도 1은 종래의 단일 입력 오디오 처리 시스템을 나타내는 도면.
도 2는 확장된 종래의 오디오 처리 시스템을 나타내는 도면.
도 3은 확장된 종래의 오디오 처리 시스템에서 버퍼로의 버스트와이즈 데이터 프레임 전송의 타이밍을 나타내는 도면.
도 4는 확장된 종래의 처리 시스템에서의 버퍼 필링을 나타내는 도면.
도 5는 본 발명에 따른 진보된 오디오 처리 시스템을 나타내는 도면.
도 6은 본 발명의 처리 시스템에서 프레임의 등거리 처리를 나타내는 도면.
도 7은 본 발명의 데이터 처리 방법의 흐름도를 나타내는 도면.
도 8은 본 발명의 처리 시스템에서의 버퍼 필링을 나타내는 도면.
도 9는 본 발명의 처리 유닛 스레드의 타이밍 행동을 나타내는 도면.
* 도면의 주요 부분에 대한 부호 설명 *
11, 12, 13 디코더
14 처리 유닛
15 FIFO 버퍼
16 출력 모듈
17 버퍼 출력
21 타이머
본 발명은 처리 유닛에서 데이터를 처리하는 방법에 관한 것이다. 특히, 본 발명은 처리 유닛에서 데이터를 처리하는 방법에 관한 것으로서, 이 처리 유닛은 복수의 입력 유닛으로부터의 데이터를 조합함으로써 출력 유닛용 데이터 프레임을 생성하고, 여기서 처리 유닛, 입력 유닛, 및 출력 유닛은 멀티스레드 환경에서 스레드이다.
MPEG-4 시스템으로 알려져 있는 동화상 전문가 그룹(MPEG) 표준 ISO/IEC-14496-1에 따라 코딩되는 오디오-비주얼(AV) 프리젠테이션은, 예를 들어, 하나 이상의 비디오용 스트림, 하나 이상의 오디오용 스트림 등인 여러 개의 데이터 스트림으로 구성될 수 있다. 오디오 스트림은, 예를 들어, 상이한 종류의 오디오 스트림에 대하여 개별적인 샘플율, 일반적으로 표준화된 샘플율인, 8kb/s, 16kb/s, 22.05kb/s, 32kb/s, 44.1kb/s, 또는 48kb/s를 가질 수 있다. 또한, 이 스트림은 타임스탬프가 부착된 패킷 또는 프레임으로 구성된다.
이러한 프리젠테이션의 재생에는 상이한 스트림을 위한 개별적인 디코딩 유 닛, 처리 유닛, 및 하나 이상의 출력 유닛이 필요하다. 이러한 디코딩 유닛, 처리 유닛, 및 출력 유닛은, 운영 시스템(OS)을 갖는 마이크로프로세서 및 애플리케이션 소프트웨어를 이용하여 소위 멀티스레딩 기술로 구현될 수 있으며, 여기서 상기한 유닛들은 "태스크" 또는 "스레드"라고도 칭하는 별도의 소프트웨어 파티션으로서 구현된다. 스레드는, 마이크로프로세서의 제어를 다른 스레드와 순차적으로 공유하는 실행가능 소프트웨어의 독립적인 유닛이다. 스레드는 호출되어 순차적으로 실행되기 때문에, 서로 비동기적으로 동작하며, 운영 시스템에 의해 제공되는 메시징 애플리케이션 프로그래밍 인터페이스(API)를 통해 또는 함수 호출을 통해 서로 통신할 수 있다. 스레드 간의 데이터를 전송하려면 데이터를 버퍼링해야 하며, 여기서 일반적으로 동기화된 FIFO형 구조를 버퍼링을 위해 이용한다. 그러나, 허용가능한 품질의 재생을 얻으려면 출력 데이터 스트림, 즉, 오디오 스트림이 출력 유닛에서 연속적이고 완전해야 한다. 즉, 버퍼 언더플로우 및 버퍼 오버플로우를 방지해야 한다. 출력 유닛에서의 일정한 데이터 가용성을 확보하기 위해, 처리 유닛과 출력 유닛 간에 큰 FIFO 버퍼를 이용한다.
종래의 오디오 처리 시스템이 도 1에 도시되어 있다. 소스 스트림으로부터의 디코딩된 데이터 블록은 프레임 FIFO (11b)를 통해 디코더(11)로부터 처리 유닛(14) 내로 판독되어 처리된다. 처리된 데이터 블록은, 출력 모듈(16)을 피드하는 블록 구성 FIFO(15)에 기입된다. 출력 모듈(16)은, 여러 개의 디코딩된 데이터 블록을 동시에 이용하여 프레임 FIFO(15)로부터 판독되는 데이터 블록으로부터 오디오 표현 데이터의 연속 스트림(17)을 생성한다. FIFO(15)가 풀 상태 아니면, 이것 은 신호(18), 예를 들어, 예외 메시지를 처리 유닛(14)으로 전송한다. 이후, 처리 유닛(14)은, FIFO(15)가 풀 상태로 될 때까지 자신의 입력으로부터 데이터를 더 처리한다.
이러한 시스템은 실시간 운영 시스템(RTOS) 또는 예를 들어 Microsoft Windows®와 같은 non-RTOS 상에서 구현될 수 있다. 후자의 경우, RTOS보다 싸고 간단하기 때문에 선호되며, 디코더(11), 처리 유닛(14), 및 출력 모듈(16)용으로 별도의 스레드(11T, 14T, 16T)를 이용한다.
일부 애플리케이션을 위해, 상이한 소스로부터 데이터를 동시에 처리하는 것이 바람직하며, 여기서 소스는 상이한 프레임율 및/또는 샘플율을 가질 수 있으며 별도의 디코더를 요구할 수 있다. 예를 들어, 여러 입력, 예를 들어, 10개 이상의 입력으로부터 오디오 신호를 중첩하는 것이 필요할 수 있다.
도 2는 여러 디코더(11, 12, 13)를 처리 유닛(14)에 연결하는 간단한 해결책을 나타낸다. 디코더(11, 12, 13)는 별도의 스레드에서 실행되고, OS의 스레드 관리는 각 스레드를 호출함으로써 상이한 입력 데이터가 처리되는 순서를 제어한다. 전형적으로, 스레드는, 입력 버퍼에 처리할 데이터를 갖고 출력 버퍼에 기입할 데이터를 갖고 있는 한 액티브이다. 처리 유닛(14)은 자신의 모든 입력 버퍼(11b, 12b, 13b)로부터의 데이터를 조합하고, 이에 따라 데이터가 이러한 모든 버퍼에서 이용가능하도록 요구한다. 그 결과, 처리 유닛(14)의 연속 호출 간의 시간은 하나 의 입력 시스템에서보다 길어지며, 그 이유는 디코더 유닛(11, 12, 13)의 각각이 OS의 스레드 관리에 의해 제어될 때 자신의 각 출력 버퍼(11b, 12b, 13b)를 완전히 필링(filling)하려 하기 때문이다. 따라서, 처리되는 입력 데이터의 전체 양은 하나의 입력 시스템에서보다 많다. 이것은 출력 버퍼의 필링(filling)의 보다 강력한 발진을 야기한다. 특히, 마이크로프로세서가 과중하게 로딩되어 있을때, 시스템이 매우 느려져 입력 스트리밍 데이터를 처리하지 못할 수 있으며, 이것은 실시간에 유사한 처리를 요구하며, 스레드 관리가 범용에 해당하며 최적화되어 있지 않다면, 병목현상 등으로 인해 방해를 야기할 수 있다. 이것은 데이터 손실로 이어질 수 있으며, 즉, 모든 입력 데이터가 출력 모듈(16)에 도달하지 않게 되며, 이것은 예를 들어 고품질 오디오 데이터와 같은 일부 데이터 유형에 대하여 허용되지 않는다.
예를 들어, 오디오-비디오 프리젠테이션 애플리이이션에서와 같은 non-RTOS에서 실행되는 멀티 입력 시스템은, 예를 들어, 마이크로프로세서가 다른 태스크를 추가로 수행해야 하는 동안 여러 개의 상이한 오디오 소스로부터의 입력 데이터가 처리될 때, 과중한 로드가 걸려 있는 처리 유닛의 예측할 수 없는 타이밍 행동으로 이어진다. 그 결과, 출력 유닛에서 오디오 패킷의 디코딩과 오디오 렌더링 간의 예측할 수 없는 지연으로 인해 오디오 및 비디오 간의 동기화가 어려워진다. 또한, 처리 유닛 스레드의 연속 호출 간의 긴 시간으로 인해 사용자 상호작용, 예를 들어, 코맨드에 대한 더 많은 응답 시간을 야기하게 되며, 이것은 처리 유닛에 의해 전형적으로 실행되는 멀티스레딩 시스템에서 존재한다. 따라서, 사용자 코맨드 가 효과적으로 되는데에 더 많은 시간이 걸린다.
이러한 문제점은, 처리 유닛의 타이밍 행동을 개선하는 방법을 제공하는 본 발명에 의해 해결되며, 여기서 처리 유닛은 복수의 입력 유닛으로부터의 데이터를 조합함으로써 출력 유닛용 데이터를 생성하며, 이 모든 유닛이 멀티스레딩 환경에서 스레드이며, 상이한 시간 베이스를 가질 수 있다. 특정한 문제점은 다중 멀티미디어 스트림 데이터용 오디오-비디오 재생 장치 또는 오디오를 위한 이러한 방법을 제공하는 것이다. 이 문제점은 청구항 제1항에 기재된 방법에 의해 해결된다.
본 발명에 따르면, 타이밍 행동은, OS의 스레드 관리보다 상위인 메카니즘을 이용하여 짧은 시간 간격으로 처리 유닛을 호출함으로써 개선된다. 특히, 본 발명은 타이머 유닛을 이용하여 처리 유닛을 호출하고, 타이머를 개별적으로 설정하는 것을 포함한다. 이점으로는, 마이크로프로세서 처리 용량을 보다 균등하게 분포하는 것이다. 또한, 본 발명의 방법은 OS의 스레드 관리에 상관없이 처리 유닛 스레드의 우선 순위를 증가할 수 있으며, 출력 버퍼의 필링 발진을 줄일 수 있다. 이것은, 예를 들어, 보다 나은 오디오-비디오 동기화, 및 사용자 상호작용에 대한 더 짧은 지연을 야기한다.
처리 유닛 스레드가 호출될 때마다, 출력 버퍼의 필링을 측정하고, 측정 결과를 이용하여 처리 유닛 스레드의 다음 호출 전에 시간을 결정한다. 필링이 정의된 스레드 이하인 동안, 예를 들어, 초기화 동안, 처리 유닛은 프레임을 처리하는 사이클을 반복하고, 이것을 출력 버퍼에 기입하며, 타이머 유닛을 설정하지 않고 출력 버퍼 필링을 다시 측정한다. 출력 버퍼가 임계에 도달하게 되면, 측정된 출 력 버퍼 필링으로부터 타이머 값을 계산하고, 타이머 유닛은 계산된 타이머 값으로 설정되며, 여기서 타이머는 자신의 시간이 경과되었을 때 처리 유닛 스레드를 호출하고, 처리 유닛 스레드는 타이머에 의해 또는 OS의 스레드 관리에 의해 다시 호출될 때까지 종료될 수 있다.
시간 주기는 타이머 값에 의해 결정되기 때문에 처리 유닛은 일반적으로 OS의 스레드 관리에 의해서가 아닌 타이머에 의해 호출된다. 따라서, 처리 유닛이 처리하는 연속 프레임 간의 시간은 출력 버퍼의 필링에 의존하며, 이것은 규제(regulation) 루프가 폐쇄되고 따라서 규제가 개선된다는 것을 의미한다. 특히, 출력 유닛이 정기적인 시간 간격, 예를 들어, 80ms로 출력 버퍼로부터의 출력 프레임을 처리할 때, 출력 프레임은 복수의 입력 프레임을 포함하며, 여기서 각 입력 프레임은 특정 샘플율을 갖고, 본 발명은, 입력 샘플율의 역수의 공배수에 대응하지만 출력 유닛 시간 간격보다 짧은 값으로 타이머를 설정하는 것을 포함한다. 20.83㎲, 22.67㎲, 31.25㎲, 45.35㎲, 62.5㎲, 및 125㎲의 역수에 대응하는 48kHz, 44.1kHz, 32kHz, 22.05kHz, 16kHz, 및 8kHz의 샘플율을 위한 입력 샘플율, 예를 들어, 20ms의 역수의 공배수, 특히 최소 공배수를 택하는 것은 이점을 갖는다.
타이머를 이용하여 특정 출력 데이터 스트림, 예를 들어, 오디오 데이터의 프레임을 처리하기 위한 처리 유닛 스레드를 호출할 때, 타이머의 로드 값은 본 발명에서 제안하는 바와 같이 출력 버퍼의 필링에 의존하며, 처리 유닛은 초기화 위상 이후 대략 등거리의 시간 간격으로 작업할 수 있다. 타이머 값의 계산을 위해 평균 버퍼 필링 값을 이용하는 것은 이점을 가질 수 있다. 이 평균은 스레드의 연 속하는 호출들로부터 몇개의 측정값, 예를 들어, 2 내지 5개의 측정값에 대하여 계산된다. 평균 측정값의 저역통과 필터링을 추가로 이용하여 예를 들어 시간 행동을 개선할 수 있다.
공통 마이크로프로세서에 의해 제공되는 범용 타이머를 채용하여 특정 출력 유닛용으로 처리되는 연속 프레임 간의 특정화된 최대 시간을 평균적으로 유지할 수 있다. 시간은 스레드 관리와 독립적으로 실시간으로 경과된다. 마이크로프로세서 및/또는 운영 시스템은 일반적으로 이러한 타이머를 제공한다. 범용 타이머는 다음 프레임을 디코딩하기 위해 처리 유닛 스레드를 트리거한다. 이후, 타이머에는 새로운 값이 로딩되며, 이것은 버퍼의 필링으로부터 계산된다.
이점으로는, 이를 위해 간단한 계산을 이용할 수 있다는 것이며, 예를 들어, 평균화된 버퍼 필링을 선형 식에 입력할 수 있다. 이 경우, 선형 식에 측정값을 먼저 입력하고 평균을 계산할 수도 있다. 이 방법은, 손실없는 스트림 액세스를 보장하며, 즉, 버퍼 언더플로우 및 버퍼 오버플로우를 방지하고, 처리되는 동안 일정한 최소 지연을 보장한다. 이것은 예를 들어 보다 나은 오디오-비디오 동기화 및 사용자 상호작용에 대한 보다 빠른 응답이라는 점에서 이점을 갖는다.
타이머에 의해 측정되는 시간은, 마이크로프로세서가 트리거될 때 다른 태스크로 인해 비지(bisy) 상태일 수 있다는 사실에서 평균 최대 시간을 나타내며, 따라서 트리거에 대한 반응 전에 또다른 태스크를 먼저 종료해야 할 수 있다. 이 경우는, 출력 버퍼가 출력 유닛이 작업을 계속할 수 있을 정도로 큰 경우 처리될 수 있다.
그 결과, 처리 유닛과 출력 유닛 간의 FIFO 버퍼에 저장되는 데이터 프레임 또는 블록의 평균 수는 종래의 시스템에서보다 적을 수 있으며, 이것은 예를 들어 보다 짧은 응답 시간, 오디오 데이터의 프리젠테이션 시간의 보다 나은 추정을 야기하며, 이에 따라 오디오-비디오 동기화, 및 일반적으로 비실시간 시스템에서 실시간 행동의 보다 나은 근사화를 개선하게 된다.
본 발명의 방법을 활용하는 장치가 청구항 제8항에 기재되어 있다.
데이터를 처리하는 본 발명의 장치는, 복수의 입력으로부터 입력 데이터를 수신하고, 마이크로프로세서, 데이터 세트, 예를 들어, 프로그램 데이터, 및 타이머를 포함하고, 마이크로프로세서 및 데이터 세트는 데이터 처리 유닛과 데이터 출력 유닛을 구성하며, 이들 유닛은 멀티스레딩 환경에서 스레드로 되며, 데이터는 처리 유닛으로부터 출력 유닛으로 전달된다. 또한, 이 장치는, 출력 버퍼의 필링에 대응하는 값을 측정하고 그 값을 처리 유닛에 제공하는 수단, 처리 유닛에서 타이머 값을 계산하는 수단, 및 타이머 값으로 타이머를 설정하고 타이머를 기동하는 수단을 포함하고, 여기서 타이머 값은 출력 버퍼의 필링에 대응하는 값에 의존하며, 타이머는 타이머 값에 의해 특정된 시간이 경과될 때 통지를 전송하고, 이 통지로 인해 처리 유닛 스레드가 활성화 상태에 있지 않다면 활성화되고, 또는 처리 유닛 스레드의 연속된 활성화를 야기한다.
본 발명에 따른 장치는, 자신의 입력이 데이터에 적어도 2개의 상이한 일정 입력 데이터율을 제공할 때 가장 큰 사용 이점을 갖는다. 본 발명은, 측정된 버퍼 필링이 소정의 최소 값 및 소정의 최대 값 간에 존재할 때에만 타이머가 사용되는 것, 및 소정의 평균 버퍼 필링값으로부터 발생하는 타이머 값에 의해 특정된 시간이 입력의 데이터율의 역수의 최소 공배수인 것을 포함한다. 또한, 타이머 값과 출력 버퍼 필링값 간의 관계는 선형일 수 있다.
본 발명은 종래 기술과 비교할 때 다음과 같은 이점들을 갖는다.
첫번째로, 비실시간 행동을 갖는 시스템에서 실시간 처리의 보다 나은 근사화를 얻을 수 있다.
두번째로, 출력 유닛의 프리젠테이션 시간의 시간 추정을 개선할 수 있어, 양호한 동기화, 예를 들어, 오디오/비디오 동기화가 발생한다.
세번째로, 개별적인 프레임 단위로 수행할 수 있어 처리 유닛과 접속된 소스 스트림에 대하여 최적화된 액세스를 수행할 수 있다.
본 발명의 이점을 갖는 실시예가 종속항, 다음에 따르는 설명 및 도면에 기재되어 있다.
실시예
첨부 도면을 참조하여 본 발명의 예시적인 실시예를 설명한다.
다음의 설명에서, 본 발명의 바람직한 실시예를 설명하기 앞서 종래 기술의 시스템에서의 문제점을 보다 상세히 설명한다.
도 2는 여러 개의 멀티미디어 소스 스트림을 갖는 시스템의 중심이 되는 처리 유닛(14)을 나타내며, 이것은 별도의 디코더(11, 12, 13)에 의해 디코딩되며 별도의 버퍼(11b, 12b, 13b)에서 버퍼링된다. 디코더(11, 12, 13)는, 별도의 시간 도메인, 또는 처리 유닛(14)의 시간 도메인과 독립적인 스레드에 속한다. 처리 유 닛(14)은 상이한 소스로부터의 데이터 간의 타임스탬프를 동기화한다. 처리 유닛(14)의 출력은 프레임 지향 FIFO 버퍼(15)로 전송된다. 버퍼(15)로부터의 신호(18)는 버퍼 필링 레벨을 처리 유닛(14)에 전송하고, 따라서 버퍼(15)의 필링이 정의된 레벨보다 낮은 경우 언더플로우를 방지하도록 더 많은 데이터를 요구한다. 버퍼(15)의 출력은 출력 모듈(16)에 의해 구동되고, 이것은 버퍼 출력(17)에서 데이터를 정기적인 간격으로 요구한다. 따라서, 출력 모듈은 필링 및 FIFO 버퍼(15)의 프레임율을 결정한다. 출력 버퍼(16)의 프레임 크기는 출력 모듈(16)의 요구 조건에 의존하지만, 일반적으로 버퍼(15)는 매우 크며, 예를 들어 15개 프레임이다. 이러한 시스템의 전형적인 소프트웨어 구현에 있어서, 출력 모듈(16)은 자신의 고유 스레드를 실행하며, 이 고유 스레드는 나머지 스레드로부터 독립적이며, 특히, 입력 버퍼로부터 독립적이며 그리고 처리 유닛(14)의 스레드로부터 독립적이다.
출력 버퍼(15)는 처리 유닛(14) 스레드와 출력 모듈(16) 스레드 간의 통신 소자이다. 출력 버퍼(15)의 필링이 요구되면, 처리 유닛(14)은 버퍼가 풀 상태로 될 때까지 데이터를 출력 버퍼(15)에 기입한다. 이후, 처리 유닛은 대기하며, 즉, 출력 모듈(16)이 출력 버퍼(15)로부터 데이터 블록을 판독할 때까지 어떠한 작업도 하지 않거나 다른 태스크를 수행한다. 따라서, 출력 모듈(16)은 출력 버퍼(15)의 필링을 결정하며, 이것은 다시 처리 유닛(14)의 활성화를 결정한다.
이 스레드 지향 처리에 따라 예시적인 오디오 데이터 스트림에 대하여 도 3에 도시한 특징이 발생한다. 이 예에서, 출력 모듈은 80ms에 등가인 시간을 갖고 있으며, 즉, 48kHz에서 예를 들어 3840개의 오디오 샘플에 대응하는 오디오 프레임을 80ms로 작업하고, 디코딩 프레임은 20ms 오디오 재생을 위해 충분하다. 따라서, 80ms의 유휴 시간(dT) 후에, 처리 유닛은 짧은 시퀀스로 4개의 처리 호출(c1,...,c4)을 수신한다. 도 4의 a)는 출력 버퍼의 필링 결과를 나타내며, 이것은 7 또는 8 그리고 11개의 디코드 프레임 간에 대부분 가변된다. 도 4의 b)에 도시한 바와 같이 값들을 평균화하고, 도 4의 c)에 도시한 바와 같이 저역통과 필터링하게 되면, 버퍼에서 거의 10개의 디코드 프레임을 평균적으로 갖게 된다. 활용되는 종래의 알고리즘은 출력 버퍼를 항상 풀 상태로 필링하려 한다.
도 3 및 도 4의 a)는, 데이터 블록이 FIFO로부터 인출되었을 때 처리 유닛이 4번 호출되는 것을 나타내며, 즉, 이것은 출력 버퍼가 풀 상태가 아닌 한 호출된다. 이렇나 시간 행동은 non-RTOS의 스레드 관리에서 전형적인 것이다.
다중 멀티미디어 스트림 데이터를 위한 처리 유닛은, 손실없는 스트림 액세스 및 일정한 최소 지연 처리를 보장해야 한다. 일예로는 MPEG-4 플레이어를 위한 다중 입력 오디오 렌더러(renderer)가 있다.
본 발명에 따르면, 그 해결책은 처리 유닛으로부터 설정될 수 있으며 OS의 스레드 관리에 상위인 타이머를 이용함으로써 처리를 위한 등거리 시작점을 근사화하는 것이다. 이것이 도 5에 도시되어 있다. 이 시스템은, 타이머 유닛(21)이 처리 유닛(14)에 접속되어 있다는 점을 제외하고 도 2의 상기한 시스템과 유사하다. 타이머 유닛은 스레드 관리와 독립적이며, 이것은 특히 처리 유닛 스레드의 일부가 아니다. 처리 유닛(14)은, 예를 들어 자신의 신호 처리 후에, 타이머(21)를 어떤 값으로 설정하고, 이후 타이머를 기동하며 대기 모드로 되고, 이에 따라 마이크로프로세서는 다른 작업을 수행할 수 있다. 타이머가 프로그래밍된 시간의 종료에 도달하게 되면, 이것은 처리 모듈을 다시 호출하거나 어웨이크한다(awake). 처리 모듈은 자신의 특정 처리를 수행하고 타이머를 새로운 값으로 설정하며, 이에 따라 처리 유닛이 특정 시간을 위해 다시 대기할 수 있으며, 이러한 방식으로 계속 진행된다. 타이머 값은 원칙적으로 신호 처리 전후에 계산될 수 있지만, 이러한 계산이 처리 유닛에서 행해지고, 처리 유닛 스레드가 인터럽트될 수 있기 때문에, 타이머 값의 빠른 계산이 바람직하다. 이후, 타이머를 가능한 일찍 기동할 수 있으며, 이에 따라 잠재적인 스레드 인터럽션에서 타이머가 활성화될 가능성이 높다.
타이머 값은 다음과 같은 방식으로 출력 FIFO 모듈의 포화로부터 생성된다. 즉, FIFO 버퍼의 실제 필링을 측정한다. 이후, 최종 4개의 측정값에 대한 필링의 평균값을 계산하고, 예를 들어, 0, 1의 정규화된 컷오프 주파수를 갖는 3차 필터에 의해 저역통과 필터링을 행한다. 이 신호는 아래와 같은 형태의 클립된(clipped) 선형 함수를 갖는 타이머 값을 야기하게 된다.
timerValue = k1 * fillingValue + k2
여기서, k1은 양이어야 하며, 이 경우의 fillingValue는 필링 측정의 저역통과 필터링된 평균값이다. 파라미터(k2)는 타이머가 사용될 때 최소값을 정의하는 한편 k1은 규제의 감도를 정의한다.
시스템의 제어 루프 이득을 정의하는 식을 찾는 일반화된 방식은 다음과 같다. 즉, 먼저 규제 조절의 범위를 개별적으로 제한하고, 즉, 버퍼 필링이, 예를 들어 2 < 버퍼 필링(buffer filling) < 11처럼 최소값과 최대값 간에 존재해야 한다. 이후, 타겟 필링을 정의하며, 이것은 본 예에서 8개 블록이다. 본 예에서는 편리함 때문에 선형 식을 이용하고 있지만, 다른 유형의 식도 가능하다. 원칙적으로, 이 예를 타겟 필링으로 되는 동작점 근처로 선형 식을 근사화할 때 이용할 수도 있다. 이후, 상기한 예의 k1 및 k2에 대응하는 기울기 및 오프셋을 다음과 같이 정의할 수 있다. 즉, timerValue는 타이머가 설정되는 값이고, timerValue는 타이머가 설정되는 값이며, fillingValue는 평균화 및 저역통과 필터링을 행한 후의 버퍼 필링 값이고, 동작 범위의 하한값을 위하여 timerValue는 2인 fillingValue에 대하여 0이다. 따라서, k2 = -2 * k1이다.
또한, 20ms의 간격 시간의 8배의 평균 버퍼 필링은 다음과 같은 결과를 갖는다.
20 = k1 * 8 - 2 * k1
이에 따라, k1 = 10/3 이며 k2 = -20/3이다. 마지막으로, timerValue는 다음과 같이 정수로 반올림된다.
timerValue = integer(10/3 * x - 20/3 + 0.5)
이 함수는, 측정값 'fillingValue'가 적어도 3이상 11이하일 때에만 함수를 사용한다는 점에서 클립된다. 이것이 도 7에 도시되어 있다. 측정값이 3보다 작으면(74), 타이머를 사용하지 않고 처리 유닛은 그 다음 프레임으로 즉시 진행한다(710). 측정값이 11을 초과하게 되면(72), 처리 유닛은, 다른 측정값을 취하기 전에(71) 스레드 관리 기능을 이용하여 정의된 시간동안, 예를 들어, 1ms동안 일시 정지한다(73). 그러나, OS의 스레드 관리는 임의의 시간에 처리 유닛 스레드를 인터럽트할 수 있다. 측정값이 정의된 범위 내에 속하면, 이것은 상기한 식(77)에 입력되기 전에 평균화되고(75) 저역통과 필터링된다(76). 이 식은, 데이터 블록, 예를 들어, 오디오 데이터 블록의 처리를 시작하는 동안(79) 타이머를 설정(78)하는데 사용되는 값을 발생하게 한다(77). 이후, 타이머는 처리 유닛 스레드의 다음 호출을 트리거(711)한다. 따라서, WaitForTimer() 단계(711)는, 실제로 스레드 프로세스의 일부가 아니라 본 발명에 따른 처리의 일부이다.
예를 들어, k1은 10/3으로 설정되고 k2는 -20/3으로 설정된다. 이것은 상기한 바와 같이 각각 20ms인 8개의 프레임을 갖는 평균 출력 버퍼 필링을 발생하게 한다. 처리 유닛에 대한 이 규제 효과가 도 6에 도시되어 있다. 점은 시간에 대한 처리 유닛 호출을 나타내고 대략 선형 시퀀스 상태에 있으며, 이것은 처리 유닛의 거의 등거리 호출을 의미한다. 이러한 정밀 시간 행동의 중요 결과로서, 처리된 데이터의 프리젠테이션 시간의 보다 나은 추정이 가능하며, 이 추정을 위해 출력 모듈의 버퍼 모델을 포함하는 것이 가능하다. 이것은, 버퍼의 중앙치 포화가 이미 알려져 있으며, 이것이 조절될 수 있어 처리 시간을 보다 정확하게 측정할 수 있기 때문이다. 이러한 인식 하에, 예를 들어, 처리 알고리즘을 위한 보다 나은 오디오/비디오 (AV) 동기화 및 사용자 상호작용에 대한 개선된 반응을 AV 재생용으로 얻을 수 있다.
도 8은 본 발명에 따른 시스템의 행동 결과를 나타낸다. 도 8의 a)는 버퍼 필링을 나타내고, 이것은 도 4의 a)에서보다 유연성있으며 평균적으로 더 낮다. 이것은 출력 버퍼에서 데이터가 평균적으로 적다는 것을 의미한다. 이러한 효과는, 도 8의 c)에 도시한 바와 같이 저역통과 필터링에 의해 20ms의 4개 프레임에 대하여 평균화되어 도 8의 b)에 도시한 평균 버퍼 필링을 고려하면 보다 명백해진다. 마지막으로, 도 8의 d)는 저역통과 필터링된 평균 필링값으로부터 계산된 타이머 값을 나타낸다. 예를 들어, 시간 t81에서 출력 버퍼가 비교적 풀 상태이면, 상기한 k1이 양의 값이기 때문에 도 8의 c)에서 저역통과 필터링된 평균 필링값이 높으며 타이머 값이 높다. 따라서, 처리 유닛의 연속 호출 간의 시간은 약 20ms 이상으로 상대적으로 길다. 저역통과 필터링된 평균 필링값이 낮으면, 타이머 값은 낮고, 또는 예를 들어 시간 t82에서 타이머 값이 3인 특정 최소값보다 낮기 때문에 타이머가 심지어 디스에이블되고, 따라서 처리 유닛은 각 호출에 대하여 하나의 프레임보다 많은 프레임을 처리한다.
도 9는 본 발명의 일실시예에 따른 처리 유닛의 임시 행동을 나타낸다. 시간 t0에서, 타이머 값을 계산하고, 타이머는 그 값으로 설정되며 프레임 처리가 시작된다. t0의 시간 후에, OS는 처리 유닛 스레드를 종료한다. 이용가능 데이터가 이 시간 내에 처리되었다고 가정한다. 타이머는 tP0의 시간동안 계속하여 실행되고, 이후 T1에서 처리 유닛 스레드를 다시 호출하며, 따라서 처리 유닛의 전회 호출 후의 시간차는 T = t0 + tPO 이다. T1에서, 처리 유닛 스레드는 다시 활성화되며, 버퍼 필링을 측정하고, 상기한 바와 같이 타이머 값을 계산하며 타이머를 설정한 다. 이후, 처리 유닛 스레드는, 자신의 프레임 처리를, t11의 시간 후에 스레드 관리가 그 처리를 인터럽트하고 처리 전력을 다른 프로세스에 제공할 때까지 계속한다. 타이머는 계속하여 실행된다. tP1후에, 스레드 관리는 t12의 추가 시간동안 T1에서 시작한 데이터 패킷의 처리를 계속하기 위해 처리 유닛 스레드를 다시 호출한다. 다음 타이머 이벤트가 T2에서 나타날 때까지, 처리는 여전히 진행중이며 tD2의 추가 시간동안 계속되지만, 타이머 이벤트는 저장된다. 현재 스레드가 T2+tD2에서 종료되면, 이것은 즉시 재시작되며, 버퍼 필링을 측정한다. 이 때 버퍼가 상대적으로 비어있다고 가정하면, 이것은 연속적으로 비워져 있기 때문에, 다음 타이머 주기동안 짧은 시간 T'에 대응하여 전보다 낮은 타이머 값이 계산된다. 이 시간(T')은, 버퍼 필링으로부터 타이머 값을 추론하는 선형 식에 따라 T-tD2와 동일하거나 유사하고, 따라서 처리 유닛 스레드의 시작 시간에 대하여 대략 등거리의 시간 래스터를 얻게 된다.
예를 들어, T2+tD2에서 하나 이상의 특정 스레드의 시작 시간이 시간 래스터 밖에 위치할 수 있지만, 본 발명에 따른 방법은 래스터를 재확립하는데 적절하다. 또한, 실제 타이머 값은 현재 상황에 적절하며, 따라서 처리 유닛이 갖는 평균 시간을 조절할 수 있다. 파라미터(k1, k2)를 적절히 선택함으로써 처리 유닛의 연속 호출 간의 평균값인 래스터 시간(T)을 애플리케이션에 대하여 정확하게 조절할 수 있고, 따라서 처리 유닛의 임시 행동은 출력 유닛 및 입력 유닛의 임시 행동에 적 절할 수 있으며, 이것은 처리 유닛의 블록킹을 방지한다.
일반적으로, 평균 출력 시간 간격이 N*M 밀리초인 경우 래스터 시간, 즉, 처리 유닛의 연속 호출 간의 평균 시간을 M 밀리초가 되도록 선택하는 것은 이점을 갖지며, 여기서 N은 1보다 큰 양의 정수이다.
본 발명은 타이머 유닛을 활용하는 시기에 대한 상이한 가능성을 포함한다. 타이머 값의 계산 및 타이머의 설정은 바람직하게 버퍼 필링 계산 후 즉시 행해지지만, 원칙적으로 측정값은, 예를 들어, 스레드의 출구(exit) 시퀀스 또는 시작 시퀀스 내에 저장되어 나중에 이용될 수 있다.
본 발명의 일실시예에서, 타이머 값은 프레임을 처리하기 전에 항상 계산된다. 다른 실시예에서, 타이머 값은, 처리 유닛 스레드가 호출될 때마다 그 스레드의 시작 시퀀스로서 계산된다. 또다른 실시예에서, 타이머 값은 처리 유닛 스레드가 종료되기 전에만 그 스레드의 출구 시퀀스의 일부로서 계산된다. 일실시예에서, 타이머 유닛은 타이머 값의 계산 후 즉시 설정된다. 다른 실시예에서, 타이머 유닛은 나중에 설정되거나, 처리 유닛 스레드를 종료하기 전에 그 스레드의 출구 시퀀스의 일부로서 항상 설정된다.
본 발명은, 프로세서 오버로드의 위험성이 높은 멀티스레딩 환경에서, 예를 들어, MPEG-4 등을 위한 다중 채널 입력 오디오 렌더러를 구현하는데 특히 이점을 갖는다.
본 발명에 따라, 비실시간 행동을 갖는 시스템에서 실시간 처리의 보다 나은 근사화를 얻을 수 있다. 출력 유닛의 프리젠테이션 시간의 시간 추정을 개선할 수 있어, 양호한 동기화, 예를 들어, 오디오/비디오 동기화가 발생한다. 개별적인 프레임 단위로 수행할 수 있어 처리 유닛과 접속된 소스 스트림에 대하여 최적화된 액세스를 수행할 수 있다.

Claims (10)

  1. 처리 유닛(14)에서 데이터를 처리하는 방법으로서,
    상기 처리 유닛은 복수의 입력 유닛(11,...,13)으로부터의 데이터를 조합함으로써 출력 유닛(16)을 위한 데이터 프레임을 생성하고,
    처리된 데이터는 상기 처리 유닛과 상기 출력 유닛 간의 출력 버퍼(15)에 버퍼링되며,
    상기 처리 유닛, 상기 입력 유닛, 및 상기 출력 유닛은 멀티스레딩 환경에서 스레드이며 동일한 마이크로프로세서를 공유하고,
    상기 방법은,
    상기 출력 버퍼(15)의 필링을 측정하는 단계 - 상기 측정에 의해 상기 출력 버퍼의 필링에 등가인 값이 발생함 - 와,
    측정값으로부터 타이머 값을 계산하는 단계와,
    계산된 상기 타이머 값으로 타이머(21)를 설정하고 상기 타이머를 기동하는 단계 - 상기 타이머는 상기 타이머 값에 의해 특정된 시간이 경과되면 통지를 전송하고, 상기 통지는 처리 유닛 스레드를 참조함 - 와,
    상기 통지에 따라, 상기 처리 유닛 스레드가 활성화되어 있지 않으면 상기 처리 유닛 스레드를 활성화하고, 상기 처리 유닛 스레드가 이미 활성화되어 있다면 상기 처리 유닛 스레드의 활성화를 지속하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 타이머 값을 계산하는 단계는, 복수의 측정된 값의 평균화 및/또는 저역통과 필터링을 포함하는 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 타이머를 설정하는 단계는, 계산된 상기 타이머 값이 특정 최소값과 특정 최대값 간에 존재하는 경우에만 실행되고,
    상기 타이머를 설정하는 단계는 계산된 타이머 값이 낮은 경우 스킵되고,
    상기 타이머는 계산된 타이머 값이 높은 경우 상기 특정 최대값으로 설정되는 방법.
  4. 제1항 내지 제3항중 어느 한 항에 있어서,
    상기 타이머 값은 timerValue = k1 * fillingValue + k2 형태의 선형 식의 결과이며,
    k1은 양의 값이며 소정의 평균 버퍼 필링 레벨에 기초하고,
    k2는 상기 타이머가 사용될 때의 최소값을 정의하며,
    fillingValue는 상기 버퍼의 필링에 등가이거나 상기 버퍼의 평균화 및/또는 저역통과 필터링된 필링에 등가인 측정값인 방법.
  5. 제1항 내지 제4항중 어느 한 항에 있어서,
    상기 출력 유닛(16)은, 상기 출력 버퍼(15)에 대한 단일 액세스로, 복수의 처리된 데이터 프레임을 정기적인 시간 간격으로 판독하고,
    상기 시간 간격은 상기 타이머 값에 의해 특정된 평균 시간의 정수배인 방법.
  6. 제1항 내지 제5항중 어느 한 항에 있어서,
    상기 타이머 값에 의해 특정된 평균 시간은 상기 입력 유닛의 샘플율의 역수의 공배수이고,
    상기 입력 유닛(11,...,13)은 상이한 샘플율을 가질 수 있는 방법.
  7. 제5항 또는 제6항에 있어서,
    처리된 데이터는 오디오 데이터이며,
    상기 처리 유닛의 연속 호출 간의 평균 시간은 M 밀리초이고,
    평균 출력 시간 간격은 N*M 밀리초이며, N은 1보다 큰 양의 정수인 방법.
  8. 데이터를 처리하는 장치로서,
    상기 장치는 복수의 입력으로부터의 입력 데이터를 수신하고, 마이크로프로세서, 데이터 세트, 및 타이머(21)를 포함하며,
    상기 마이크로프로세서 및 상기 데이터 세트는 데이터 처리 유닛(14)과 데이 터 출력 유닛(16)을 구성하고,
    상기 데이터 처리 유닛과 상기 데이터 출력 유닛은 멀티스레딩 환경에서 스레드이며,
    데이터는 상기 처리 유닛으로부터 상기 출력 유닛으로 출력 버퍼(15)를 통해 전달되고,
    상기 장치는,
    상기 출력 버퍼(15)의 필링에 등가인 값을 측정하는 수단과,
    측정값으로부터 타이머 값을 계산하는 수단과,
    상기 타이머 값으로 상기 타이머(21)를 설정하고 상기 타이머를 기동하는 수단
    을 포함하고,
    상기 타이머는 상기 타이머 값에 의해 특정된 시간이 경과되면 통지를 전송하고,
    상기 통지에 의해, 상기 처리 유닛 스레드가 활성화되어 있지 않으면 상기 처리 유닛 스레드가 활성화되고, 상기 처리 유닛 스레드가 이미 활성화되어 있다면 상기 처리 유닛 스레드의 활성화가 지속되는 장치.
  9. 제8항에 있어서,
    상기 복수의 입력은 데이터에 적어도 2개의 상이한 일정 입력 데이터율을 제공하며,
    상기 타이머(21)는, 측정된 출력 버퍼 필링이 소정의 최소값과 소정의 최대값 간에 존재할 때에만 사용되며,
    소정의 평균 버퍼 필링값으로부터 발생하는 상기 타이머 값에 의해 특정된 시간은 상기 입력의 데이터율의 역수의 공배수인 장치.
  10. 제9항에 있어서,
    상기 타이머 값에 의해 특정된 시간은, 상기 입력의 데이터율의 역수의 최소 공배수인 장치.
KR1020050049270A 2004-06-10 2005-06-09 멀티스레딩 환경에서 스레드인 처리 유닛에서 데이터를처리하는 방법 및 장치 KR101189842B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP04013686A EP1605354A1 (en) 2004-06-10 2004-06-10 Method and apparatus for improved synchronization of a processing unit for multimedia streams in a multithreaded environment
EP04013686.3 2004-06-10

Publications (2)

Publication Number Publication Date
KR20060048312A true KR20060048312A (ko) 2006-05-18
KR101189842B1 KR101189842B1 (ko) 2012-10-11

Family

ID=34925322

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050049270A KR101189842B1 (ko) 2004-06-10 2005-06-09 멀티스레딩 환경에서 스레드인 처리 유닛에서 데이터를처리하는 방법 및 장치

Country Status (7)

Country Link
US (1) US7680964B2 (ko)
EP (1) EP1605354A1 (ko)
JP (1) JP4738906B2 (ko)
KR (1) KR101189842B1 (ko)
CN (1) CN1707435B (ko)
BR (1) BRPI0501728B1 (ko)
DE (1) DE602005003506T2 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0600417D0 (en) 2006-01-10 2006-02-15 Level 5 Networks Inc Virtualisation support
JP4519082B2 (ja) * 2006-02-15 2010-08-04 株式会社ソニー・コンピュータエンタテインメント 情報処理方法、動画サムネイル表示方法、復号化装置、および情報処理装置
JP4745904B2 (ja) * 2006-07-18 2011-08-10 株式会社日本自動車部品総合研究所 電子装置
US9654447B2 (en) * 2006-08-29 2017-05-16 Digimarc Corporation Customized handling of copied content based on owner-specified similarity thresholds
US20130055072A1 (en) * 2011-08-24 2013-02-28 Robert Douglas Arnold Multi-Threaded Graphical Display System
CN102880509B (zh) * 2012-09-17 2014-09-24 北京大学 基于cuda的格网数字高程模型邻域分析的系统和方法
JP2014067074A (ja) * 2012-09-24 2014-04-17 Oki Electric Ind Co Ltd 録音システム、録音プログラム及び録音方法
CN106250108B (zh) * 2016-07-18 2019-05-17 中国电子科技集团公司第二十八研究所 一种线程中挂时控的方法
CN110501363B (zh) * 2019-08-30 2020-06-02 中国科学院长春应用化学研究所 X射线衍射仪用多线程样品测试方法
CN113377517B (zh) * 2021-06-28 2023-02-28 上海鲲宜软件技术有限公司 基于实时操作系统的线程调度方法及系统
US11695965B1 (en) * 2022-10-13 2023-07-04 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video coding using a coded picture buffer

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4727333A (en) * 1986-06-30 1988-02-23 Rca Corporation Circuitry for multiplying a PCM signal by a sinusoid
US5228859A (en) * 1990-09-17 1993-07-20 Interactive Training Technologies Interactive educational and training system with concurrent digitized sound and video output
US5377317A (en) * 1991-12-20 1994-12-27 International Business Machines Corporation Method and apparatus for distinctively displaying windows on a computer display screen
US5369729A (en) * 1992-03-09 1994-11-29 Microsoft Corporation Conversionless digital sound production
US5428789A (en) * 1993-08-27 1995-06-27 Waldron, Iii; Theodore C. Method and apparatus for optimizing user response time in a priority preemptive operating system
JPH0793168A (ja) * 1993-09-21 1995-04-07 Fuji Electric Co Ltd タスク管理方式
GB2311882B (en) * 1996-04-04 2000-08-09 Videologic Ltd A data processing management system
US6052748A (en) * 1997-03-18 2000-04-18 Edwin A. Suominen Analog reconstruction of asynchronously sampled signals from a digital signal processor
US6029194A (en) * 1997-06-10 2000-02-22 Tektronix, Inc. Audio/video media server for distributed editing over networks
JPH11312143A (ja) * 1998-04-28 1999-11-09 Clarion Co Ltd 情報処理装置及び方法、カーオーディオシステム及びその制御方法並びに情報処理用プログラムを記録した記録媒体
JP2002519954A (ja) * 1998-06-26 2002-07-02 ジェネラル・インスツルメント・コーポレイション Mpeg−4ビデオプログラムを構成しかつ提示するためのターミナル
JP3636657B2 (ja) * 2000-12-21 2005-04-06 Necエレクトロニクス株式会社 クロックアンドデータリカバリ回路とそのクロック制御方法
US20030108063A1 (en) * 2001-12-07 2003-06-12 Joseph Moses S. System and method for aggregating multiple information channels across a network

Also Published As

Publication number Publication date
CN1707435B (zh) 2010-04-28
EP1605354A1 (en) 2005-12-14
DE602005003506D1 (de) 2008-01-10
DE602005003506T2 (de) 2008-10-23
BRPI0501728A (pt) 2006-01-24
CN1707435A (zh) 2005-12-14
US7680964B2 (en) 2010-03-16
BRPI0501728B1 (pt) 2017-03-07
KR101189842B1 (ko) 2012-10-11
US20050278473A1 (en) 2005-12-15
JP4738906B2 (ja) 2011-08-03
JP2006012150A (ja) 2006-01-12

Similar Documents

Publication Publication Date Title
KR101189842B1 (ko) 멀티스레딩 환경에서 스레드인 처리 유닛에서 데이터를처리하는 방법 및 장치
US5628013A (en) Apparatus and method for allocating processing time in a frame-based computer system
JP4433782B2 (ja) 情報処理装置及びオペレーティングシステム
US5448735A (en) Task organization for execution using linked records referencing code modules
US20070016908A1 (en) Parallel operation apparatus
US20180352235A1 (en) Adaptive Control System for Media Encoder Using Accumulation Parameter
US20050268303A1 (en) Execution control for processor tasks
JP2007519060A (ja) タスクスケジューリング装置、タスクスケジューリング方法、タスクスケジューリングプログラム、記録媒体、及び伝送媒体
EP1459179A2 (en) Data processing system having multiple processors and task scheduler and corresponding method therefor
US6304891B1 (en) Execution control for processor tasks
EP1402346A2 (en) Method of and system for determining a best-case response time of a periodic task
WO2015020920A1 (en) Allocating resources of a processor executing multiple media data processing components having a configurable complexity
US6854116B1 (en) Execution control for process task
JP2003337713A (ja) プロセッサの制御方法
JP2004528635A (ja) ブロッキングタスクからバジェットを取り除くための方法およびシステム
EP1605355B1 (en) Method and apparatus for improved synchronization of a processing unit for multimedia streams in a multithreaded environment
US5835767A (en) Method and apparatus for controlling available processor capacity
Fall et al. Workstation video playback performance with competitive process load
KR100682444B1 (ko) 오디오 신호 프로세서
US7603495B2 (en) Method of and device for changing an output rate
JP2002049497A (ja) データ処理方法および処理装置
JP3830133B2 (ja) 電力制御装置及び方法並びに電力制御プログラム
JP2003241978A (ja) デバイスドライバの負荷分散方法および負荷分散システム
KR20220114653A (ko) 프로세서 자원 할당 방법, 컴퓨팅 유닛 및 비디오 감시 장치
CN117667342A (zh) 嵌入式rtos的灵活调度方法、设备和存储介质

Legal Events

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

Payment date: 20150918

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160901

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170919

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180918

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190926

Year of fee payment: 8