KR20060032009A - 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리장치 및 그 방법 - Google Patents

계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리장치 및 그 방법 Download PDF

Info

Publication number
KR20060032009A
KR20060032009A KR1020040081012A KR20040081012A KR20060032009A KR 20060032009 A KR20060032009 A KR 20060032009A KR 1020040081012 A KR1020040081012 A KR 1020040081012A KR 20040081012 A KR20040081012 A KR 20040081012A KR 20060032009 A KR20060032009 A KR 20060032009A
Authority
KR
South Korea
Prior art keywords
processing
frame
multimedia data
parallel
frames
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020040081012A
Other languages
English (en)
Other versions
KR100637838B1 (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=37141522&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20060032009(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by (주)디디오넷 filed Critical (주)디디오넷
Priority to KR1020040081012A priority Critical patent/KR100637838B1/ko
Publication of KR20060032009A publication Critical patent/KR20060032009A/ko
Application granted granted Critical
Publication of KR100637838B1 publication Critical patent/KR100637838B1/ko
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은 연속적인 멀티미디어 데이터(예 : 스트리밍 비디오)를 다수의 프레임(frame)으로 분리하여 파이프라이닝(pipelining)을 이용하여 병렬적으로 처리(예 : 엔코딩/디코딩)하되, 각 파이프라인을 시간차를 두고 연달아 수행하여 선행 프레임에 대한 처리가 완료되지 않은 상태에서도 후행 프레임에 대한 처리가 시작될 수 있도록 하여 멀티미디어 데이터 처리 시간(예 : 엔코딩/디코딩 시간)을 단축시키기 위한, 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있음.
3. 발명의 해결방법의 요지
본 발명은, 멀티미디어 데이터 병렬 처리 장치에 있어서, 외부로부터 멀티미디어 데이터를 입력받아 작업 제어수단으로 전달하고, 그에 따른 처리 결과를 상기 작업 제어수단으로부터 전달받음에 따라 외부로 전달하기 위한 입출력 제어수단; 상기 입출력 제어수단으로부터 전달받은 멀티미디어 데이터를 다수의 프레임으로 분할하여 다수의 작업 처리수단에 하나씩 할당하여 계단식 파이프라인 방식으로 각각 병렬적으로 작업하도록 제어하고, 상기 다수의 작업 처리수단 중 특정의 작업 처리수단으로부터 그 처리 결과를 전달받음에 따라 상기 입출력 제어수단으로 전달하고 해당 작업 처리수단에 상기 멀티미디어 데이터를 이용하여 만든 프레임을 할당하는 과정을 반복 수행하기 위한 상기 작업 제어수단; 및 상기 작업 제어수단의 제어에 따라 할당받은 멀티미디어 데이터의 프레임을 계단식 파이프라인 방식을 이용하여 병렬적으로 각각 처리하여 상기 작업 제어수단으로 각각 전달하기 위한 상기 다수의 작업 처리수단을 포함한다.
4. 발명의 중요한 용도
본 발명은 멀티미디어 데이터 병렬 처리 장치 등에 이용됨.
멀티미디어 데이터, 엔코딩/디코딩, 계단식 파이프라인, 마스터-슬래이브 모델

Description

계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치 및 그 방법{Parallel processing apparatus and its method for multimedia data using pipeline architecture arranged in tires}
도 1 은 일반적인 동영상의 기본 구성 단위에 대한 일실시예 설명도,
도 2 는 일반적인 동영상 엔코딩 원리에 대한 일실시예 설명도,
도 3 은 본 발명에 따른 계단식 파이프라인에 대한 일실시예 설명도,
도 4 는 본 발명에 따른 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치에 대한 일실시예 구성도,
도 5 는 본 발명에 따른 마스터-슬래이브 모델에 대한 일실시예 설명도,
도 6 은 본 발명에 따른 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 방법에 대한 일실시예 흐름도,
도 7 은 본 발명에 따른 멀티미디어 데이터 병렬 처리 장치에서의 데이터 종속성 검사 과정에 대한 일실시예 설명도이다.
* 도면의 주요 부분에 대한 부호의 설명 *
400 : 멀티미디어 데이터 처리 장치
410 : 제1 작업 쓰레드 411 : 제1 데이터 종속성 검사부
412 : 제1 데이터 처리부 420 : 제2 작업 쓰레드
421 : 제2 데이터 종속성 검사부 422 : 제2 데이터 처리부
430 : 제3 작업 쓰레드 431 : 제3 데이터 종속성 검사부
432 : 제3 데이터 처리부 490 : 제어부
491 : 입출력 제어부 492 : 작업 제어부
본 발명은 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로, 더욱 상세하게는 연속적인 멀티미디어 데이터(예 : 스트리밍 비디오)를 다수의 프레임(frame)으로 분리하여 파이프라이닝(pipelining)을 이용하여 병렬적으로 처리(예 : 엔코딩/디코딩)하되, 각 파이프라인을 시간차를 두고 연달아 수행하여 선행 프레임에 대한 처리가 완료되지 않은 상태에서도 후행 프레임에 대한 처리가 시작될 수 있도록 하여 멀티미디어 데이터 처리 시간(예 : 엔코딩/디코딩 시간)을 단축시키기 위한, 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
최근에는 개인용 컴퓨터 및 고속통신의 발달로 멀티미디어 데이터의 전송이 보다 용이해짐에 따라 멀티미디어 데이터(예 : 비디오)를 제공하기 위한 각종 서비스(실시간 및 비실시간 멀티미디어 데이터 서비스)가 다양하게 개발되고 있다.
특히, 기존 다운로드 방식의 멀티미디어 데이터 서비스가 대용량의 멀티미디어 데이터를 전부 다운로드받을 때까지 오랜 시간을 기다리도록 하는 문제점이 있었던 것에 비하여, 멀티미디어 데이터 스트리밍 서비스(Multimedia data streaming service)의 경우 멀티미디어 데이터 서비스가 요구됨과 동시에 멀티미디어 데이터에 대한 다운로드를 시작하여 즉시 재생할 수 있도록 하는 장점이 있다. 여기서, 상기 스트리밍 서비스의 경우 저대역폭의 네트워크를 통해서도 서비스가 가능하다.
상기와 같은 멀티미디어 데이터 스트리밍 서비스에서는 끊임없이 대용량의 멀티미디어 데이터를 사용자의 컴퓨터로 전송하여야 하므로, 멀티미디어 데이터에 대한 각종 처리, 예를 들어 엔코딩 및 디코딩 기술이 매우 중요하다. 여기서, 상기 멀티미디어 데이터 스트리밍 서비스는 실시간 스트리밍 서비스(예 : 인터넷방송)와 비실시간 스트리밍 서비스(예 : 주문형 비디오 스트리밍 서비스)로 크게 나눌 수 있으며, 해당 서비스의 성격에 따라 멀티미디어 데이터에 대한 처리(예 : 엔코딩 및 디코딩)를 수행함에 있어서 서로 다른 특성이 요구된다. 엔코딩을 일예로 들어 설명하면, 실시간 스트리밍 서비스의 경우 실시간 보장을 위하여 멀티미디어 데이터에 대한 엔코딩, 전송, 캡쳐(cpature) 등이 각 단계별로 번갈아 수행되어야 하므로 각 단계에서 소요되는 멀티미디어 데이터에 대한 엔코딩 시간 및 자원 사용을 일정하게 유지하는 것이 매우 중요하다. 반면에, 비실시간 스트리밍 서비스의 경우 최소한의 시간 내에 최대한 많은 양의 멀티미디어 데이터를 미리 엔코딩하여 둔 후에 멀티미디어 데이터 서비스를 사용자로부터 요구받는 즉시 전송하는 것이 중요하다.
한편, 텍스트, 음성, 이미지, 애니메이션 등과 같은 다양한 종류의 멀티미디어 데이터 중에서, 오늘날 가장 대표적인 멀티미디어 데이터라 할 수 있는 동영상에 대하여 도 1 및 도 2를 참조하여 보다 상세히 살펴보면 다음과 같다. 여기서는, 일반적인 동영상의 기본 구성 단위와, 동영상 엔코딩에 대한 종래 기술에 대하여 설명하기로 한다.
도 1 은 일반적인 동영상의 기본 구성 단위에 대한 일실시예 설명도이다.
일반적으로, 동영상은 다수의 정지 영상으로 이루어지고, 하나의 정지 영상은 여러 세부 단위로 나뉘어질 수 있다. 즉, "11"에 도시된 바와 같이 하나의 정지 영상(picture)은 가로, 세로의 길이가 각각 16 픽셀(pixel)인 다수의 매크로 블럭(macro block)으로 나뉘어질 수 있다. 그리고, 상기 정지 영상은 "12"에 도시된 바와 같이 매크로 블럭의 집합인 슬라이스(slice)로 나뉘어질 수도 있다. 이 때, 하나의 정지 영상은 슬라이스의 집합으로 이루어지는데, 대부분의 경우 하나의 정지 영상은 하나의 슬라이스로 이루어지고(13), 일부 정지 영상의 경우에만 다수의 슬라이스로 이루어진다.
여기서, 상기와 같은 정지 영상을 다수 개 포함하여 이루어지는 동영상에 대한 엔코딩의 기술적 원리에 대하여 살펴보면, 동영상 엔코딩 기술은 화면상의 중요 정보만을 저장하고 육안으로 봤을 때 없어져도 구분하기 힘든 정보를 제거하는 방 식의 공간 엔코딩 기술과, 선행하는 정지 영상과 비교하여 중복되는 부분을 제외하고 변화된 부분만을 저장하는 방식의 시간 엔코딩 기술을 포함한다. 특히, 상기 시간 엔코딩 기술에서는 동영상을 이루는 프레임을 데이터의 종속성 여부에 따라(독립적으로 엔코딩될 수 있는지 아닌지에 따라) 키 프레임 또는 델타 프레임으로 분류할 수 있다. 일반적으로, 하나의 동영상은 다수의 키 프레임들과, 그보다 훨씬 많은 개수의 델타 프레임들을 포함한다.
여기서, 키 프레임(key frame, 즉 intra picture)이란 화면상의 모든 정보를 저장하고 있는 프레임을 말하는 것으로서 엔코딩(또는 디코딩)시 다른 프레임들보다 선행되어 처리되어야 하는(독립적으로 엔코딩/디코딩될 수 있는) 프레임을 말하고, 델타 프레임(delta frame)이란 키 프레임과 비교하여 변화된 부분만을 저장하고 있는 프레임을 말하는 것으로서 키 프레임이 먼저 엔코딩(또는 디코딩)된 후에 엔코딩(또는 디코딩)될 수 있는, 즉 키 프레임의 엔코딩/디코딩 상태에 종속적인(데이터 종속성을 가지는) 프레임을 말한다. 상기 시간 엔코딩 기술에서는, 특정 키 프레임이 엔코딩(또는 디코딩)된 후에 상기 키 프레임을 참조하는 다수의 델타 프레임들이 순차적으로 엔코딩(또는 디코딩)될 수 있으며, 델타 프레임은 자신이 참조하는 프레임의 종류(키 프레임 혹은 델타 프레임) 및 개수(다중 참조일 경우)에 따라 다시 P 픽쳐(Predictive picture)와 B 픽쳐 (Bidirectional picture)로 세분화될 수 있다.
후술되는 도 2를 참조하여, 상기와 같은 동영상에 대한 기본적인 엔코딩 원리 및 종래 기술을 보다 상세히 살펴보기로 한다. 여기서는, 오늘날 보편적으로 사 용되고 있는 시간 엔코딩 기술의 측면에서 설명하기로 한다.
도 2 는 일반적인 동영상 엔코딩 원리에 대한 일실시예 설명도이다.
여기서, 0 프레임은 키 프레임을, 1 프레임 내지 4 프레임은 델타 프레임을 나타낸다. 그리고, 상기 델타 프레임들은 키 프레임 혹은 선행하는 타 델타 프레임 중 하나 이상의 프레임을 참조하여 엔코딩될 수 있다.
도 2에 도시된 바와 같이, 기본적으로 동영상 엔코딩은 데이터 종속성에 따라 순차적으로 이루어진다. 즉, 키 프레임인 0 프레임에 대한 엔코딩이 완료된 후에 상기 엔코딩된 0 프레임을 이용하여 1 프레임에 대한 엔코딩이 시작되고, 상기 1 프레임에 대한 엔코딩이 완료된 후에 2 프레임에 대한 엔코딩이 시작되는 방식으로 이루어진다. 그리고, 4 프레임에 대한 엔코딩은 선행 프레임인 0 프레임 내지 3 프레임에 대한 엔코딩이 완료된 후에 시작된다. 여기서, 다중 참조일 경우, 즉 특정 델타 프레임이 선행하는 프레임을 하나 이상 참조하여 엔코딩되는 경우 선행 프레임들에 대한 엔코딩이 모두 완료된 후에 상기 델타 프레임에 대한 엔코딩이 시작될 수 있다. 예를 들어, 델타 프레임인 2 프레임이 2 개의 프레임, 즉 키 프레임인 0 프레임과 선행하는 델타 프레임인 1 프레임을 모두 참조할 경우 상기 2 프레임에 대한 엔코딩은 0 프레임 및 1 프레임에 대한 엔코딩이 완료된 후에 시작될 수 있다. 상기와 같이 순차적으로 이루어지는 각 프레임에 대한 엔코딩은 기본적으로 각 프레임 사이의 데이터 종속성에 따라 발생하는 것이다.
한편, 스트리밍 서비스를 통하여 사용자에게 제공되는 동영상에 대한 엔코딩 및 디코딩을 보다 효율적으로 수행하기 위하여, 하나의 동영상을 이루는 다수의 정 지 영상 또는 다수의 프레임을 서로 다른 장치(예 : 메인 프로세서)에서 병렬적으로 처리하여 전체 동영상에 대한 엔코딩 및 디코딩 시간을 단축시키기 위한 다양한 종래 기술들이 출시되어 있다.
예를 들면, 키 프레임으로 시작되는 다수 프레임 집합들이 각 집합별로 서로 다른 메인 프로세서에서 처리되도록 구현할 수 있다. 이 경우, 각 집합은 키 프레임으로 시작되므로 타 집합들에 대하여 독립적으로 엔코딩/디코딩이 수행될 수 있다. 그런데, 상기 종래 기술의 경우 사용자 컴퓨터에서의 동영상에 대한 디코딩시 특정 집합에 대한 디코딩을 수행하기 위해서는 상기 집합을 이루는 수많은 개수의 프레임들을 모두 수신할 때까지 사용자(클라이언트) 측에서 오랜 시간 기다려야 하는 문제점이 있었다.
다른 예로, 프레임의 종류에 따라(즉, 키 프레임인지 델타 프레임인지에 따라) 서로 다른 메인 프로세서에서 처리되도록 구현할 수도 있다. 그런데, 이 경우에는 키 프레임에 비하여 델타 프레임의 개수가 월등히 많으므로 키 프레임을 처리하는 메인 프로세서의 사용 효율이 매우 떨어지는 문제점이 있었다.
또 다른 예로, 하나의 정지 영상을 다수의 슬라이스(slice)로 나누어 서로 다른 메인 프로세서에서 처리되도록 구현할 수도 있다. 그런데, 상기 종래 기술의 경우 정지 영상을 다수의 슬라이스로 나누지 못할 경우 상기 기술을 적용할 수 없고, 슬라이스의 개수가 증가함에 따라 각 슬라이스 생성에 따른 오버헤드가 함께 증가하여 전체적인 효율성이 떨어지는 문제점이 있었다. 또한, 상기 종래 기술은 대부분의 정지 영상이 하나의 슬라이스로 이루어지기 때문에 디코딩시 하나의 메인 프로세서만을 사용하게 되는 문제점이 있었다.
즉, 상기와 같은 종래의 멀티미디어 데이터에 대한 처리(예 : 엔코딩/디코딩) 기술은 하나의 멀티미디어 데이터를 다수의 세부 단위로 나누어 병렬 처리함에도 불구하고, 전송 지연으로 인한 사용자 측의 기다림, 메인 프로세서의 사용 효율성 저하 등을 유발시키는 문제점이 있었다. 이에 따라, 상기 종래 기술들은 사용자에게 신속한 실시간/비실시간 스트리밍 서비스를 제공할 수 없는 문제점이 있었다.
본 발명은 상기 문제점을 해결하기 위하여 제안된 것으로, 연속적인 멀티미디어 데이터를 다수 프레임(frame)으로 나누어 파이프라이닝(pipelining)을 이용하여 병렬적으로 처리(예 : 엔코딩/디코딩)하되, 선행 프레임에 대한 종속성에 따라 후행 프레임을 처리하기 위한 파이프라인을 시간차를 두고 연달아 수행하여 선행 프레임에 대한 처리가 완료되지 않은 상황에서도 후행 프레임에 대한 처리가 시작될 수 있도록 함으로써, 보다 효율적으로 실시간/비실시간 멀티미디어 데이터를 처리(예 : 엔코딩/디코딩)하기 위한, 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.
또한, 본 발명은 마스터-슬래이브 모델(master-slave model)을 이용하여 멀티미디어 데이터의 각 프레임별 처리 순서(예 : 엔코딩 또는 디코딩되어야 할 순서)에 따라 순차적으로 특정 프레임을 마스터 프레임으로 선택하여 처리하되, 각 마스터 프레임에 대한 처리가 완료됨에 따라 서로 다른 파이프라인에 의해 병렬적으로 처리되고 있던 다수의 슬래이브 프레임에 대한 처리가 중지되도록 하여 각 처리 단계별(특정 프레임이 마스터 프레임으로 선택된 후에 처리가 완료되기까지) 소요 시간이 일정하도록 함으로써, 실시간 멀티미디어 데이터 서비스를 보장하고, 실시간/비실시간 멀티미디어 데이터에 대한 처리시 메인 프로세서의 자원(resource) 사용을 제어하기 위한, 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 다른 목적이 있다.
또한, 본 발명은 멀티미디어 데이터를 이루는 다수의 프레임에 대한 처리(예 : 엔코딩 또는 디코딩)를 병렬적으로 수행하기 위한 파이프라인의 개수와, 상기 파이프라인을 하드웨어적으로 처리하기 위한 메인 프로세서(CPU : Central Processing Unit)의 개수를 소정 비율(예: 1 대 1, 1.5 대 1)로 구성함으로써, 멀티미디어 데이터 서비스에 대한 실시간 처리를 보장하거나, 비실시간 멀티미디어 데이터의 처리에 소요되는 전체 처리 시간을 최소화하기 위한, 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 또 다른 목적이 있다.
또한, 본 발명은 마스터-슬래이브 모델에 있어서 마스터 프레임에 대한 처리가 조기에 완료되어 상당 부분 수행되어야 할 다수의 슬래이브 프레임에 대한 처리가 다음 처리 단계로 지연되는 것을 방지하기 위하여 마스터 프레임에 대한 처리가 완료되더라도 소정 조건(다수의 슬래이브 프레임 중에서 다음 단계의 마스터 프레임으로 선택될 프레임에 대한 처리가 상당 부분 이상 수행되었을 경우)이 충족될 경우에 해당 처리 단계를 종료함으로써, 실시간 멀티미디어 데이터 서비스를 보다 완벽하게 보장하기 위한, 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 또 다른 목적이 있다.
본 발명의 또 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 장치는, 멀티미디어 데이터 병렬 처리 장치에 있어서, 외부로부터 멀티미디어 데이터를 입력받아 작업 제어수단으로 전달하고, 그에 따른 처리 결과를 상기 작업 제어수단으로부터 전달받음에 따라 외부로 전달하기 위한 입출력 제어수단; 상기 입출력 제어수단으로부터 전달받은 멀티미디어 데이터를 다수의 프레임으로 분할하여 다수의 작업 처리수단에 하나씩 할당하여 계단식 파이프라인 방식으로 각각 병렬적으로 작업하도록 제어하고, 상기 다수의 작업 처리수단 중 특정의 작업 처리수단으로부터 그 처리 결과를 전달받음에 따라 상기 입출력 제어수단으로 전달하고 해당 작업 처리수단에 상기 멀티미디어 데이터 를 이용하여 만든 프레임을 할당하는 과정을 반복 수행하기 위한 상기 작업 제어수단; 및 상기 작업 제어수단의 제어에 따라 할당받은 멀티미디어 데이터의 프레임을 계단식 파이프라인 방식을 이용하여 병렬적으로 각각 처리하여 상기 작업 제어수단으로 각각 전달하기 위한 상기 다수의 작업 처리수단을 포함한다.
한편, 상기 목적을 달성하기 위한 본 발명의 방법은, 멀티미디어 데이터 병렬 처리 방법에 있어서, 외부로부터 멀티미디어 데이터를 입력받는 입력 단계; 상기 입력받은 멀티미디어 데이터를 분할하여 다수의 프레임을 생성하는 프레임 생성 단계; 다수의 계단식 파이프라인을 이용하여 상기 생성한 다수의 프레임을 병렬적으로 처리하는 처리 단계; 및 각 프레임에 대한 처리 결과를 외부로 전달하는 전달 단계를 포함한다.
한편, 본 발명은 대용량 프로세서를 구비한 멀티미디어 데이터 병렬 처리 장치에, 외부로부터 멀티미디어 데이터를 입력받는 입력 기능; 상기 입력받은 멀티미디어 데이터를 분할하여 다수의 프레임을 생성하는 프레임 생성 기능; 다수의 계단식 파이프라인을 이용하여 상기 생성한 다수의 프레임을 병렬적으로 처리하는 처리 기능; 및 각 프레임에 대한 처리 결과를 외부로 전달하는 전달 기능 을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명 이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
먼저, 본 발명에 대한 이하의 일실시예에서는 가장 대표적인 멀티미디어 데이터인 동영상을 일예로 들어 설명하기로 한다. 그리고, 멀티미디어 데이터의 스트리밍 서비스에서 상기 멀티미디어 데이터에 대한 각종 처리 기술 중, 가장 핵심적이라 할 수 있는 엔코딩/디코딩을 일예로 들어 설명하기로 한다. 즉, 이하의 일실시예에서는 본 발명에 따른 멀티미디어 데이터 병렬 처리 장치가 멀티미디어 데이터에 대한 엔코딩과 디코딩을 수행하는 경우를 하나의 실시예로서 설명하나, 본 발명이 이에 한정되는 것이 아님을 명백히 밝혀두는 바이다.
도 3 은 본 발명에 따른 계단식 파이프라인에 대한 일실시예 설명도이다.
도 3에 도시된 바와 같이, 동영상을 이루는 프레임들은 시간차를 두고 연달아 수행되는 다수의(예를 들면, 4개의) 서로 다른 파이프라인에서 병렬적으로 처리된다. 이 때, 1 프레임의 경우 데이터 종속성에 따라 선행 프레임인 0 프레임(키 프레임임)이 처리된 후에 처리될 수 있으나, 0 프레임에 대한 처리가 완료된 후에 1 프레임에 대한 처리가 시작되어야 하는 것은 아니다.
즉, 0 프레임에 대한 처리가 완료되지 않았더라도(예를 들어, 10% 가량만 처리되었더라도) 그 처리 결과를 이용하여 1 프레임에 대한 처리가 시작될 수 있다(물론, 0 프레임에 대한 처리가 완료되기 전까지는 1 프레임에 대한 처리가 완료될 수는 없다). 즉, 0 프레임에 대한 처리가 0 파이프라인에서 수행되고, 이와 병렬적 으로 1 파이프라인에서 상기 1 프레임에 대한 처리가 이루어질 경우, 0 프레임에 대한 처리가 일부 완료됨에 따라 1 프레임에 대한 처리가 시작될 수 있고, 상기 1 프레임에 대한 처리가 일부 완료됨에 따라 후행 프레임인 2 프레임에 대한 처리가 2 파이프라인에서 시작될 수 있다. 그리고, 2 프레임에 대한 처리가 일부 완료됨에 따라 후행 프레임인 3 프레임에 대한 처리가 3 파이프라인에서 시작될 수 있다. 또한, 상기 0 프레임에 대한 처리가 완료됨에 따라 상기 0 파이프라인에는 현재 처리가 시작되지 않은 프레임들 중 순번이 가장 앞선 프레임인 4 프레임이 분배되어 처리가 시작될 수 있다. 이 때, 상기 4 프레임의 선행 프레임인 3 프레임에 대한 처리가 이미 다른 파이프라인, 즉 3 파이프라인에서 시작되었으므로 상기 4 프레임에 대한 처리가 시작되어질 수 있다.
이와 같이, 본 발명에서 계단식 파이프라인이란 동영상을 이루는 프레임들이 다수의 파이프라인에서 병렬적으로 처리되되, 특정 프레임에 대한 처리가 일 파이프라인에서 일부 완료됨에 따라 후행 프레임에 대한 처리가 타 파이프라인에서 시작되는, 즉 각각의 프레임에 대한 처리가 시간차를 두고 연달아 시작되어 병렬적으로 수행되는 방식의 병렬 처리 모델을 말한다.
여기서, 후술되는 도 4를 참조하여 상기와 같은 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치에 대하여 보다 상세히 살펴보기로 한다. 상기 계단식 파이프라인은 여러 가지 방법으로 구현이 가능하나, 여기서는 다중 쓰레드(multi-thread)를 이용하여 구현한 경우를 일예로 들어 설명하기로 한다.
도 4 는 본 발명에 따른 계단식 파이프라인을 이용한 멀티미디어 데이터 병 렬 처리 장치에 대한 일실시예 구성도이다.
도 4에 도시된 바와 같이, 본 발명에 따른 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치는, 작업 제어부(492)로부터 각각 전달받은 프레임의 데이터 종속성 여부를 판단하여 데이터 종속성이 있을 경우 선행 프레임에 대한 처리 결과에 따라 해당 프레임에 대한 처리를 수행하고, 데이터 종속성이 없을 경우 즉시 해당 프레임에 대한 처리를 수행하여 해당 프레임에 대한 처리를 완료함에 따라 상기 작업 제어부(492)로 전달하기 위한 다수의 작업 쓰레드(410, 420, 430), 외부로부터 멀티미디어 데이터(예 : 동영상)를 전달받아 작업 제어부(492)로 전달하고, 상기 작업 제어부(492)로부터 상기 작업 쓰레드(410, 420, 430)에 의해 처리된 결과를 전달받음에 따라 외부로 전달하기 위한 입출력 제어부(491), 및 상기 입출력 제어부(491)로부터 전달받은 멀티미디어 데이터를 분할하여 다수의 프레임을 생성하고, 상기 생성한 프레임들을 다수의 작업 쓰레드(410, 420, 430)에 하나씩 할당(분배)하여 병렬적으로 각 프레임에 대한 처리가 수행되도록 제어하며, 일 작업 쓰레드(410)로부터 해당 프레임에 대한 처리 결과를 전달받음에 따라 이를 상기 입출력 제어부(491)로 전달하여 외부로 전달되도록 하고 상기 일 작업 쓰레드(410)에 새로운 프레임을 할당하는 과정을 반복 수행하기 위한 작업 제어부(492)를 포함한다.
여기서, 상기 각 작업 쓰레드(410, 420, 430)는 상기 작업 제어부(492)로부터 할당받은 프레임의 데이터 종속성 여부를 판단하여 그 결과 및 데이터 종속성이 있을 경우 선행 프레임에 대한 처리 결과를 데이터 처리부(412, 422, 432)로 전달 하기 위한 데이터 종속성 검사부(411, 421, 431), 및 상기 데이터 종속성 검사부(411, 421, 431)로부터 데이터 종속성 검사에 대한 결과를 전달받음에 따라 종속성이 없을 경우 해당 프레임을 즉시 처리하여 작업 제어부(492)로 전달하고, 데이터 종속성이 있을 경우 함께 전달받은 선행 프레임의 처리 결과에 따라 해당 프레임에 대한 처리를 수행하여 상기 프레임에 대한 처리가 완료됨에 따라 상기 작업 제어부(492)로 전달하기 위한 데이터 처리부(412, 422, 432)를 포함한다.
그리고, 상기 작업 제어부(492)는 본 발명에 따른 계단식 파이프라인을 구현하기 위하여 다수의 작업 쓰레드(410, 420, 430)를 생성하고, 멀티미디어 데이터를 분할하여 생성한 다수의 프레임들을 상기 생성한 각각의 작업 쓰레드(410, 420, 430)에 하나씩 할당하여 상기 다수의 프레임들이 병렬적으로 처리되도록 상기 작업 쓰레드(410, 420, 430)를 제어한다. 여기서, 각 작업 쓰레드(410, 420, 430)에 할당된 각각의 프레임들은 데이터 종속성에 따라 시간차를 두고 해당 작업 쓰레드(410, 420, 430)에 의해 연달아 처리되기 시작한다.
즉, 상기 작업 제어부(492)는 병렬적으로 동작하는 각 작업 쓰레드(410, 420, 430)에 대한 전반적인 제어를 담당함과 동시에, 입출력 제어부(491)로부터 전달받은 멀티미디어 데이터를 분할하여 다수의 프레임(예 : 프레임 0, 프레임 1, 프레임 2,..., 프레임 N-1 등)을 생성하고, 상기 생성한 프레임을 각 작업 쓰레드(410, 420, 430)에 하나씩 할당하여 상기 할당한 다수의 프레임들이 병렬적으로 처리되도록 제어하며, 일 작업 쓰레드(410)로부터 특정 프레임에 대한 처리 결과를 전달받음에 따라 상기 작업 쓰레드(410)에 새로운 프레임을 할당하고 상기 전달받 은 처리 결과를 입출력 제어부(491)로 전달하여 외부로 전달되도록 하는 과정을 반복 수행한다. 여기서, 작업 쓰레드(410, 420, 430)는 작업 제어부(492)의 제어에 따라 하나 이상 다수 개로 생성될 수 있다.
그리고, 입출력 제어부(491)는 외부로부터 멀티미디어 데이터(예 : 동영상)를 전달받음에 따라 이를 작업 제어부(492)로 전달하고, 작업 쓰레드(410, 420, 430)에 의한 처리 결과를 상기 작업 제어부(492)로부터 전달받음에 따라 이를 외부로 출력한다.
그리고, 다수의 작업 쓰레드(410, 420, 430)는 상기 작업 제어부(492)의 제어에 따라 실제적인 프레임에 대한 처리 작업, 즉 프레임에 대한 엔코딩/디코딩 작업을 병렬적으로 각각 수행한다. 즉, 작업 제어부(492)로부터 프레임을 하나씩 할당받음에 따라 데이터 종속성 검사부(411, 421, 431)가 상기 각각 할당받은 프레임에 대한 데이터 종속성 여부를 판단하여 그 결과를 데이터 처리부(412, 422, 432)로 전달하고, 상기 데이터 처리부(412, 422, 432)가 그 결과에 따라 데이터 종속성이 없을 경우 해당 프레임을 즉시 처리하여 작업 제어부(492)로 전달하고, 데이터 종속성이 있을 경우 상기 데이터 종속성 검사부(411, 421, 431)로부터 전달받는 선행 프레임에 대한 처리 결과에 따라 해당 프레임에 대한 처리를 수행한다.
여기서, 상기 데이터 처리부(412, 422, 432)는 데이터 종속성 검사부(411, 421, 431)와 수시로 통신하여 해당 프레임에 대한 작업 진행 여부를 결정하게 된다. 그리고, 상기 데이터 종속성 검사부(411, 421, 431)는 해당 프레임에 데이터 종속성이 있을 경우 선행 프레임을 처리하는 작업 쓰레드(410, 420, 430)로부터 상 기 선행 프레임에 대한 처리 결과를 전달받기 전까지 작업을 일시적으로 중단한다.
예를 들어, 프레임 1의 경우 선행 프레임인 프레임 0에 종속적이므로, 제2 작업 쓰레드(420)의 제2 데이터 종속성 검사부(421)는 상기 프레임 0을 처리하는 제1 작업 쓰레드(410)의 제1 데이터 처리부(412)로부터 그 처리 결과를 전달받기 전까지 작업을 중단하고 있다가, 그 처리 결과를 전달받음에 따라 이를 제2 데이터 처리부(422)로 전달하여 프레임 1에 대한 처리 작업(엔코딩 또는 디코딩 작업)이 수행될 수 있도록 한다.
상기와 같은 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치는 다수의 파이프라인을 이용하여 다수 프레임에 대한 처리를 병렬적으로 수행함으로써, 보다 효율적으로 멀티미디어 데이터에 대한 각종 처리, 예를 들어 엔코딩/디코딩을 수행할 수 있는 효과가 있다.
한편, 이하의 일실시예에서는 상기 계단식 파이프라인을 기본으로 하여 실시간 스트리밍 서비스(예 : 인터넷 방송)의 실시간 보장을 위하여, 혹은 비실시간 스트리밍 서비스(예 : 주문형 비디오 서비스)의 효율적인 데이터 처리(예 : 엔코딩/디코딩)를 위하여 각각의 경우에 또는 양쪽의 경우에 적용되어질 수 있는 기술적 모델에 관하여 보다 상세히 살펴보기로 한다.
도 5 는 본 발명에 따른 마스터-슬래이브 모델에 대한 일실시예 설명도이다.
여기서는, 상기 마스터-슬래이브 모델을 이용하여 멀티미디어 데이터를 엔코딩하여 사용자에게 서비스하는 측면에서 설명하기로 한다.
멀티미디어 데이터의 실시간 서비스를 보장하기 위해서는, 멀티미디어 데이 터에 대한 엔코딩 과정 이외에 엔코딩된 데이터의 전송, 다음 차례의 영상에 대한 캡쳐 등과 같은 각종 관련 동작들이 함께 수행되어야한다. 상기 마스터-슬래이브 모델은 서로 다른 파이프라인에서 각각 처리되는 다수의 프레임들 중에서 특정 프레임을 마스터 프레임으로 선택하고, 상기 마스터 프레임에 대한 처리가 완료됨에 따라 상기 마스터 프레임 외에 엔코딩이 완료되지 않은 다수의 슬래이브 프레임에 대한 엔코딩을 그 다음 엔코딩 단계로 지연시켜 해당 엔코딩 단계를 종료시키는 방식(각 파이프라인을 종료하는 것은 아님)으로 전체 멀티미디어 데이터에 대한 엔코딩 과정을 제어함으로써, 각 엔코딩 단계 사이에 전송, 캡쳐 등과 같은 다른 관련 동작들이 수행될 수 있도록 한다. 여기서, 마스터 프레임에 대한 처리가 시작되면 모든 슬래이브 프레임에 대한 처리가 시작된다. 그리고, 상기 마스터 프레임에 대한 처리가 완료되면 각 슬래이브 프레임에 대한 처리는 모두 중지되고, 상기 처리가 완료되지 못한 슬래이브 프레임의 나머지 부분에 대한 처리는 다음 엔코딩 단계로 지연된다.
0 파이프라인부터 3 파이프라인까지 4 개의 파이프라인을 이용하여 멀티미디어 데이터를 엔코딩하는 경우를 예로 들어 설명하면, 0 프레임이 마스터 프레임으로 선택됨에 따라 그 외 프레임들, 즉 서로 다른 파이프라인에서 병렬적으로 엔코딩되는 1 프레임 내지 3 프레임은 슬래이브 프레임이 된다. 여기서, 상기 프레임들 사이의 데이터 종속성에 따라 0 프레임에 대한 엔코딩이 시작된 후 시간차를 두고 연달아 1 프레임, 2 프레임, 3 프레임에 대한 엔코딩이 순차적으로 이루어진다.
첫 번째 엔코딩 단계에서, 마스터 프레임인 0 프레임에 대한 엔코딩이 완료 됨에 따라 모든 슬래이브 프레임, 즉 1 프레임 내지 3 프레임에 대한 엔코딩이 일시적으로 중지되고, 각각의 슬래이브 프레임들에 대한 엔코딩은 다음 단계로 지연된다. 그리고, 0 프레임 다음 순서의 프레임인 1 프레임이 마스터 프레임으로 선택된다.
이후, 두 번째 엔코딩 단계에서 마스터 프레임인 1 프레임에 대한 엔코딩이 완료됨에 따라 모든 슬래이브 프레임, 즉 2 프레임 내지 4 프레임에 대한 엔코딩이 일시적으로 중지되고, 각각의 슬래이브 프레임들에 대한 엔코딩은 그 다음 단계로 지연된다. 그리고, 1 프레임 다음 순서의 프레임인 2 프레임이 마스터 프레임으로 선택된다.
이와 같이, 순차적으로 특정 프레임을 마스터 프레임으로 선택하고, 상기 마스터 프레임에 대한 엔코딩의 시작 시점 및 완료 시점에 따라 슬래이브 프레임에 대한 엔코딩의 시작 시점 및 중지 시점을 결정하여 각 엔코딩 단계를 제어함으로써, 멀티미디어 데이터의 실시간 처리를 보장할 수 있다. 즉, 엔코딩 과정의 각 단계를 제어함으로써 엔코딩 이외의 다른 서비스 관련 동작들이 함께 수행되어 사용자의 요구에 실시간으로 응답할 수 있도록 한다.
상기와 같은 마스터-슬래이브 모델은 실시간 스트리밍 서비스 뿐만 아니라 비실시간 스트리밍 서비스에도 동일하게 적용되어질 수 있다.
도 6 은 본 발명에 따른 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 방법에 대한 일실시예 흐름도이다.
먼저, 입출력 제어부(491)는 외부로부터 멀티미디어 데이터를 입력받는다 (601). 여기서, 상기 멀티미디어 데이터는 실시간 스트리밍 데이터와 비실시간 스트리밍 데이터를 포함한다.
이후, 작업 제어부(492)는 상기 입출력 제어부(491)로부터 멀티미디어 데이터를 전달받음에 따라 상기 멀티미디어 데이터를 분할하여 다수의 프레임을 생성한다(602).
그리고, 상기 작업 제어부(492)는 다수의 프레임을 병렬적으로 처리하기 위하여 다수의 작업 쓰레드(410, 420, 430)를 생성한다. 여기서, 상기 작업 제어부(492)는 각 작업 쓰레드(410, 420, 430)에 대한 초기화 작업을 수행한다.
그리고, 상기 작업 제어부(492)는 상기 생성한 각 작업 쓰레드(410, 420, 430)에 다수의 프레임을 하나씩 분배한다(604). 예를 들어, 제1 작업 쓰레드(410)에는 프레임 0, 제2 작업 쓰레드(420)에는 프레임 1, 제3 작업 쓰레드(430)에는 프레임 2를 분배하는 방식으로 수행할 수 있다. 여기서, 각 프레임 사이에는 데이터 종속성이 존재하므로, 프레임 0에 대한 처리가 시작된 후 그 처리 결과에 따라 프레임 1에 대한 처리가 시작될 수 있고, 상기 프레임 1에 대한 처리가 시작된 후 프레임 2에 대한 처리가 시작될 수 있다. 즉, 각 프레임에 대한 처리는 시간차를 두고 연달아 시작될 수 있다.
그리고, 상기 작업 제어부(492)는 마스터 프레임 및 상기 마스터 프레임을 처리할 마스터 쓰레드를 선택한다(605). 예를 들면, 프레임 0을 마스터 프레임으로, 제1 작업 쓰레드(410)를 마스터 쓰레드로 각각 선택할 수 있다. 여기서, 마스터 쓰레드는 마스터 프레임에 대한 처리를 할당받은 해당 쓰레드를 말한다. 그리 고, 마스터 프레임 및 마스터 쓰레드가 선택됨에 따라 그 외 다수의 프레임 및 해당 쓰레드는 각각 슬래이브 프레임 및 슬래이브 쓰레드가 된다. 즉, 프레임 1, 프레임 2 등은 슬래이브 프레임이 되고, 제2 작업 쓰레드(420), 제3 작업 쓰레드(430) 등은 슬래이브 쓰레드가 된다.
이후, 다수의 작업 쓰레드(410, 420, 430)는 병렬적으로 동작하여 각각 해당 프레임을 처리한다(606).
이를 보다 상세히 살펴보면, 작업 제어부(492)로부터 키 프레임인 프레임 0을 할당받은 제1 작업 쓰레드(410)의 제1 데이터 종속성 검사부(411)는 데이터 종속성을 검사하여 데이터 종속성이 존재하지 않음에 따라 그 결과를 제1 데이터 처리부(412)로 전달하고, 상기 제1 데이터 처리부(412)는 프레임 0에 대한 처리를 완료하여 상기 작업 제어부(492)로 그 결과(엔코딩 또는 디코딩된 프레임)를 전달한다.
또한, 상기 작업 제어부(492)로부터 델타 프레임인 프레임 1을 할당받은 제2 작업 쓰레드(420)의 제2 데이터 종속성 검사부(421)는 데이터 종속성을 검사하여 프레임 0에 대한 데이터 종속성이 존재함에 따라 상기 프레임 0에 대한 처리 결과를 전달받기 전까지 잠시 작업을 중단한다. 여기서, 상기 프레임 0에 대한 처리 결과란 처리가 완료된 최종 결과물을 말하는 것이 아니라, 프레임 0의 일부분에 대한 처리 결과를 말한다. 이후, 상기 제2 데이터 종속성 검사부(421)는 프레임 0에 대한 처리 결과를 전달받음에 따라 이를 제2 데이터 처리부(422)로 전달하고, 상기 제2 데이터 처리부(422)는 프레임 0에 대한 처리 결과를 이용하여 프레임 1에 대한 처리를 시작한다. 그리고, 프레임 1에 대한 처리가 완료됨에 따라 작업 제어부(492)로 전달한다. 여기서, 상기 제2 데이터 종속성 검사부(421)는 제1 작업 쓰레드(410)의 제1 데이터 처리부(412)와 수시로 통신하여 프레임 0에 대한 처리 결과를 전달받아 제2 데이터 처리부(422)로 계속 전달한다.
또한, 상기 작업 제어부(492)로부터 델타 프레임인 프레임 2을 할당받은 제3 작업 쓰레드(430)의 제3 데이터 종속성 검사부(431)는 데이터 종속성을 검사하여 프레임 1에 대한 데이터 종속성이 존재함에 따라 상기 프레임 1에 대한 처리 결과를 전달받기 전까지 잠시 작업을 중단한다. 이후, 상기 제3 데이터 종속성 검사부(431)는 프레임 1에 대한 처리 결과를 제2 작업 쓰레드(420)의 제2 데이터 처리부(422)로부터 전달받음에 따라 이를 제3 데이터 처리부(432)로 전달하고, 상기 제3 데이터 처리부(432)는 프레임 1에 대한 처리 결과를 이용하여 프레임 2에 대한 처리를 시작한다. 그리고, 프레임 2에 대한 처리가 완료됨에 따라 작업 제어부(492)로 전달한다.
이와 같이, 다수의 작업 쓰레드(410, 420, 430)가 병렬적으로 동작하여 해당 프레임을 각각 처리하되, 상기 프레임 사이의 데이터 종속성에 따라 각 프레임에 대한 처리의 시작은 순차적으로 이루어지고, 각 작업 쓰레드(410, 420, 430)는 해당 프레임에 대한 처리를 완료함에 따라 작업 제어부(492)로 전달한다.
이후, 작업 제어부(492)는 마스터 프레임에 대한 처리가 완료되었는지의 여부를 판단한다(607).
상기 판단 결과(607), 마스터 프레임에 대한 처리가 완료되지 않았을 경우에 는 각 작업 쓰레드(410, 420, 430)는 병렬적으로 동작하여 각각 해당 프레임을 처리하는 과정(606)으로 진행하고, 마스터 프레임에 대한 처리가 완료되었을 경우에는 상기 마스터 프레임 외의 다수 슬래이브 프레임에 대한 처리를 중지시킨다(608).
그리고, 상기 작업 제어부(492)는 마스터 쓰레드로부터 처리 완료된 마스터 프레임을 전달받음에 따라 입출력 제어부(491)로 전달하고, 상기 입출력 제어부(491)는 상기 작업 제어부(492)로부터 전달받은 처리 결과를 외부로 전달한다(609). 즉, 마스터 프레임인 프레임 0에 대한 처리를 완료함에 따라 이를 외부로 전달한다.
그리고, 상기 작업 제어부(492)는 전체 멀티미디어 데이터에 대한 처리가 완료되었는지의 여부를 판단한다(610).
상기 판단 결과(610), 전체 멀티미디어 데이터에 대한 처리가 완료되었을 경우에는 종료하고, 전체 멀티미디어 데이터에 대한 처리가 완료되지 않았을 경우에는 마스터 프레임 및 마스터 쓰레드를 선택하는 과정(605)으로 진행한다.
이를 보다 상세히 살펴보면, 작업 제어부(492)는 각 프레임을 순차적으로 마스터 프레임으로 선택한다. 즉, 프레임 0에 대한 처리가 완료됨에 따라 상기 작업 제어부(492)는 프레임 1을 마스터 프레임으로 선택하고, 상기 프레임 1의 해당 쓰레드인 제2 작업 쓰레드(420)를 마스터 쓰레드로 선택한다. 여기서, 프레임 0을 처리한 제1 작업 쓰레드(410)에는 그 다음 순서의 프레임(즉, 프레임 N-1)이 새로이 할당된다.
한편, 프레임이 하나 이상의 프레임을 참조할 경우(다중 참조일 경우) 각 작업 쓰레드의 데이터 종속성 검사부에서의 동작을 도 7을 참조하여 살펴보면 다음과 같다.
도 7 은 본 발명에 따른 멀티미디어 데이터 병렬 처리 장치에서의 데이터 종속성 검사 과정에 대한 일실시예 설명도이다.
도 7에 도시된 바와 같이, 현재 제1 작업 쓰레드는 다른 작업 쓰레드에 종속되어 있지 않다. 즉, 제1 작업 쓰레드는 다른 작업 쓰레드의 처리 결과를 이용하지 않고도 해당 프레임에 대한 처리를 수행할 수 있다. 반면에, 제2 작업 쓰레드는 제1 작업 쓰레드에 종속적이고, 제3 작업 쓰레드는 제1 및 제2 작업 쓰레드에 종속적이며, 제4 작업 쓰레드는 제1 및 제2 작업 쓰레드에 종속적이다.
여기서, 제3 작업 쓰레드 및 제4 작업 쓰레드의 경우 자신이 참조하고 있는 하나 이상의 프레임에 대한 처리 결과를 각각 전달받아야 해당 프레임에 대한 처리를 시작할 수 있다. 예를 들면, 상기 제4 작업 쓰레드의 데이터 종속성 검사부는 제1 작업 쓰레드의 데이터 처리부 및 제2 작업 쓰레드의 데이터 처리부와 수시로 통신하여 각 프레임에 대한 처리 결과를 전달받음에 따라 제4 작업 쓰레드의 데이터 처리부로 전달하여 해당 프레임에 대한 처리가 시작될 수 있도록 한다. 여기서, 참조하는 선행 프레임에 대한 처리 결과를 각각 전달받지 못하였을 경우에는 잠시 작업을 중단하게 된다.
상기와 같은 일실시예에서는, 본 발명에 따른 계단식 파이프라인을 다중 쓰레드(multithread)를 이용하여 구현한 경우를 일예로 들어 설명하였으나, 이를 하 드웨어적으로 또는 다른 방법으로도 구현 가능함은 자명하다.
한편, 하기에서는 멀티미디어 데이터의 실시간 스트리밍 서비스를 보다 완벽하게 보장하기 위하여, 혹은 비실시간 스트리밍 서비스에서 멀티미디어 데이터의 처리 효율을 극대화하기 위한 방법을 제시하도록 한다.
먼저, 멀티미디어 데이터의 실시간 스트리밍 서비스를 보다 완벽하게 보장하기 위해서는, 마스터-슬래이브 모델에서 각 파이프라인 및 메인 프로세서의 개수를 일 대 일로 대응시켜 마스터 프레임에 대한 처리가 즉각적으로 수행될 수 있도록 보장하여야 한다. 즉, 마스터-슬래이브 모델에서는 마스터 프레임에 대한 처리의 시작 시점 및 완료 시점에 따라 각 엔코딩 단계의 시작 및 종료가 결정되어지므로, 상기 마스터 프레임에 대한 처리가 항상 하나의 메인 프로세서를 점유하여 수행될 수 있도록 함으로써, 마스터 프레임에 대한 처리가 지연되지 않도록 하는 것이 중요하다.
또한, 멀티미디어 데이터의 실시간 스트리밍 서비스를 보장하기 위해서는, 마스터 프레임에 대한 처리가 너무 빨리 완료되어 병렬적으로 처리되고 있던 다수의 슬래이브 프레임에 대한 처리가 다음 엔코딩 단계로 너무 많이 지연되는 것을 방지하는 것이 중요하다. 이를 위하여, 마스터 프레임에 대한 처리가 완료되었더라도 다음 엔코딩 단계에서 마스터 프레임이 될 슬래이브 프레임에 대한 처리가 상당 부분 이상 진행되었을 경우에 해당 엔코딩 단계를 종료한다. 그런데, 매 엔코딩 단계마다 다음 단계에서 마스터 프레임이 될 슬래이브 프레임의 처리 현황을 파악하는 것은 소모적일 수 있으므로, 편의상 첫 번째 슬래이브 프레임을 기준으로 소정 기준식을 설정하여 특정 엔코딩 단계에서 마스터 프레임에 대한 처리가 완료되더라도 상기 소정 기준식이 충족될 경우에만 해당 엔코딩 단계를 종료한다. 소정 기준식은 다음과 같다.
x = a * (b - 1) / b
(x : 첫 번째 슬래이브 프레임에서 처리 완료된 총 매크로 블럭수,
a : 첫 번째 슬래이브 프레임의 총 매크로 블럭수,
b : 총 메인 프로세서의 개수)
한편, 비실시간 스트리밍 서비스에서 멀티미디어 데이터의 처리(예 : 엔코딩/디코딩) 효율을 극대화하기 위해서는, 다수의 프레임을 병렬적으로 처리하기 위한 파이프라인의 개수보다, 상기 파이프라인을 하드웨어적으로 처리하기 위한 메인 프로세서의 개수를 보다 적게 하여 멀티미디어 데이터의 처리에 소요되는 총 시간을 최소화한다. 예를 들면, 파이프라인과 메인 프로세서의 비율을 "1.5 : 1" 또는 "2 : 1"로 구성할 수 있다(여기서, 상기 비율은 통계적으로 가장 효율적인 비율을 참조한 것으로 언제든지 변경될 수 있다). 즉, 실시간으로 영상을 캡쳐하여 그에 대한 엔코딩을 수행하고 사용자 컴퓨터로 상기 엔코딩된 데이터를 전송해야하는 실시간 스트리밍 서비스와는 달리, 비실시간 스트리밍 서비스의 경우, 최소한의 시간 내에 최대한 많은 양의 멀티미디어 데이터를 미리 엔코딩하여 둔 후에 멀티미디어 데이터 서비스를 사용자로부터 요구받는 즉시 전송하는 것이 중요하므로, 파이프라인의 개수를 메인 프로세서의 개수 보다 많게 하여 하나의 메인 프로세서에서 다수 파이프라인이 동시에 수행되도록 하는 것이 바람직하다.
상기의 일실시예에서는 멀티미디어 데이터 중 대표적이라 할 수 있는 동영상을 일예로 들어 설명하였으나, 음성, 애니메이션 등과 같은 다양한 종류의 멀티미디어 데이터에 본 발명에 따른 계단식 파이프라인을 이용한 병렬 처리 장치 및 그 방법을 두루 적용할 수 있음은 자명하다.
또한, 상기 일실시예에서는 엔코딩/디코딩을 일예로 들었으나 그 외 다른 멀티미디어 데이터 처리 기술에 본 발명을 적용시키는 것 역시 가능함은 자명하다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
상기와 같은 본 발명은, 연속적인 멀티미디어 데이터를 다수의 프레임으로 나누어 여러 파이프라인에서 병렬적으로 처리함으로써, 멀티미디어 데이터의 처리(예 : 엔코딩/디코딩) 속도를 향상시킬 수 있는 효과가 있다.
또한, 본 발명은 여러 파이프라인을 시간차를 두고 연달아 수행하여 선행 프레임에 대한 처리가 완료되지 않은 상황에서도 상기 선행 프레임을 참조하는 후행 프레임에 대한 처리가 시작될 수 있도록 함으로써, 보다 효율적으로 멀티미디어 데이터에 대한 처리를 수행할 수 있는 효과가 있다.
또한, 본 발명은 마스터-슬래이브 모델을 이용하여 각 마스터 프레임에 대한 처리 시작 시점 및 완료 시점을 기준으로 전체 처리 과정을 단계별로 나누어 각 단계별 소요 시간 및 소요 자원이 일정하도록 유지함으로써, 사용자에게 보다 신속한 실시간 멀티미디어 데이터 스트리밍 서비스를 제공하고, 메인 프로세서의 사용을 효과적으로 제어할 수 있는 효과가 있다.
또한, 본 발명은 다수 프레임을 병렬적으로 처리하기 위한 파이프라인의 개수와, 상기 파이프라인을 하드웨어적으로 처리하기 위한 메인 프로세서의 개수를 소정 비율이 되도록 구성함으로써, 상기 소정 비율에 따라 멀티미디어 데이터 서비스의 실시간 처리를 보장하거나, 시간 및 자원 사용 측면에서 보다 효율적으로 멀티미디어 데이터에 대한 처리(예 : 엔코딩/디코딩)를 수행할 수 있는 효과가 있다.
또한, 본 발명은 마스터 슬래이브 모델에 있어서 마스터 프레임에 대한 처리(예 : 엔코딩/디코딩)가 조기 완료되더라도 소정 조건이 충족되는 경우에만 해당 단계가 종료되도록 하여 상기 마스터 프레임과 동시에 처리되고 있던 다수의 슬래 이브 프레임에 대한 처리가 다음 단계로 너무 많이 지연되는 것을 방지함으로써, 각 단계별 소요 시간 및 소요 자원이 일정하도록 유지할 수 있는 효과가 있다. 이로써, 멀티미디어 데이터 서비스의 실시간 처리를 보다 완벽하게 보장할 수 있는 효과가 있다.

Claims (20)

  1. 멀티미디어 데이터 병렬 처리 장치에 있어서,
    외부로부터 멀티미디어 데이터를 입력받아 작업 제어수단으로 전달하고, 그에 따른 처리 결과를 상기 작업 제어수단으로부터 전달받음에 따라 외부로 전달하기 위한 입출력 제어수단;
    상기 입출력 제어수단으로부터 전달받은 멀티미디어 데이터를 다수의 프레임으로 분할하여 다수의 작업 처리수단에 하나씩 할당하여 계단식 파이프라인 방식으로 각각 병렬적으로 작업하도록 제어하고, 상기 다수의 작업 처리수단 중 특정의 작업 처리수단으로부터 그 처리 결과를 전달받음에 따라 상기 입출력 제어수단으로 전달하고 해당 작업 처리수단에 상기 멀티미디어 데이터를 이용하여 만든 프레임을 할당하는 과정을 반복 수행하기 위한 상기 작업 제어수단; 및
    상기 작업 제어수단의 제어에 따라 할당받은 멀티미디어 데이터의 프레임을 계단식 파이프라인 방식을 이용하여 병렬적으로 각각 처리하여 상기 작업 제어수단으로 각각 전달하기 위한 상기 다수의 작업 처리수단
    을 포함하는 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치.
  2. 제 1 항에 있어서,
    상기 작업 제어수단은,
    상기 다수의 작업 처리수단에서 병렬적으로 처리되는 프레임들 중, 특정 프레임을 마스터 프레임으로 선택하고 그 외 다수의 프레임들을 슬래이브 프레임으로 선택하여 상기 마스터 프레임에 대한 처리가 완료됨에 따라 상기 슬래이브 프레임에 대한 처리를 일괄 중지시켜 해당 처리 단계를 종료하고 상기 슬레이브 프레임에 대한 처리를 다음 처리 단계로 지연시켜 각 처리 단계의 시작 및 종료를 제어하는 것을 특징으로 하는 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치.
  3. 제 2 항에 있어서,
    상기 작업 제어수단은,
    상기 마스터 프레임에 대한 처리가 완료되더라도 소정 조건이 충족되는 경우에 해당 처리 단계를 종료하는 것을 특징으로 하는 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치.
  4. 제 3 항에 있어서,
    상기 소정 조건은,
    아래의 (수학식 1)과 같은 것을 특징으로 하는 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치.
    (수학식 1)
    x = a * (b - 1) / b
    (x : 첫 번째 슬래이브 프레임에서 처리 완료된 총 매크로 블럭수,
    a : 첫 번째 슬래이브 프레임의 총 매크로 블럭수,
    b : 총 메인 프로세서의 개수)
  5. 제 2 항에 있어서,
    상기 작업 제어수단이 특정 프레임을 마스터 프레임으로 선택하는 과정은,
    상기 입출력 제어수단으로부터 전달받은 멀티미디어 데이터를 분할하여 생성한 프레임의 각 처리 순서에 따라 순차적으로 해당 프레임을 마스터 프레임으로 선택하는 것을 특징으로 하는 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 계단식 파이프라인은,
    메인 프로세서와 일 대 일로 서로 상응하여 매칭되는 것을 특징으로 하는 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치.
  7. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 다수의 작업 처리수단은,
    상기 작업 제어수단으로부터 각각 할당받은 프레임을 계단식 파이프라인 방식을 이용하여 병렬적으로 처리하되, 데이터 종속성이 존재함에 따라 참조 프레임에 대한 처리 결과를 수시로 전달받아 해당 프레임에 대한 처리를 수행하여 상기 참조 프레임에 대한 처리가 완료되지 않은 상황에서 해당 프레임에 대한 처리를 시작하는 것을 특징으로 하는 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치.
  8. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 다수의 작업 처리수단은,
    상기 작업 제어수단으로부터 각각 할당받은 프레임에 대한 데이터 종속성 여부를 검사하여 데이터 종속성이 존재함에 따라 참조 프레임에 대한 처리 결과를 상기 참조 프레임에 대한 처리를 수행하는 데이터 처리수단으로부터 수시로 전달받아 해당 데이터 처리수단으로 전달하기 위한 다수의 데이터 종속성 검사수단; 및
    상기 해당 데이터 종속성 검사수단으로부터 상기 참조 프레임에 대한 처리 결과를 수시로 전달받음에 따라 해당 프레임에 대한 처리를 수행하기 위한 다수의 데이터 처리수단
    을 포함하는 것을 특징으로 하는 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치.
  9. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 계단식 파이프라인은,
    메인 프로세서와 1.5 대 1의 비율로 서로 상응하여 매칭되는 것을 특징으로 하는 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치.
  10. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 계단식 파이프라인은,
    메인 프로세서와 2 대 1의 비율로 서로 상응하여 매칭되는 것을 특징으로 하는 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 장치.
  11. 멀티미디어 데이터 병렬 처리 방법에 있어서,
    외부로부터 멀티미디어 데이터를 입력받는 입력 단계;
    상기 입력받은 멀티미디어 데이터를 분할하여 다수의 프레임을 생성하는 프레임 생성 단계;
    다수의 계단식 파이프라인을 이용하여 상기 생성한 다수의 프레임을 병렬적으로 처리하는 처리 단계; 및
    각 프레임에 대한 처리 결과를 외부로 전달하는 전달 단계
    를 포함하는 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 방법.
  12. 제 11 항에 있어서,
    상기 처리 단계는,
    다수의 파이프라인에서 병렬적으로 처리되는 다수의 프레임들 중, 특정 프레임을 마스터 프레임으로 선택하고 그 외 다수의 프레임들을 슬래이브 프레임으로 선택하여 상기 마스터 프레임에 대한 처리가 완료됨에 따라 상기 슬래이브 프레임에 대한 처리를 일괄 중지시켜 해당 처리 과정을 종료하고 상기 슬레이브 프레임에 대한 처리를 다음 처리 과정으로 지연시켜 각 처리 과정의 시작 및 종료를 제어하는 것을 특징으로 하는 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 방법.
  13. 제 12 항에 있어서,
    상기 처리 단계는,
    상기 마스터 프레임에 대한 처리가 완료되더라도 소정 조건이 충족되는 경우에 해당 처리 과정을 종료하는 것을 특징으로 하는 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 방법.
  14. 제 13 항에 있어서,
    상기 소정 조건은,
    아래의 (수학식 1)과 같은 것을 특징으로 하는 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 방법.
    (수학식 1)
    x = a * (b - 1) / b
    (x : 첫 번째 슬래이브 프레임에서 처리 완료된 총 매크로 블럭수,
    a : 첫 번째 슬래이브 프레임의 총 매크로 블럭수,
    b : 총 메인 프로세서의 개수)
  15. 제 12 항에 있어서,
    상기 처리 단계에서 특정 프레임을 마스터 프레임으로 선택하는 과정은,
    상기 입력받은 멀티미디어 데이터를 분할하여 생성한 프레임의 각 처리 순서에 따라 순차적으로 해당 프레임을 마스터 프레임으로 선택하는 것을 특징으로 하 는 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 방법.
  16. 제 11 항 내지 제 15 항 중 어느 한 항에 있어서,
    상기 계단식 파이프라인은,
    메인 프로세서와 일 대 일로 서로 상응하여 매칭되는 것을 특징으로 하는 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리 방법.
  17. 제 11 항 내지 제 15 항 중 어느 한 항에 있어서,
    상기 처리 단계는,
    각 파이프라인에 할당된 프레임을 병렬적으로 처리하되, 특정 프레임이 서로 다른 파이프라인에서 처리되는 타 프레임에 대하여 데이터 종속적임에 따라 상기 참조 프레임에 대한 처리 결과를 수시로 이용하여 상기 특정 프레임에 대한 처리가 수행되도록 하여 상기 참조 프레임에 대한 처리가 완료되지 않은 상황에서 상기 특정 프레임에 대한 처리가 시작되도록 하는 것을 특징으로 하는 계단식 파이프라인을 이용한 멀티미디어 데이터 처리 방법.
  18. 제 11 항 내지 제 15 항 중 어느 한 항에 있어서,
    상기 계단식 파이프라인은,
    메인 프로세서와 1.5 대 1의 비율로 서로 상응하여 매칭되는 것을 특징으로 하는 계단식 파이프라인을 이용한 멀티미디어 데이터 처리 방법.
  19. 제 11 항 내지 제 15 항 중 어느 한 항에 있어서,
    상기 계단식 파이프라인은,
    메인 프로세서와 2 대 1의 비율로 서로 상응하여 매칭되는 것을 특징으로 하는 계단식 파이프라인을 이용한 멀티미디어 데이터 처리 방법.
  20. 대용량 프로세서를 구비한 멀티미디어 데이터 병렬 처리 장치에,
    외부로부터 멀티미디어 데이터를 입력받는 입력 기능;
    상기 입력받은 멀티미디어 데이터를 분할하여 다수의 프레임을 생성하는 프레임 생성 기능;
    다수의 계단식 파이프라인을 이용하여 상기 생성한 다수의 프레임을 병렬적으로 처리하는 처리 기능; 및
    각 프레임에 대한 처리 결과를 외부로 전달하는 전달 기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020040081012A 2004-10-11 2004-10-11 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리장치 및 그 방법 Expired - Lifetime KR100637838B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040081012A KR100637838B1 (ko) 2004-10-11 2004-10-11 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040081012A KR100637838B1 (ko) 2004-10-11 2004-10-11 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20060032009A true KR20060032009A (ko) 2006-04-14
KR100637838B1 KR100637838B1 (ko) 2006-10-23

Family

ID=37141522

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040081012A Expired - Lifetime KR100637838B1 (ko) 2004-10-11 2004-10-11 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR100637838B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100788500B1 (ko) * 2006-07-14 2007-12-24 엠텍비젼 주식회사 다단 파이프라인 구조의 정점 처리 장치 및 그 방법
CN112529763A (zh) * 2020-12-16 2021-03-19 航天科工微电子系统研究院有限公司 基于软硬耦合的图像处理系统及跟瞄系统
US11307893B2 (en) 2020-03-25 2022-04-19 TmaxSoft Co., Ltd. Pipelining for step input dataset and output dataset

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100788500B1 (ko) * 2006-07-14 2007-12-24 엠텍비젼 주식회사 다단 파이프라인 구조의 정점 처리 장치 및 그 방법
US11307893B2 (en) 2020-03-25 2022-04-19 TmaxSoft Co., Ltd. Pipelining for step input dataset and output dataset
CN112529763A (zh) * 2020-12-16 2021-03-19 航天科工微电子系统研究院有限公司 基于软硬耦合的图像处理系统及跟瞄系统

Also Published As

Publication number Publication date
KR100637838B1 (ko) 2006-10-23

Similar Documents

Publication Publication Date Title
RU2771008C1 (ru) Способ и устройство для обработки задач на основе нейронной сети
CN110769278B (zh) 一种分布式视频转码方法及系统
KR102039778B1 (ko) 서버에서 멀티 비트 레이트 스트림 미디어를 적응적으로 제공하기 위한 방법 및 장치
EP2593862B1 (en) Out-of-order command execution in a multimedia processor
US8705616B2 (en) Parallel multiple bitrate video encoding to reduce latency and dependences between groups of pictures
US20080022288A1 (en) Signal Processing Appatatus
US10607623B2 (en) Methods and apparatus for supporting communication of content streams using efficient memory organization
CN113504985A (zh) 一种任务处理方法以及网络设备
CN104539972A (zh) 一种多核处理器中视频并行解码的控制方法和装置
CN111010603A (zh) 一种视频缓存转发处理方法及装置
CN114222166B (zh) 多路视频码流实时处理、同屏播放方法及相关系统
Isovic et al. Quality aware MPEG-2 stream adaptation in resource constrained systems
CN106454354A (zh) 一种avs2并行编码处理系统及方法
JP2008259001A (ja) ディジタルコンテンツ配信システム
KR20180097904A (ko) 클라우드 플랫폼 상에서의 고속 비디오 편집 방법 및 그 장치
EP3890329B1 (en) Video encoding method and apparatus
US10555035B2 (en) High-speed parallel engine for processing file-based high-resolution images
KR100637838B1 (ko) 계단식 파이프라인을 이용한 멀티미디어 데이터 병렬 처리장치 및 그 방법
JP3621598B2 (ja) 並列ソフトウェア画像符号化方法、および並列ソフトウェア画像符号化プログラムを記録した記録媒体
CN112714319B (zh) 计算机可读取存储介质、使用多个执行单元的视频编解码方法和装置
US10440359B2 (en) Hybrid video encoder apparatus and methods
CN114245143A (zh) 编码方法、装置、系统、电子设备及存储介质
CN119383354B (zh) 编码系统、方法、芯片、电子设备
CN119364002B (zh) 一种视频解码内核及视频解码方法、电子设备和存储介质
JP2018011258A (ja) 処理制御装置、処理制御方法及びプログラム

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20041011

PA0201 Request for examination
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20060309

Patent event code: PE09021S01D

PG1501 Laying open of application
E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20060915

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20061017

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20061018

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20090902

Start annual number: 4

End annual number: 4

J206 Request for trial to confirm the scope of a patent right
PJ0206 Trial to confirm the scope of a patent

Patent event code: PJ02062R01D

Patent event date: 20100122

Comment text: Request for Trial

Patent event code: PJ02061E01I

Patent event date: 20061017

Comment text: Registration of Establishment

Decision date: 20101229

Request date: 20100122

Appeal identifier: 2010100000178

Appeal kind category: Confirmation of the scope of right_affirmative

J204 Request for invalidation trial [patent]
PJ0204 Invalidation trial for patent

Patent event date: 20100129

Comment text: Request for Trial

Patent event code: PJ02042R01D

Patent event date: 20061017

Comment text: Registration of Establishment

Patent event code: PJ02041E01I

Appeal kind category: Invalidation

Request date: 20100129

Decision date: 20101229

Appeal identifier: 2010100000226

J204 Request for invalidation trial [patent]
PJ0204 Invalidation trial for patent

Patent event date: 20100526

Comment text: Request for Trial

Patent event code: PJ02042R01D

Patent event date: 20061017

Comment text: Registration of Establishment

Patent event code: PJ02041E01I

Appeal kind category: Invalidation

Request date: 20100526

Decision date: 20100729

Appeal identifier: 2010100001365

J801 Dismissal of trial

Free format text: REJECTION OF TRIAL FOR INVALIDATION REQUESTED 20100526

Effective date: 20100729

PJ0801 Rejection of trial

Patent event date: 20100729

Patent event code: PJ08011S01D

Comment text: Decision on Dismissal of Request for Trial (Dismissal of Decision)

Decision date: 20100729

Appeal kind category: Invalidation

Appeal identifier: 2010100001365

Request date: 20100526

PR1001 Payment of annual fee

Payment date: 20100930

Start annual number: 5

End annual number: 5

J301 Trial decision

Free format text: TRIAL DECISION FOR INVALIDATION REQUESTED 20100129

Effective date: 20101229

PJ1301 Trial decision

Patent event code: PJ13011S05D

Patent event date: 20101229

Comment text: Trial Decision on Invalidation (Patent, Utility Model, Industrial Design)

Appeal kind category: Invalidation

Request date: 20100129

Decision date: 20101229

Appeal identifier: 2010100000226

J301 Trial decision

Free format text: TRIAL DECISION FOR CONFIRMATION OF THE SCOPE OF RIGHT_AFFIRMATIVE REQUESTED 20100122

Effective date: 20101229

PJ1301 Trial decision

Patent event code: PJ13011S02D

Patent event date: 20101230

Comment text: Trial Decision for Confirmation of the Scope of a Right (Patent, Utility Model, Industrial Design)

Appeal kind category: Confirmation of the scope of right_affirmative

Request date: 20100122

Decision date: 20101229

Appeal identifier: 2010100000178

J2X1 Appeal (before the patent court)

Free format text: CONFIRMATION OF THE SCOPE OF RIGHT_AFFIRMATIVE

Free format text: INVALIDATION

PJ2001 Appeal

Appeal kind category: Confirmation of the scope of right_affirmative

Decision date: 20110909

Appeal identifier: 2011200001241

Request date: 20110201

Appeal kind category: Invalidation

Decision date: 20110909

Appeal identifier: 2011200001234

Request date: 20110201

Patent event date: 20101230

Comment text: Trial Decision for Confirmation of the Scope of a Right (Patent, Utility Model, Industrial Design)

Patent event code: PJ20011S02I

Patent event date: 20101229

Comment text: Trial Decision on Invalidation (Patent, Utility Model, Industrial Design)

Patent event code: PJ20011S05I

Patent event date: 20100729

Comment text: Decision on Dismissal of Request for Trial (Dismissal of Decision)

Patent event code: PJ20011S11I

Appeal kind category: Invalidation

Decision date: 20110909

Appeal identifier: 2011200001173

Request date: 20110201

J206 Request for trial to confirm the scope of a patent right
PJ0206 Trial to confirm the scope of a patent

Patent event code: PJ02062R01D

Patent event date: 20110314

Comment text: Request for Trial

Patent event code: PJ02061E01I

Patent event date: 20061017

Comment text: Registration of Establishment

Decision date: 20110718

Request date: 20110314

Appeal identifier: 2011100000551

Appeal kind category: Confirmation of the scope of right_affirmative

J301 Trial decision

Free format text: TRIAL DECISION FOR CONFIRMATION OF THE SCOPE OF RIGHT_AFFIRMATIVE REQUESTED 20110314

Effective date: 20110718

PJ1301 Trial decision

Patent event code: PJ13011S02D

Patent event date: 20110718

Comment text: Trial Decision for Confirmation of the Scope of a Right (Patent, Utility Model, Industrial Design)

Appeal kind category: Confirmation of the scope of right_affirmative

Request date: 20110314

Decision date: 20110718

Appeal identifier: 2011100000551

J2X1 Appeal (before the patent court)

Free format text: CONFIRMATION OF THE SCOPE OF RIGHT_AFFIRMATIVE

PJ2001 Appeal

Patent event date: 20110718

Comment text: Trial Decision for Confirmation of the Scope of a Right (Patent, Utility Model, Industrial Design)

Patent event code: PJ20011S02I

Patent event date: 20101230

Comment text: Trial Decision for Confirmation of the Scope of a Right (Patent, Utility Model, Industrial Design)

Patent event code: PJ20011S02I

Patent event date: 20101229

Comment text: Trial Decision on Invalidation (Patent, Utility Model, Industrial Design)

Patent event code: PJ20011S05I

Patent event date: 20100729

Comment text: Decision on Dismissal of Request for Trial (Dismissal of Decision)

Patent event code: PJ20011S11I

Appeal kind category: Confirmation of the scope of right_affirmative

Decision date: 20121108

Appeal identifier: 2011200007652

Request date: 20110803

J204 Request for invalidation trial [patent]
PJ0204 Invalidation trial for patent

Patent event date: 20110927

Comment text: Request for Trial

Patent event code: PJ02042R01D

Patent event date: 20061017

Comment text: Registration of Establishment

Patent event code: PJ02041E01I

Appeal kind category: Invalidation

Request date: 20110927

Decision date: 20121228

Appeal identifier: 2011100002356

J302 Written judgement (patent court)

Free format text: JUDGMENT (PATENT COURT) FOR INVALIDATION REQUESTED 20110201

Effective date: 20110909

PJ1302 Judgment (patent court)

Patent event date: 20111005

Comment text: Written Judgment (Patent Court)

Patent event code: PJ13021S01D

Request date: 20110201

Decision date: 20110909

Appeal identifier: 2011200001173

Appeal kind category: Invalidation

J2X2 Appeal (before the supreme court)

Free format text: APPEAL BEFORE THE SUPREME COURT FOR INVALIDATION

PJ2002 Appeal before the supreme court

Request date: 20111007

Appeal identifier: 2011300002824

Appeal kind category: Invalidation

Decision date: 20120112

Comment text: Trial Decision for Confirmation of the Scope of a Right (Patent, Utility Model, Industrial Design)

Patent event date: 20110718

Patent event code: PJ20021S02I

Comment text: Trial Decision for Confirmation of the Scope of a Right (Patent, Utility Model, Industrial Design)

Patent event date: 20101230

Patent event code: PJ20021S02I

Comment text: Trial Decision on Invalidation (Patent, Utility Model, Industrial Design)

Patent event date: 20101229

Patent event code: PJ20021S05I

Comment text: Decision on Dismissal of Request for Trial (Dismissal of Decision)

Patent event date: 20100729

Patent event code: PJ20021S11I

Request date: 20111007

Appeal identifier: 2011300002817

Appeal kind category: Invalidation

Decision date: 20120112

PR1001 Payment of annual fee

Payment date: 20111010

Start annual number: 6

End annual number: 6

J302 Written judgement (patent court)

Free format text: JUDGMENT (PATENT COURT) FOR CONFIRMATION OF THE SCOPE OF RIGHT_AFFIRMATIVE REQUESTED 20110201

Effective date: 20110909

PJ1302 Judgment (patent court)

Patent event date: 20111018

Comment text: Written Judgment (Patent Court)

Patent event code: PJ13021S01D

Request date: 20110201

Decision date: 20110909

Appeal identifier: 2011200001241

Appeal kind category: Confirmation of the scope of right_affirmative

J302 Written judgement (patent court)

Free format text: JUDGMENT (PATENT COURT) FOR INVALIDATION REQUESTED 20110201

Effective date: 20110909

PJ1302 Judgment (patent court)

Patent event date: 20111109

Comment text: Written Judgment (Patent Court)

Patent event code: PJ13021S01D

Request date: 20110201

Decision date: 20110909

Appeal identifier: 2011200001234

Appeal kind category: Invalidation

J303 Written judgement (supreme court)

Free format text: JUDGMENT (SUPREME COURT) FOR INVALIDATION REQUESTED 20111007

Effective date: 20120112

PJ1303 Judgment (supreme court)

Decision date: 20120112

Appeal kind category: Invalidation

Request date: 20111007

Appeal identifier: 2011300002824

Comment text: Written Judgment (Supreme Court)

Patent event date: 20120308

Patent event code: PJ13031S01D

Decision date: 20120112

Appeal kind category: Invalidation

Request date: 20111007

Appeal identifier: 2011300002817

PR1001 Payment of annual fee

Payment date: 20120731

Start annual number: 7

End annual number: 7

J302 Written judgement (patent court)

Free format text: JUDGMENT (PATENT COURT) FOR CONFIRMATION OF THE SCOPE OF RIGHT_AFFIRMATIVE REQUESTED 20110803

Effective date: 20121108

PJ1302 Judgment (patent court)

Patent event date: 20121211

Comment text: Written Judgment (Patent Court)

Patent event code: PJ13021S01D

Request date: 20110803

Decision date: 20121108

Appeal identifier: 2011200007652

Appeal kind category: Confirmation of the scope of right_affirmative

J2X2 Appeal (before the supreme court)

Free format text: APPEAL BEFORE THE SUPREME COURT FOR CONFIRMATION OF THE SCOPE OF RIGHT_AFFIRMATIVE

PJ2002 Appeal before the supreme court

Comment text: Trial Decision for Confirmation of the Scope of a Right (Patent, Utility Model, Industrial Design)

Patent event date: 20110718

Patent event code: PJ20021S02I

Comment text: Trial Decision for Confirmation of the Scope of a Right (Patent, Utility Model, Industrial Design)

Patent event date: 20101230

Patent event code: PJ20021S02I

Comment text: Trial Decision on Invalidation (Patent, Utility Model, Industrial Design)

Patent event date: 20101229

Patent event code: PJ20021S05I

Comment text: Decision on Dismissal of Request for Trial (Dismissal of Decision)

Patent event date: 20100729

Patent event code: PJ20021S11I

Request date: 20121218

Appeal identifier: 2012300004100

Appeal kind category: Confirmation of the scope of right_affirmative

Decision date: 20130411

J301 Trial decision

Free format text: TRIAL DECISION FOR INVALIDATION REQUESTED 20110927

Effective date: 20121228

PJ1301 Trial decision

Patent event code: PJ13011S05D

Patent event date: 20121228

Comment text: Trial Decision on Invalidation (Patent, Utility Model, Industrial Design)

Appeal kind category: Invalidation

Request date: 20110927

Decision date: 20121228

Appeal identifier: 2011100002356

J206 Request for trial to confirm the scope of a patent right
PJ0206 Trial to confirm the scope of a patent

Patent event code: PJ02062R01D

Patent event date: 20130125

Comment text: Request for Trial

Patent event code: PJ02061E01I

Patent event date: 20061017

Comment text: Registration of Establishment

Decision date: 20130514

Request date: 20130125

Appeal identifier: 2013100000205

Appeal kind category: Confirmation of the scope of right_defensive

J2X1 Appeal (before the patent court)

Free format text: INVALIDATION

PJ2001 Appeal

Patent event date: 20121228

Comment text: Trial Decision on Invalidation (Patent, Utility Model, Industrial Design)

Patent event code: PJ20011S05I

Patent event date: 20110718

Comment text: Trial Decision for Confirmation of the Scope of a Right (Patent, Utility Model, Industrial Design)

Patent event code: PJ20011S02I

Patent event date: 20101230

Comment text: Trial Decision for Confirmation of the Scope of a Right (Patent, Utility Model, Industrial Design)

Patent event code: PJ20011S02I

Patent event date: 20101229

Comment text: Trial Decision on Invalidation (Patent, Utility Model, Industrial Design)

Patent event code: PJ20011S05I

Patent event date: 20100729

Comment text: Decision on Dismissal of Request for Trial (Dismissal of Decision)

Patent event code: PJ20011S11I

Appeal kind category: Invalidation

Decision date: 20130829

Appeal identifier: 2013200001023

Request date: 20130204

J303 Written judgement (supreme court)

Free format text: JUDGMENT (SUPREME COURT) FOR CONFIRMATION OF THE SCOPE OF RIGHT_AFFIRMATIVE REQUESTED 20121218

Effective date: 20130411

PJ1303 Judgment (supreme court)

Comment text: Written Judgment (Supreme Court)

Patent event date: 20130426

Patent event code: PJ13031S01D

Decision date: 20130411

Appeal kind category: Confirmation of the scope of right_affirmative

Request date: 20121218

Appeal identifier: 2012300004100

J121 Written withdrawal of request for trial
PJ1201 Withdrawal of trial

Patent event code: PJ12011R01D

Patent event date: 20130514

Comment text: Written Withdrawal of Request for Trial

Appeal identifier: 2013100000205

Request date: 20130125

Appeal kind category: Confirmation of the scope of right_defensive

Decision date: 20130514

J302 Written judgement (patent court)

Free format text: JUDGMENT (PATENT COURT) FOR INVALIDATION REQUESTED 20130204

Effective date: 20130829

PJ1302 Judgment (patent court)

Patent event date: 20130916

Comment text: Written Judgment (Patent Court)

Patent event code: PJ13021S01D

Request date: 20130204

Decision date: 20130829

Appeal identifier: 2013200001023

Appeal kind category: Invalidation

J2X2 Appeal (before the supreme court)

Free format text: APPEAL BEFORE THE SUPREME COURT FOR INVALIDATION

PJ2002 Appeal before the supreme court

Comment text: Trial Decision on Invalidation (Patent, Utility Model, Industrial Design)

Patent event date: 20121228

Patent event code: PJ20021S05I

Comment text: Trial Decision for Confirmation of the Scope of a Right (Patent, Utility Model, Industrial Design)

Patent event date: 20110718

Patent event code: PJ20021S02I

Comment text: Trial Decision for Confirmation of the Scope of a Right (Patent, Utility Model, Industrial Design)

Patent event date: 20101230

Patent event code: PJ20021S02I

Comment text: Trial Decision on Invalidation (Patent, Utility Model, Industrial Design)

Patent event date: 20101229

Patent event code: PJ20021S05I

Comment text: Decision on Dismissal of Request for Trial (Dismissal of Decision)

Patent event date: 20100729

Patent event code: PJ20021S11I

Request date: 20130924

Appeal identifier: 2013300002385

Appeal kind category: Invalidation

Decision date: 20131226

PR1001 Payment of annual fee

Payment date: 20131011

Start annual number: 8

End annual number: 8

J222 Remand (patent court)

Free format text: REMAND (PATENT COURT) FOR INVALIDATION

PJ2202 Remand (patent court)

Appeal identifier: 2014240000188

Request date: 20140108

Appeal kind category: Invalidation

J303 Written judgement (supreme court)

Free format text: JUDGMENT (SUPREME COURT) FOR INVALIDATION REQUESTED 20130924

Effective date: 20131226

PJ1303 Judgment (supreme court)

Comment text: Written Judgment (Supreme Court)

Patent event date: 20140203

Patent event code: PJ13031S01D

Decision date: 20131226

Appeal kind category: Invalidation

Request date: 20130924

Appeal identifier: 2013300002385

J302 Written judgement (patent court)

Free format text: JUDGMENT (PATENT COURT) FOR INVALIDATION REQUESTED 20140108

Effective date: 20140821

PJ1302 Judgment (patent court)

Patent event date: 20140923

Comment text: Written Judgment (Patent Court)

Patent event code: PJ13021S01D

Request date: 20140108

Decision date: 20140821

Appeal identifier: 2014240000188

Appeal kind category: Invalidation

PJ2201 Remand (intellectual property tribunal)

Patent event code: PJ22012S01I

Comment text: Written Judgment (Patent Court)

Patent event date: 20140923

Request date: 20140923

Appeal kind category: Invalidation

Appeal identifier: 2014130000131

FPAY Annual fee payment

Payment date: 20141008

Year of fee payment: 9

PR1001 Payment of annual fee

Payment date: 20141008

Start annual number: 9

End annual number: 9

J301 Trial decision

Free format text: TRIAL DECISION FOR INVALIDATION REQUESTED 20140923

Effective date: 20141023

PJ1301 Trial decision

Patent event code: PJ13011S09D

Patent event date: 20141024

Comment text: Trial Decision on Final Judgment on Revocation

Appeal kind category: Invalidation

Request date: 20140923

Decision date: 20141023

Appeal identifier: 2014130000131

FPAY Annual fee payment

Payment date: 20151019

Year of fee payment: 10

PR1001 Payment of annual fee

Payment date: 20151019

Start annual number: 10

End annual number: 10

FPAY Annual fee payment

Payment date: 20161017

Year of fee payment: 11

PR1001 Payment of annual fee

Payment date: 20161017

Start annual number: 11

End annual number: 11

FPAY Annual fee payment

Payment date: 20171016

Year of fee payment: 12

PR1001 Payment of annual fee

Payment date: 20171016

Start annual number: 12

End annual number: 12

FPAY Annual fee payment

Payment date: 20181017

Year of fee payment: 13

PR1001 Payment of annual fee

Payment date: 20181017

Start annual number: 13

End annual number: 13

FPAY Annual fee payment

Payment date: 20191016

Year of fee payment: 14

PR1001 Payment of annual fee

Payment date: 20191016

Start annual number: 14

End annual number: 14

PR1001 Payment of annual fee

Payment date: 20211005

Start annual number: 16

End annual number: 16

PR1001 Payment of annual fee

Payment date: 20221017

Start annual number: 17

End annual number: 17

PR1001 Payment of annual fee

Payment date: 20231016

Start annual number: 18

End annual number: 18