KR20050094729A - 콘텐츠 데이터 처리 장치 및 방법 - Google Patents
콘텐츠 데이터 처리 장치 및 방법 Download PDFInfo
- Publication number
- KR20050094729A KR20050094729A KR1020040035464A KR20040035464A KR20050094729A KR 20050094729 A KR20050094729 A KR 20050094729A KR 1020040035464 A KR1020040035464 A KR 1020040035464A KR 20040035464 A KR20040035464 A KR 20040035464A KR 20050094729 A KR20050094729 A KR 20050094729A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- processing
- content
- processing module
- command
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/78—Television signal recording using magnetic recording
- H04N5/781—Television signal recording using magnetic recording on disks or drums
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/84—Television signal recording using optical recording
- H04N5/85—Television signal recording using optical recording on discs or drums
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/79—Processing of colour television signals in connection with recording
- H04N9/80—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
- H04N9/804—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
- H04N9/8042—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/79—Processing of colour television signals in connection with recording
- H04N9/80—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
- H04N9/804—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
- H04N9/806—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components with processing of the sound signal
- H04N9/8063—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components with processing of the sound signal using time division multiplex of the PCM audio and PCM video signals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
- Information Transfer Systems (AREA)
Abstract
동화상이나 음성과 같은 콘텐츠 데이터의 취급은, 비트 레이트를 보증할 필요가 있는 등 실장이 어렵기 때문에, 하드웨어에 의존한 구성이 되는 경우가 많아서, 시스템의 이식성이 좋지 않았다. 층화된 콘텐츠 처리 아키텍쳐에 의해, 시스템의 이식성을 높게 하고, 또한 어플리케이션 프로그램도 용이하게 개발 가능하게 한다. 또한 장치의 일부를 LSI화한 경우에는 이것에도 적용하는 것이 가능하다.
Description
본 발명은 멀티미디어 데이터의 처리를 하는, 소프트웨어 및 하드웨어 아키텍쳐에 관한 것이다.
최근, 컴퓨터에서 취급되는 멀티미디어 데이터로서, 동화상, 및 음성 등이 여러가지 용도로 이용되고 있다. 예를 들면, 텔레비전 방송 등의 동화상을 리얼타임으로 동화상용 코덱으로 변환하여 하드디스크에 녹화하는 하드디스크 레코더라고 불리는 기기나, DVD 등의 광 디스크에 디지털 데이터로서 기록되어 있는 동화상 콘텐츠 데이터를 비디오 디스플레이 장치에 표시하는 플레이어 등이 널리 보급되어 있다. 일반적으로 이들의 콘텐츠 처리에서는, 콘텐츠 데이터를 지정된 비트 레이트로 판독하여, 일정 시간 내에 처리를 행하지 않으면 안된다. 또한, 이들이 복잡한 스트림 처리를 실행하는 프로그램 모듈을 용이하게 개발 가능한 것이, 이용에 있어서는 중요하게 된다. 이 때문에, 성능을 보증하기 쉬운 OS의 커넬 내에서 콘텐츠 처리를 행하는 프로그램을 실행하는 방식이 존재한다.
일반적인 OS에서는, 커넬 내에서 실행되는 프로그램은, 사용자 레벨에서 실행되는 프로그램과 비교하여, 우선적으로 처리를 실행할 수 있다. 이 때문에, 일정한 시간 내에 처리를 종료할 필요가 있는 콘텐츠 처리 프로그램은 커넬 내에서 실행된다. 예를 들면, 일본 특개평10-283195호에서는, 필터라고 부르는 데이터를 처리하는 디바이스 드라이버를 복수 연결함으로써 콘텐츠 처리를 행하는 것이 가능하다. 필터는 디바이스나 데이터 형식으로 특화된 모듈로서, 각각이 입출력이나 제어를 위한 인터페이스를 갖고 있고, 특정한 필터가 처리한 데이터를 다른 필터에 전달해 감으로써 데이터를 처리하는 것이다. 이 방식은, 필터가 OS의 커넬부에서 동작하기 때문에, 성능을 보증하기 쉽고, 필터의 접속만으로 프로그램을 작성할 수 있다고 하는 특징이 있다.
그러나, 스트림 처리 프로그램을 OS의 커넬 내에 실장함으로써, 특정한 실행 환경, 특히 OS에 의존한 구성이 된다.
한편, 일본 특개평8-279963호와 같이 하드웨어에 의한 스트림 처리 장치를 층 구성으로 함으로써 이식성을 높인 것도 존재한다. 그러나, 이것은 각 처리에 개별의 하드웨어를 이용하기 때문에, 장치 자체가 대형화, 고가격화한다고 하는 문제가 있다.
상술한 바와 같이, 종래의 방법에서는 스트림을 취급하기 위한 실장을, 성능을 보증하기 쉬운 드라이버, 혹은 OS의 커넬 부분에서 실장하는 것이 대부분이었다. 이것은 OS나 하드웨어 구성(이하, 본 조합을 플랫폼이라고 함)에 대한 의존성이 높아서, 콘텐츠를 이용하는 프로그램은, 다른 플랫폼에 대응하는 것이 어렵다.
또한, 각 플랫폼은, 각각 고유의 콘텐츠 데이터 처리 수단을 갖게 되기 때문에, 콘텐츠를 이용하는 프로그램의 개발은, OS, 혹은 하드웨어 구성마다 행할 필요가 발생하여, 개발 공정의 증대를 초래한다고 하는 문제가 있었다.
상기 과제를 해결하기 위해, 본 발명에서는, 여러가지 플랫폼에 대응 가능한 콘텐츠 처리 수단 및 그 콘텐츠 처리 아키텍처를 제공한다.
또한, 본 발명에서는 콘텐츠의 처리를, 콘텐츠 처리에 필요한 기능을 갖는 층의 조합에 의해 실현한다.
본 발명에 따르면, 콘텐츠 처리 프로그램을 다른 플랫폼으로 이행하는 경우에, 콘텐츠 처리 프로그램을 거의 변경하지 않고 동작시키는 것이 가능하게 되어, 개발의 공정수를 삭감하는 것이 가능하게 된다. 또, 콘텐츠 데이터를 이용하는 프로그램 개발의 용이화를 실현 가능하다.
<실시예>
이하에, 본 발명의 실시예를 설명한다. 시스템 아키텍처는, 우선, 하드웨어와의 인터페이스를 제공하는 드라이버부 등을 갖는 OS, 각 OS 마다 서로 다른 기능(예를 들면, 시스템콜이나 디바이스 드라이버에의 액세스 방법 등의 플랫폼에 따라 서로 다른 기능)을 공통화한 인터페이스로서 제공되는 층인 시스템 인터페이스부, 그 상부에 콘텐츠 데이터의 처리나 데이터 소스로부터의 데이터의 취득 처리 등을 행하는 콘텐츠 처리부, 취급하는 콘텐츠에 대한 데이터 처리를 제공하는 콘텐츠 관리부, 또한 이들 층에서 제공되는 기능을 이용하는 어플리케이션 프로그램으로 구성된다.
이 구조에서는, 층의 사이에는 상하의 층에서 데이터, 이벤트 등을 교환하기 위한 인터페이스가 규정된다. 예를 들면, 시스템 인터페이스부는 콘텐츠의 처리에 필요한 OS의 기능, 예를 들면 메모리 관리나, 디스크의 액세스, 태스크의 생성 등의 시스템콜을 공통화하여 상위의 층에 제공한다. 이에 따라 시스템 인터페이스부보다도 상위의 층은, 플랫폼에 의존하지 않는 실장으로 된다. 여기서, 공통화란, 상위의 프로그램 층으로부터 명령에 기초하여, 하위의 프로그램 층측에서, 상기 명령을 미리 정의된 처리 수순으로 실행시키는 것을 말한다.
콘텐츠 처리부는 시스템 인터페이스부가 제공하는 기능을 이용하여 콘텐츠 데이터의 처리를 행한다. 이 콘텐츠 처리에 있어서의 데이터 처리 패턴은 콘텐츠 관리부가 관리하고 있고, 콘텐츠 관리부는 어플리케이션 프로그램에 대한 인터페이스를 제공한다. 어플리케이션 프로그램으로부터는, 상기 인터페이스를 통하여 데이터 처리 패턴을 지정함으로써 콘텐츠 처리의 데이터 패스가 콘텐츠 처리부에 구축된다. 콘텐츠 처리의 데이터 패스란, 대상이 되는 콘텐츠를 처리하는 데 필요한 기능 모듈을 지정함으로써 만들어진, 처리되는 콘텐츠 데이터의 유로(流路)이다. 후에는 사용자가 지시하는 타이밍에서 콘텐츠 처리의 개시, 종료를 어플리케이션 프로그램으로부터 콘텐츠 관리부를 경유하여 지시함으로써 제어가 가능하다.
또한, 이와 같이 하여 작성된 어플리케이션 프로그램은, 상이한 플랫폼에 있어서도, 본 발명에 의해 제안하는 콘텐츠 처리 아키텍처에 준한 콘텐츠 처리계가 실장되어 있으면, 필요 최소한의 변경만으로 실행하는 것이 가능하다.
또한, 해당 콘텐츠 처리 아키텍처는 하드웨어의 일부 혹은 전부가 LSI화된 경우에도 적용할 수 있고, 이 경우에도 어플리케이션 프로그램의 변경을 거의 행하지 않고 이용할 수 있다.
도 1에 본 실시예의 구성을 도시했다. 본 실시예는 도 1과 같은 층 구조를 취한다. 이 층은 하위로부터, 드라이버부(50), 시스템 기능 제공부(40), 시스템 인터페이스부(20), 콘텐츠 처리부(10), 콘텐츠 관리부(30), 및 어플리케이션 프로그램(80)으로 이루어진다. 드라이버부(50)는 플랫폼에 존재하는 하드웨어, 예를 들면, 하드디스크 장치, 코덱 처리 장치, 또는 네트워크 인터페이스 등의 장치에 대응하여 액세스하기 위한 각각의 디바이스 드라이버를 관리하는 층이다. 시스템 기능 제공부(40)는 OS(5)가 제공하는 기능, 예를 들면 파일 시스템(41), 네트워크의 프로토콜 스택(42) 등을 제공하는 층이다. 일반적인 OS에서는, 드라이버부 및 시스템 기능 제공부는 OS에 구비되어 있는 것이 대부분이지만, 이들 층이 OS에 존재하지 않는 경우에는 본 실시예의 아키텍처를 이용하기 위해서 새롭게 추가해도 되고, 드라이버부(50)와 시스템 기능 제공부(40)가 1개의 층으로서 실현되어 있어도 된다. 여기서, 처리 대상이 되는 콘텐츠 데이터는, 스트림 데이터 등이 있다. 스트림 데이터란, 시퀀셜로 액세스되는 데이터이다.
시스템 인터페이스부(20)는, OS(5)가 제공하는 기능이나, 각종의 디바이스 드라이버(HDD용 드라이버, NIC용 드라이버 등)를 통하여 디바이스에 액세스하는 디바이스 액세스 기능을 공통화하여, 플랫폼에 의존하지 않는 방식으로 디바이스에 액세스하는 인터페이스를 제공한다. 즉, 플랫폼이 서로 다르더라도, 예를 들면 HDD 장치나 네트워크에 액세스하는 방법은 기본적으로는 동일하여, 예를 들면, 파일의 판독에는, 판독하는 파일명과, 판독 모드, 및 판독 위치와 길이를 지정하는 기능을 제공한다. 이들의 수순, 인터페이스는 플랫폼마다 가지각색이기 때문에, 이들을 사용한 프로그램을, 상이한 플랫폼으로 이행할 때에는 변경이 필요하게 된다. 한편, 플랫폼에 따라 상이한 인터페이스나 수순을 시스템 인터페이스부(20)에서 흡수하여 상위의 층에 제공한다. 이 밖에도 예를 들면, 복수의 어플리케이션 프로그램(80)이 서로 데이터를 교환하는 경우에도 이 시스템 인터페이스부(20)가 제공하는 기능을 이용하면, 플랫폼 비의존의 프로그램으로 된다. 시스템 인터페이스(20)로 제공하는 기능은 플랫폼이 제공하는 기능을 공통화함으로서, 데이터의 변경은 콘텐츠 처리부(10) 내의 데이터 액세스부(12)에 의해 행한다. 그 처리 상세 내용에 대해서는 도 13을 이용하여 후에 설명한다.
콘텐츠 처리부(10)에는, 시스템 인터페이스부(20)를 통하여 드라이버부(50)와의 데이터 교환을 행하는 데이터 액세스부(12)와, 데이터를 처리하는 데이터 처리부(11)를 구비한다.
데이터 처리부(11)는 데이터 액세스부(12)로부터 수취한 데이터를, 미리 정한 처리 수순에 따른 처리를 행하여, 다시 데이터 액세스부(12)로 출력한다. 예를 들면, 어플리케이션 프로그램으로부터 지정된 지시가, HDD에 저장된 데이터를 네트워크에 접속된 다른 기기로의 전송 명령이면, 데이터 액세스부(12)가 하드디스크로부터 판독한 데이터에, 데이터 처리부(11)에 의해 적절한 헤더를 붙여, 데이터 액세스부(12)를 통하여, 네트워크 출력하는 것 등이다. 예를 들면 UDP로 데이터를 송신하는 경우, 패킷이 소실되거나, 송신 순서와 도착 순서가 달라지게 될 가능성이 있다. 이것을 검출하기 위해서 데이터에 일련의 번호를 갖는 헤더를 붙이는 것이 생각되어 진다. 이와 같이 적절한 헤더란, 콘텐츠 데이터를 디바이스로 정확하게 처리, 혹은 정확하게 송수신하기 위해서 데이터에 부가되는 데이터이다. 이 외 네트워크 이외의 디바이스로부터의 입출력에 대해서도 마찬가지로 디바이스에 필요한 헤더를 추가, 삭제하는 것이 생각된다. 이것은 예를 들면, 정상적으로 전송을 행해졌는지 여부를 체크하기 위한 체크 섬 등을 예로 들 수 있다. 또, 데이터 액세스부(12) 및 데이터 처리부(11)에 의해 취급한 콘텐츠 데이터는 콘텐츠 관리부(30)보다 상위의 층으로는 출력되지 않는다.
콘텐츠 관리부(30)는, 콘텐츠 처리부(10)에 구비된 제어 인터페이스를 사용하여 콘텐츠 처리부(10)를 제어한다. 또한, 콘텐츠 관리부(30)는, 본 아키텍처가 적용되어 있는 기기에 의해 취급할 수 있는 리소스를 리소스 관리 테이블(300)에 의해 관리하고 있다. 여기서 리소스란, CPU, 메모리, 이용 가능한 장치 등, 또한 그 장치에서 이용할 수 있는 대역 등 콘텐츠 처리를 할 때에 필요하게 되는 하드웨어 자원을 가리킨다. 해당 리소스 관리 테이블에 대해서는, 도 10, 도 11을 이용하여 후술한다. 본 실시예에서는, 콘텐츠 관리부(30)는 어플리케이션 프로그램(80)이 콘텐츠 처리를 용이하게 실행할 수 있도록, 요구된 처리가 실행 가능한 지의 여부의 판단을 행한 후에, 콘텐츠 처리부(10)에 처리를 의뢰한다. 콘텐츠 관리부(30)가 제공하는 기능은, 예를 들면, HDD 내에 존재하는 파일의 파일명을 지정하여, 그 파일의 내용을, 지정한 IP 어드레스의 네트워크 기기의, 지정한 포트 번호에, 지정한 비트 레이트의 송신을 콘텐츠 처리부(10)에 지시하는 것 등이다. 이에 의해, 어플리케이션 프로그램(80)은, 전송원 기기와 처리 대상 데이터명과 전송처 기기를 지정하면, 지정한 기기에의 구체적인 액세스 방법, 데이터의 취급 방법 등을 모르더라도, 목적으로 하는 데이터의 전송을 행할 수 있다. 예를 들면, 하드디스크로부터 얻은 데이터를 네트워크에 전송하는 경우, 네트워크로부터 출력되는 데이터는 부정한 시청을 방지하기 위해서 암호화할 필요가 있지만, 어떤 암호 처리를 어디에서 행하는가를 어플리케이션이 인식하지 않더라도 데이터의 전송을 행할 수 있다.
또한, 해당 플랫폼에서 취급할 수 있는 콘텐츠의 리스트를 어플리케이션 프로그램(80)에 제공하여, 하드웨어의 성능을 넘는 처리의 요구가 어플리케이션 프로그램(80)으로부터 있었던 경우에 이것을 거절하는 기능을 갖는다. 이 기능의 상세 내용에 대해서는, 도 10, 도 11을 이용하여 후술한다.
여기서, 도 5를 이용하여, 어플리케이션 프로그램(80)으로부터 콘텐츠 처리부(10)에 콘텐츠 처리를 요구하고, 이것이 종료하기까지의 처리를 설명한다.
처음에, 요구된 콘텐츠 처리가 실행 가능한가를, 콘텐츠 관리부(30)가 판단한다(단계 1000). 판단의 방법에 대해서는, 도 10, 도 11을 사용하여 후술한다. 이용이 가능하면, 그 콘텐츠 처리를 행하는 데 필요한 데이터 패스의 설정을 행한다(단계 1010). 이것은 예를 들면, 하드디스크로부터 광 디스크 장치를 사용한 복사를 행하는 경우에, 데이터를 어떻게 흘리는가의 최적의 데이터 패스를, 미리 콘텐츠 관리부(30)가 보유하고 있는 패턴과 이용할 수 있는 리소스로부터 결정한다. 다음으로 데이터의 전송 개시 처리를 행한다(단계 1030). 이에 따라 콘텐츠 데이터가 단계 1010에서 설정한 데이터 버스를 경유하여 전송된다(단계 1040). 이것을 콘텐츠 데이터가 종료하거나, 사용자가 정지할 때까지 행한다(단계 1050). 패턴에 대해서는, 도 14를 이용하여 후술한다.
예를 들면, 어플리케이션 프로그램(80)으로부터 콘텐츠 관리부(10)에 대하여, 하드디스크(103)로부터 판독한 데이터를 네트워크 어댑터(104)로 송출하는 명령이 송신된 경우의 처리는 다음과 같이 된다. 처음에, 어플리케이션 프로그램으로부터 요구된 처리가 실행 가능한 콘텐츠 처리인가를 판단한다. 이 경우에는 하드디스크나 네트워크 어댑터가 갖춰져 있고, 그 시점에서 이용할 수 있는가를 판정한다(상세 후술). 가능하다고 판단한 경우에는, 하드디스크로부터 네트워크 어댑터에 콘텐츠를 흘리기 위한, 데이터 패스를 설정한다. 전송의 개시를 어플리케이션 프로그램이 지시하면, 데이터의 전송이 데이터 버스를 통하여 행해진다. 여기에서부터, 송신하는 콘텐츠의 파일의 종단까지 송신한 경우나, 어플리케이션 프로그램으로부터의 처리 중지의 지시가 올 때까지 처리를 계속한다.
이 데이터 전송에 있어서, 콘텐츠 데이터는 어플리케이션 프로그램(80)에는 전달되지 않고, 처리는 콘텐츠 처리부(10)의 데이터 액세스부(11)에 의해 행해진다. 그 밖의, 콘텐츠 데이터의 정지, 일시 정지, 복귀, 앞으로 감기, 및 되감기 등의 조작도 마찬가지로 행해진다.
도 10의 리소스 관리 테이블과, 도 11의 처리 흐름을 이용하여 리소스 관리 테이블(300)을 이용하여 처리 가능한 요구인가, 불가능한 요구인가를 판단하는 방법에 대하여 설명한다. 해당 리소스 관리 테이블(300)에서는. 이용할 수 있는 디바이스(301), 그 디바이스의 최대 능력(302), 현재의 이용량(303), 및 비고(304)를 갖는다. 예를 들면, 리소스 관리 테이블의 내용이 도 10과 같이 기술되어 있는 경우, 어플리케이션 프로그램(80)으로부터, 20Mbps의 비트 레이트로, 하드디스크로부터 네트워크로의 전송을 행하는 요구가 오는 경우, 처음에, 필요한 리소스를 요구로부터 추출한다(단계 1200). 이 경우에는 하드디스크와 네트워크의 리소스를 이용한다고 판단한다. 다음으로 하드디스크의 현재 사용량(303)에 20Mbps의 콘텐츠 처리를 더 추가해도 문제없는가를 판단한다(단계 1210). 이 경우 최대 능력(302)인 100Mbps에 달하지 않기 때문에, 처리를 행할 수 있다고 판단한다. 다음으로, 네트워크에 대해서도 마찬가지로 판단하고(단계 1220), 네트워크의 최대 능력인 40Mbps를 넘지 않기 때문에 처리가 가능하다고 판단하고(단계 1230), 리소스 관리 테이블을 갱신하고(단계 1240) 종료한다. 그 외에, 예를 들면, 하드디스크로부터 광 디스크에의 기입이 요구된 경우에는, 해당 플랫폼으로 이용할 수 있는 광 디스크는 판독 만을 서포트하고 있기 때문에, 처리 불가능이라고 판단한다(단계 1250).
다음으로, 도 2를 이용하여, 본 실시예를 실행할 수 있는 하드웨어 구성에 대하여 설명한다. 본 실시예는 CPU(100), RAM(101), ROM(102), 하드디스크(103), 네트워크 어댑터(104), 튜너(105), 광 디스크 장치(106), 디스플레이(107), 시리얼 인터페이스(108), 코덱 처리 수단(109), 조작 수단(112) 및 암호 처리 수단(110)이 버스(111)로 접속되어 있다. 이들은 일반적인 컴퓨터나 하드디스크 레코더의 구성과 거의 동일하다. 네트워크 어댑터(104)는 예를 들면 이서넷(등록상표)과 같은 유선의 네트워크, 혹은 무선의 네트워크 등을 들 수 있다. 튜너(105)는, 지상파, 방송 위성 혹은 통신 위성으로부터의 방송 전파를 수신하여, 컴퓨터에서 취급할 수 있는 데이터로 변환하는 기기이다. 이것도 여러가지 방송에 대응하는 튜너가 복수 존재해도 된다. 광 디스크 장치(106)는 CD(Compact Disc), DVD(Digital Versatile Disk), AOD(Advanced Optical Disc), 혹은 Blu-Ray 등의 기억 매체 판독, 및 기입 장치이다. 디스플레이(107)는 브라운관, 액정 디스플레이, 플라즈마 디스플레이, 및 유기 EL 디스플레이 등을 예로 들 수 있다. 디스플레이를 접속하기 위한 인터페이스를 통하여 디스플레이를 접속해도 된다.
시리얼 인터페이스(108)는 예를 들면 RS-232C, USB(Universal Serial Bus) 혹은, IEEE1394 등의 시리얼 전송에 의해서 데이터를 전송하는 인터페이스를 예로 들 수 있다. 코덱 처리 수단(109)은, 콘텐츠 데이터를, 특정한 동화상 포맷, 예를 들면 MPEG2나 MPEG4 등의 변환, 혹은, 특정한 동화상 포맷으로부터 영상 정보, 및 음성 정보를 취득하는 처리를 행하는 수단이다. 이 장치의 기능은 소프트웨어로 실장하는 것도 가능하다. 암호 처리 수단(110)은 콘텐츠 데이터에 암호화가 실시되어 있는 경우에 이것을 해제하는 경우나, 반대로 암호화를 실시하는 경우의 처리를 행한다. 이것도 소프트웨어로 실장하는 것이 가능하다. 버스(111)는 범용적인 버스나, CPU나 주변 칩에 특화한 로컬 버스를 예로 들 수 있다. 범용 버스로서는 예를 들면 PCI(Peripheral Components Interconnect) 버스를 예로 들 수 있다. 또한 버스 브리지에 의해, 서로 다른 버스를 결합하여 이용하는 것도 생각할 수 있다. 조작 수단(112)은 예를 들면 리모콘이나 키보드 등의 사용자가 장치를 제어하기 위한 것이다. 지금까지 진술한 본 실시예를 구성하는 장치, 수단은 필요에 따라 복수 구비하는 것이 가능하고, 또한, CPU, RAM, 및 버스 이외에는 필요에 따라 실장되면 된다. 또한, 상기 어플리케이션 프로그램이나 각 층에서 필요하게 되는 소프트웨어는, 메모리에 로드되어 CPU에 의해 실행되는 것으로 실현된다.
다음으로, 도 12의 흐름도를 사용하여, 도 2에 도시하는 구성의 하드웨어에 있어서, 도 1에 도시하는 아키텍쳐를 갖는 소프트웨어를 이용하여, 네트워크 어댑터(104)로부터 방송을 수신하여, 디스플레이(107)에 영상을 출력하기까지의 처리를 설명한다.
처음에 어플리케이션 프로그램(80)으로부터, 콘텐츠 관리부(30)에 대하여 「네트워크로부터의 방송을 디스플레이에 표시하는」 것을 요구한다(단계 1400). 콘텐츠 관리부(30)에서는, 이 요구에 기초하여, 요구에 필요한 처리를 결정하고, 리소스 관리 테이블을 참조하여, 필요한 디바이스의 추출을 행하고, 이들을 이용할 수 있는가를 판단한다(단계 1410). 이 판단의 방법에 대해서는, 도 10, 도 11을 이용하여 상술한 바와 마찬가지로서, 자세히는, 도 14, 도 15, 도 16을 이용하여 후술한다.
이 처리에서 추출되는 디바이스는, 네트워크 어댑터(104), 코덱 처리 수단(109) 및 디스플레이(107)이다. 이용할 수 있다고 판단한 경우에는, 다음으로 콘텐츠 관리부(30)는, 콘텐츠 처리부(10)에, 네트워크 어댑터(104)로부터의 입력 데이터를, 코덱 처리 수단(109)에 입력하고, 이 출력을 디스플레이(107)로 출력하도록 요구한다(단계 1420). 콘텐츠 처리부(10)에서는, 요구된 디바이스로부터 데이터의 입출력이 가능하도록 데이터 액세스부(12)를 설정하고(단계 1430), 이렇게 얻은 데이터를 적절하게 처리하도록 데이터 처리부를 설정한다(단계 1440). 이 처리의 상세 내용에 대해서는, 도 13을 이용하여 후술한다. 이 처리가 종료한 후, 어플리케이션 프로그램(80)으로부터, 재생의 요구를 콘텐츠 관리부(30)에 내리면(단계 1450), 콘텐츠 관리부(30)로부터, 콘텐츠 처리부(10)에 재생의 요구가 발생하고(단계 1460), 네트워크 어댑터(104)로부터 판독한 데이터가 콘텐츠 처리부(10)에 판독되고, 다음으로, 코덱 처리 수단(109)에 입력되고, 이 출력이 디스플레이(]07)에 입력됨으로써 영상이 재생 가능하다. 이 경우, 영상 데이터는 콘텐츠 처리부(10)보다 상위의 층으로는 출력되지 않는다. 재생이 종료하거나, 에러가 발생한 경우에는, 콘텐츠 처리부(10)로부터, 콘텐츠 관리부(30)에 이벤트가 보내어진다(단계 1470). 이 이벤트는, 콘텐츠 관리부(30)로부터 어플리케이션 프로그램(80)에 전달된다(단계 1870). 재생 외에, 재생의 정지, 일시정지, 앞으로 감기, 혹은 되감기와 같은 처리에 대해서도 단계 1450 내지 단계 1480의 처리에 의해 실현 가능하다.
도 13을 이용하여 콘텐츠 처리부(L0)의 데이터 처리부(11)와 데이터 액세스부(12)의 초기 설정 수순(단계 1430, 단계 1440)과, 데이터의 변환 처리에 대하여 설명한다. 도 13은 콘텐츠 처리부(10), 시스템 인터페이스부(20), 및 드라이버부(50)의 상세 구성을 도시한 것이다. 데이터 액세스부(12)에는 디바이스 A(97)용의 데이터 액세스 처리(121), (122) 및, 디바이스 B(98)용의 데이터 액세스 처리(123)가 함수 등의 소프트웨어 모듈로서 존재한다. 예를 들면, 디바이스 A가, 네트워크 어댑터인 경우, 데이터 액세스 처리 A에는, TCP를 이용한 통신을 실현하는 소프트웨어가 저장되어 있다. 이 설명에서는, 디바이스를 A, B의 2 종류로 했지만, 이 외 복수의 디바이스에 대한 데이터 액세스 처리가 존재해도 되는 것은 물론이다. 이 데이터 액세스 처리 A1(121)과 액세스 처리 A2(122)는 동일한 디바이스 드라이버 A(57)를 통하여, 디바이스 A(97)와의 데이터의 교환을 행한다. 데이터 액세스 처리 A1(121)과 데이터 액세스 처리 A2(122)와 같이 복수의 데이터 액세스 처리가 존재하는 것은, 예를 들면 널리 네트워크에서 이용되고 있는 TCP(Transmission Control Protocol)와 UDP(User Diagram Protocol)와 같이, 동일한 디바이스를 이용하여 데이터를 전송하는 경우라도 복수의 수순이 존재하는 경우에 각각에 대응한 데이터 액세스 처리가 필요하게 되기 때문이다. 또한 입력, 출력에서도 각각 서로 다른 데이터 액세스 처리가 필요하게 되는 것도 생각되어 진다.
도 12에 있어서의 단계 1430에서의 처리는, 콘텐츠 처리에 필요한 디바이스와, 그것에 필요하게 되는 데이터 액세스 처리를 결정하여, 그 초기화를 행하는 처리가 된다. 예를 들면 도 13에 도시한 예에서는, 디바이스 A(97)에 대한 데이터 액세스 처리는 데이터 액세스 처리 A1(121)에, 디바이스 B(98)에 대한 데이터 액세스 처리는 데이터 액세스 처리 B(123)를 할당한다. 본 실시예에서는, 디바이스 A는 네트워크 어댑터이기 때문에, 데이터 액세스 처리 A1은, 소켓을 이용하여 TCP로 보내져 오는 데이터 수신을 실현하는 처리가 되고, 디바이스 B는 디스플레이이기 때문에, 데이터 액세스 처리 B1은, 디스플레이 드라이버에의 데이터 전송을 실현하는 처리가 된다.
다음으로, 데이터 처리부(11)에는 데이터 처리1(111), 데이터 처리2(112) 및 데이터 처리3(113)이 함수 등의 프로그램 모듈로서 존재한다. 이들 데이터 처리는 데이터의 변환 처리를 행하는 모듈이다. 처리의 예로서는 예를 들면, 데이터의 포맷 변환, 헤더의 부가·삭제, 데이터의 압축·압축 해제, 혹은 암호화 등의 처리를 예로 들 수 있다. 본 실시예에서는, 입력한 데이터가, MPEG 부호화되고, DES 암호화되고, TCP/IP의 패킷으로 입력된 데이터인 경우, 데이터 처리1에 의해 헤더가 삭제되고, 데이터 처리2에 의해 암호가 복호화되고, 데이터 처리3에 의해 MPEG 복호화가 되게 된다. 또, 이 데이터 처리 모듈의 연결 순서 등의 결정은 콘텐츠 관리부가 행한다. 콘텐츠 관리부는 요구된 콘텐츠 처리에 어떤 데이터 처리 모듈을 어떻게 접속하는가를 판단하여, 이 설정을 콘텐츠 처리부에 의해 행한다. 이 처리의 상세 내용에 대해서는 도 14, 도 15, 도 16을 사용하여 후술한다.
또한, 각 데이터 처리는 데이터의 입력과 출력을 행하기 위한 인터페이스를 갖고, 이것을 이용하여 다른 데이터 처리 모듈이나 데이터 액세스 처리 모듈과 데이터를 교환하는 것이 가능하다. 처리하는 데이터는 데이터 액세스 모듈로부터 입력, 혹은 출력해도 된다. 예를 들면, 본 실시예에 있어서, 입력 데이터가 암호화되어 있지 않았던 경우에는, 데이터 처리2가 종료한 후, 처리 후의 데이터가 데이터 액세스 처리 B로 출력된다. 따라서, 해당 처리는, 디바이스로부터의 데이터의 취득, 혹은 디바이스로의 데이터의 출력에 대응한다. 또한 데이터 처리 모듈 사이의 입출력에 대해서도 일대일의 데이터 교환에는 한정하지 않고, 다수 대 다수, 일 대 다수 혹은 다수 대 일의 패턴을 예로 들 수 있다. 이것은, 예를 들면, 일 대 다수의 패턴으로서는, 취득한 콘텐츠 데이터를 녹화하면서 동시에 재생하는 경우가 해당하고, 다수 대 일의 패턴으로서는, 음성과 영상이 별개의 콘텐츠 데이터로서 존재하고, 이것을 1개의 콘텐츠로서 파일에 기록하는 처리를 행하는 경우가 해당한다. 단계 1440의 처리는, 목적으로 하는 콘텐츠 처리에 필요한 데이터 처리를 행하는 데이터 처리 모듈을 초기화하여 연결하는 것이다.
도 14는, 콘텐츠 관리부에 있어서, 어플리케이션 프로그램으로부터 요구된 콘텐츠를 처리하기 위한, 콘텐츠 처리에 있어서의 데이터 처리 흐름을 적은 테이블(200)과, 그 구성의 예이다. 이 테이블에는 어플리케이션 프로그램으로부터의 요구 패턴(210)과 적용하는 데이터 패스의 패턴(220)의 2개의 열이 있다. 예를 들면, 어플리케이션 프로그램으로부터 「튜너로부터의 입력을 디스플레이에 표시」하도록 요구를 받은 경우에는, 그 요구에 맞는 적용하는 데이터 패스의 패턴을 얻는다. 이에 의해, 튜너로부터의 입력을 「튜너 액세스 처리」 액세스 처리 모듈에 의해 판독하고, 이것을 「포맷 변환」 데이터 처리 모듈에 의해 변환하고, 「디스플레이 액세스 처리」 액세스 처리 모듈에 의해 디스플레이로 출력하면 되는 것을 알 수 있다. 이에 따라 단계 1410에서의 처리로 콘텐츠 처리에 필요한 디바이스를 추출하는 것이 가능하게 된다. 또한, 예를 들면 튜너로부터의 입력을 디스플레이로 출력하는 경우, 어떤 채널에서는 데이터에 암호화가 이루어져 있지만, 그 밖의 채널에서는 암호화되어 있지 않은 것도 생각된다. 이 경우에는(210)에 해당 패턴을 등록, 예를 들면 「튜너로부터의 입력(1∼4 채널)을 디스플레이에 표시」로서, 해당 요구 패턴에 대응하는 데이터 패스의 패턴을 참조부호 220에 등록함으로써 대응하는 것이 가능하다.
도 15는, 콘텐츠 관리부에 있어서, 해당 실장에서 이용 가능한 데이터 액세스 모듈의 테이블(300)과 그 구성의 예이다. 이 테이블에는 이용 가능한 액세스 모듈의 식별자(310), 입력용 인터페이스 파라미터(320), 및 출력용 인터페이스 파라미터(330)로 이루어진다. 콘텐츠 관리부는 요구된 콘텐츠 처리에 필요한 데이터 액세스 모듈을 상기 처리에 의해서 결정한 후, 해당 테이블을 이용하여 필요한 데이터 액세스 모듈을 얻는다. 예를 들면, 하드디스크 액세스 처리 모듈에 대하여 출력을 행하는 경우에는 참조부호 331에 기재된 모듈을, 참조부호 332에 기재된 파라미터로 호출하면 되고, UDP 네트워크 액세스 처리 모듈에 대하여 출력을 행하는 경우에는 참조부호 333에 기재된 모듈을, 참조부호 334에 기재된 파라미터로 호출하면 된다.
도 16은, 콘텐츠 관리부에 있어서, 해당 실장에서 이용 가능한 데이터 처리 모듈의 테이블(400)과 그 구성의 예이다. 이 테이블에는 이용 가능한 데이터 처리 모듈의 식별자(410), 입력 인터페이스 파라미터(420) 및, 출력용 인터페이스 파라미터(430)로 이루어진다. 콘텐츠 관리부는 요구된 콘텐츠 처리에 필요한 데이터 처리 모듈을 상기 처리에 의해서 결정한 후, 해당 테이블을 이용하여 필요한 데이터 처리 모듈을 얻는다. 예를 들면, 암호화 처리를 행하는 모듈을 얻는 경우에는, 참조부호 421에 기재된 모듈을, 422에 기재된 파라미터로 호출하면 된다. 이 경우, 암호화 방식이 복수 있는 경우에는, 각 암호화 방식마다, 암호화 처리 모듈이 구비되어 있다.
이와 같이, 콘텐츠 관리부로서는 어플리케이션 프로그램으로부터 요구된 콘텐츠 처리에 적합한 데이터 액세스 모듈, 데이터 처리 모듈을 선택하고, 필요한 처리의 패스를 설정하는 것이 가능하다.
또한, 콘텐츠 데이터를 어떻게 복호 혹은 부호화하면 되는가는 그 콘텐츠의 제공 방식, 혹은 기록 시에 정해진다. 예를 들면 디지털 방송에서는 콘텐츠가 어떤 방식으로 부호화되고, 어떠한 암호화되는가 등이 미리 공개되어 있다. 도 14에 도시한 요구 패턴(210)을 미리 이들의 정보를 기초로 구축함으로써, 어플리케이션은 어떠한 암호화, 부호화가 이루어져 있는가를 알 필요없이, 스트림 제어부는 요구 패턴(210)이 공급되는 것만으로, 필요한 데이터 액세스 모듈과 데이터 처리 모듈을 정확하게 연결하는 것이 가능하다.
모듈의 연결이란, 처리하는 콘텐츠 데이터가 모듈 사이에서 교환되는 것을 말한다. 예를 들면 데이터 액세스 모듈이 디바이스로부터 판독한 콘텐츠 데이터를 데이터 처리 모듈에 전달하여 처리하는 경우에는, 판독한 데이터가 2개의 모듈로 송수신할 수 있으면 된다. 이 방법으로서는 예를 들면, 데이터를 기록한 버퍼 메모리의 어드레스를, 파라미터로서 함수 호출을 해도 되고, 해당 모듈이 입력용의 큐를 갖고, 해당 큐에 데이터를 투입하는 방법이어도 되고, 공유 메모리를 이용하는 것도 생각되고, 소켓 등을 이용하여 데이터 교환하는 것도 생각된다.
이러한 데이터가 흐르는 길, 즉 데이터 패스를 설정함으로써, 콘텐츠 처리의 준비가 정연하게 된다. 이 데이터 패스에 있어서, 데이터의 입구, 즉, 데이터를 입력하는 디바이스의 데이터 액세스 처리의 처리를 개시하면 디바이스로부터 데이터가 얻어지고, 이것이 데이터 처리 모듈에 전달되고, 데이터 패스를 따라 데이터가 처리되고, 최종적으로는 데이터의 출구, 즉 데이터를 출력하는 데이터 액세스 처리로 전달되어, 디바이스로 데이터가 출력된다. 디바이스 액세스 처리에 대해서는 일부 플랫폼에 따라 처리가 서로 다른 것이 생각된다. 이것은 예를 들면, 일반적인 디바이스이더라도, 플랫폼이 서로 다르면 입출력 데이터가 서로 다른 것 등이다. 그 경우에는, 이들의 차이를 제거하여 데이터를 공통화하는 처리를 데이터 액세스 처리에 의해 행하는 것도 생각된다. 이와 같이 함으로써 데이터 액세스부(12)보다 상위의 층에서 취급하는 데이터는 플랫폼으로부터는 완전하게 비의존이 된다. 예를 들면, 문자 코드 등과 같은 플랫폼에 따라 이용되는 형식이 상이한 것은, 예를 들면 데이터 액세스부에 의해 표준 Unicode 등의 문자 코드로 변환하는 것 같은 경우이다.
도 3은 도 2에 도시한 장치 중 일부에 LSI를 이용한 경우의 구성을 도시한다.
이 도 3의 LSI(120)는, HDD(124), 튜너(125), 디스플레이(126), 및 코덱 처리 수단(127)과 같은 기능 수단을 버스(128)로 결합하고, Sub-CPU(121), RAM(122), ROM(123) 및 데이터 교환 수단(129)을 추가한 구성이다. 이러한 LSI는, SoC(System on chip)라고 불리고 있다. 이 LSI(120)를 CPU(100), RAM(101), ROM(102), 네트워크 어댑터(104), 광 디스크 장치(106), 시리얼 인터페이스(108), 및 암호 처리 수단(110)과 함께 버스(111)로 접속함으로써, 도 2에 도시한 하드 구성과 동일한 기능을 갖게 하는 것이 가능하게 된다. 도 3에서는, 상기에 설명한 바와 같이 기기를 LSI에 탑재한 구성을 도시했지만, 장치의 배치는 이 예에 한정되지 않는다. 예를 들면, LSI(120)측에는 HDD(124)가 없고, 그 대신에 주 CPU(1)의 버스(111)에 HDD(103)가 존재해도 되고, 양자를 함께 실장한 구성도 생각된다.
이 예에서는, LSI(120)에 구비된 장치와 동일한 장치를 LSI 외부에는 구비하고 있지 않지만, 예를 들면 튜너를 LSI(120)안에 내장하고, 외부에도 튜너를 구비하는 등, 동등한 장치를 2개 이상 구비하여도 된다. CPU(100)와 Sub-CPU(121)와의 통신에는 데이터 교환 수단(129)을 이용한다. 이 실장은 LSI(120)이나 시스템의 구성에 따라서 다양한 방법이 생각된다. 예를 들면, 간단한 방법으로서 FIFO(First In First Out) 방식의 버퍼를 이용하여, 데이터를 교환하는 방법이 생각된다. 또한 공유 메모리와 DMA(Direct Memory Access) 전송을 이용하여 고속으로 대량의 데이터를 교환하는 것도 생각된다. 이 외에는, LSI의 레지스터를 이용하는 방법이나 OS가 제공하는 기능을 이용하는 것도 생각된다. 또한 이 수단은 하나 존재하고 있어도 되고 복수 존재하고 있어도 된다.
도 4는 시스템의 일부에 LSI를 적용한 도 3과 같은 구성에 대하여, 본 콘텐츠 처리 아키텍쳐를 이용한 경우의 구성의 예를 도시한 것이다. 도 4에는 도 3의 구성 요소인 코덱 처리 수단(127), 광 디스크 장치(106), 시리얼 인터페이스(108), 및 암호 처리 수단(110)에 대한 기재는 생략했지만, 생략된 수단에 대해서도 마찬가지의 구성으로 취급하는 것이 가능하다. 이 LSI(120) 내에서 동작하는 본 실시예의 콘텐츠 처리 아키텍쳐는, 드라이버부(53), 시스템 인터페이스부(21), 콘텐츠 처리부(11), 콘텐츠 관리부(31) 및 어플리케이션 프로그램(81)으로 구성되어, 도 1로 도시한 구성과 거의 동일하다. 다른 부분은 CPU(100)과 통신을 하기 위한 데이터 공유 수단(129)을 위한 드라이버(59)가 추가되어 있는 것이다.
LSI(120) 외의 장치에 의해 처리되는 콘텐츠 처리 아키텍처도, 드라이버부(50), 시스템 기능 제공부(40), 시스템 인터페이스부(20), 콘텐츠 처리부(10), 콘텐츠 관리부(30), 및 어플리케이션 프로그램(80)으로 구성되어, 도 1의 구성과 동일하다. 이 아키텍처에 있어서 LSI(120)는 LSI 드라이버(51) 경유로 액세스하는 하나의 장치처럼 보인다. 예를 들면, LSI의 튜너(55)로 취득한 데이터를 주 CPU 측의 네트워크 어댑터에 의해 송출하는 경우, 튜너(125)로부터 취득한 데이터는 콘텐츠 처리부(11)를 통과하여, 데이터 공유 드라이버(59)를 사용하여 데이터 공유 수단(129)으로 출력된다. LSI 드라이버(51)로부터 데이터 공유 수단(129)에 기입된 데이터를 취득하여, 콘텐츠 처리부(10)가 네트워크 어댑터(104)로 출력한다. LSI 내의 콘텐츠 처리부(11)에 입력된 데이터는, 도 1에 설명한 바와 마찬가지로, 상위의 층으로는 출력되지 않고, 예를 들면 튜너에만 의미가 있는 헤더 등의 불필요한 데이터를 제거하는 등의 최저한의 처리를 행하여, 데이터 공유 수단으로 출력된다. 이 처리에 대해서는 도 6에 상세 내용을 도시한다. 이 데이터는 주 CPU측에서는 단순히 디바이스로부터의 데이터로 보이기 때문에, 콘텐츠 처리부(10)는 데이터를 판독하고, 이것을 적절하게 가공하여, 네트워크 드라이버(52)로 출력하면 된다.
도 6은 도 4에 도시한 LSI를 사용한 구성에 있어서의, 본 아키텍처의 콘텐츠 데이터 처리의 흐름을 도시한 것이다. 여기서는 예로서 튜너(125)로부터의 콘텐츠 데이터를 네트워크 어댑터(104)로 출력하는 경우를 예로 든다. 처음에, 어플리케이션 프로그램(80)으로부터 콘텐츠 처리부(30)에 대하여 이용할 수 있는 콘텐츠인가를 체크한다(단계 1100). 이 처리는 단계 1000과 동일하다. 콘텐츠 처리를 실행할 수 있는 상황이면, 콘텐츠 관리부는 LSI 드라이버(51)를 사용하여 LSI(120) 상의 어플리케이션 프로그램(81)에, 튜너(125)로부터, 데이터 공유 수단(129)에 콘텐츠 데이터의 처리 패스를 작성하도록 의뢰한다(단계 1110). 이것을 받아 LSI(120) 상의 어플리케이션 프로그램(81)은, 우선, 요구된 콘텐츠 처리가 실행 가능한가를 확인하고(단계 1120), 튜너(125)와 데이터 공유 수단(129) 사이의 데이터 패스를 설정한다(단계 1130). 다음으로 콘텐츠 처리부(10)에 대해서는 LSI(120)의 데이터 공유 수단(129)으로부터의 데이터를 네트워크 어댑터(104)로 출력하기 위한 데이터 패스를 설정한다(단계 1140).
이 후, LSI(120) 상의 어플리케이션 프로그램(81)에 콘텐츠 처리 개시를 요구하여, 어플리케이션 프로그램(81)은 콘텐츠 처리부(11)에 처리 개시 요구를 행한다(단계 1150), 콘텐츠 처리부(10)에 대해서도 콘텐츠 처리의 개시를 요구한다(단계 1160). 이에 의해, 튜너(125)에 의해 얻은 데이터가, 데이터 공유 수단(129)으로 출력되기 때문에(단계 1170), 이 데이터를 콘텐츠 처리부(10)가 네트워크 어댑터로 출력한다(단계 1180). 이것을 데이터의 종료, 혹은 사용자의 정지 요구가 있을 때까지 반복하여 행한다(단계 1190). LSI(120) 상의 어플리케이션 프로그램(81)과, LSI 드라이버(51)의 통신은, 콘텐츠 데이터의 교환과 동일하게, 데이터 공유 수단(129)을 이용하여 행해진다.
도 7은 본 아키텍처에, 확장 기능 라이브러리(60)를 추가한 경우의 구성을 도시한 것이다. 확장 기능 라이브러리(60)는, 예를 들면, 이용에 있어서 특수한 수순이 필요하고, 또한 이 수순이 공개되어 있지 않은 디바이스를 생각할 때, 이 제어 프로그램의 소스가 공개되지 않고, 바이너리의 라이브러리만이 제공되는 것이 생각된다. 예를 들면, 특수한 스토리지 디바이스에 의해, 기록된 데이터를 판독하기 위해서는 판독용의 키를 디바이스에 설정해야만 하는 장치에서, 그 키와 이용 처리 수순이 해당 라이브러리에 은폐되어 실장되어 있는 것 등이 생각되어진다. 이러한 경우, 해당 디바이스를 사용하기 위해서는 상기 라이브러리를 이용해야만 한다. 이 경우에, 해당 라이브러리를 확장 기능 라이브러리(60)로서 도입함으로써, 목적으로 하는 디바이스가 이용 가능하게 된다. 확장 라이브러리는 미리 시스템에 내장되어 있거나, 혹은 콘텐츠 관리부가 필요에 따라 동적으로 추가한다. 확장 기능 라이브러리에 의해 처리된 데이터의 전송 및 제어는 시스템 인터페이스 경유로 콘텐츠 처리부가 행한다. 이 경우, 확장 기능 라이브러리용의 데이터 액세스 모듈을 콘텐츠 처리부가 구비하면, 기능 확장 라이브러리는 스트림 제어부로부터는 디바이스로서 보이기 때문에, 도 14, 도 15에 도시한 구조에서 이용하는 것이 가능하다.
도 8은 도 1에 도시한 본 아키텍쳐의 시스템 인터페이스부(20)를, OS(5) 내에 실장한 형태를 도시한 것이다. 이 구성에서는, 시스템 인터페이스부(20)가 OS(5) 내의 모듈로서 실장되기 때문에, OS 내의 모듈이 어플리케이션 프로그램보다 우선적으로 실행이 행해지는 OS에서는, 사용자 공간에서 실장되는 것보다도, 성능이 유리해진다.
도 9는 도 1에 도시한 본 아키텍처의 시스템 인터페이스부(20) 및, 콘텐츠 처리부(10)를 OS(5)에 실장한 형태를 도시한 것이다. 이 구성에서는, 시스템 인터페이스부(20) 및, 콘텐츠 처리부(10)가 OS(5) 내의 모듈로서 실장되기 때문에, OS 내의 모듈이 어플리케이션 프로그램보다 우선적으로 실행이 행해지는 OS에서는, 사용자 공간에서 실장되는 것보다도, 성능면에서 유리해진다. 특히, 리얼타임성이 필요하게 되는, 고비트 레이트의 콘텐츠 처리를 행하는 경우에는 특히 유효하다고 생각된다. 한편, OS 내에서의 실장은, 개발이 어렵고, 실행 시에 장해가 발생한 경우에, OS를 이상 종료시킬 가능성이 있기 때문에, 도 1, 도 8 혹은 도 9의 어느 구성을 취할지는, 용도, 하드웨어 구성, 및 개발 공정수 등을 고려하여 정해져야 한다. 예를 들면, CPU의 성능이 낮은 플랫폼에서의 실장, 혹은 높은 성능이 요구되는 경우에는, 디버그 등은 다소 곤란하게 되지만, 고성능을 실현하는 것이 비교적 용이한 도 9와 같은 구성이 생각된다. 반대로, CPU가 충분히 빠르게 메모리 등의 실행 리소스를 충분히 이용할 수 있는 경우나, 고성능이 요구되지 않는 경우 등에는, 실장이 용이한 도 1과 같은 구성으로 하는 것을 생각할 수 있다.
본 발명에 따르면, 어플리케이션 프로그램은, 플랫폼에 비의존으로 처리를 실행하는 것이 가능하게 된다. 또, 여러가지 플랫폼에 대응 가능한 콘텐츠 처리 수단 및 그 콘텐츠 처리 아키텍쳐를 제공하는 것이 가능하게 되어, 콘텐츠 처리 프로그램을 상이한 플랫폼으로 이행하는 경우에, 콘텐츠 처리 프로그램을 거의 변경하지 않고 동작시키는 것이 가능하게 된다.
도 1은 본 실시예의 소프트웨어 구성을 도시하는 도면.
도 2는 본 실시예를 적용 가능한 하드웨어 구성도.
도 3은 도 2의 구성에 LSI를 적용한 경우의 구성도.
도 4는 도 3에 있어서의 소프트웨어 구성을 도시하는 도면.
도 5는 콘텐츠 처리의 수순의 흐름도.
도 6은 LSI를 적용한 시스템에 있어서의 콘텐츠 처리의 수순의 흐름도.
도 7은 기능 확장 라이브러리를 추가한 소프트웨어 구성을 도시하는 도면.
도 8은 시스템 인터페이스부를 OS 내에 실장한 구성을 도시하는 도면.
도 9는 콘텐츠 처리부를 OS 내에 실장한 구성을 도시하는 도면.
도 10은 리소스 관리 테이블의 구성을 도시하는 도면.
도 11은 리소스의 이용 가부를 판정하는 처리의 흐름도.
도 12는 기본적인 처리를 행한 경우의 흐름도.
도 13은 콘텐츠 처리부 내의 처리를 도시하는 도면.
도 14는 콘텐츠 처리에 있어서의 데이터 처리 흐름을 기술한 테이블의 도면.
도 15는 이용 가능한 데이터 액세스 모듈의 테이블의 도면.
도 16은 이용 가능한 데이터 처리 모듈의 테이블의 도면.
<도면의 주요 부분에 대한 부호의 설명>
5 : OS
10 : 콘텐츠 처리부
11 : 데이터 처리부
12 : 데이터 액세스부
20 : 시스템 인터페이스부
30 : 콘텐츠 관리부
40 : 시스템 기능 제공부
41 : 파일 시스템
42 : 프로토콜 스택
50 : 드라이버부
80 : 어플리케이션 프로그램
Claims (10)
- 콘텐츠 처리 장치에 있어서,콘텐츠의 입력 장치와,콘텐츠의 출력 장치와,처리 모듈을 저장한 기억부와,명령을 발행하는 명령 발행부와,상기 명령을 수신하여, 해당 명령을 실행하는 데 필요한 상기 처리 모듈을 선택하는 콘텐츠 관리부와,상기 선택된 처리 모듈을 이용하여 처리를 실행하는 콘텐츠 처리부를 포함하고,상기 콘텐츠 처리부는,상기 선택된 처리 모듈을 이용하여,상기 입력 장치로부터의 콘텐츠의 입력 처리, 혹은 상기 출력 장치에의 콘텐츠의 출력 처리를 실행하는 데이터 액세스부와, 상기 데이터 액세스부를 통하여 입력된 콘텐츠에 소정의 처리를 실행한 후에 해당 처리 후의 콘텐츠를 상기 데이터 액세스부로 출력하는 데이터 처리부를 포함하는 것을 특징으로 하는 콘텐츠 처리 장치.
- 제1항에 있어서,상기 콘텐츠 관리부는, 상기 기억부에 저장된, 상기 명령에 대응하는 처리 모듈의 조합을 규정한 제1 테이블, 및 선택 가능한 처리 모듈을 규정한 제2 테이블을 참조하여, 상기 처리 모듈을 선택하는 것을 특징으로 하는 콘텐츠 처리 장치.
- 제1항에 있어서,상기 제1 테이블에는, 상기 명령을 실행하기 위한 처리 모듈의 순서가 규정되어 있는 것을 특징으로 하는 콘텐츠 처리 장치.
- 제1항에 있어서,상기 기억부에는, 상기 입출력 장치의 사용 가능 성능을 규정한 제3 테이블이 저장되고, 상기 콘텐츠 관리부는, 상기 명령을 실행하는 데 필요한 입출력 장치의 성능이, 상기 제3 테이블에 규정된 값의 범위 내인가 여부를 판단하여, 그 결과, 해당 테이블에 규정된 범위 내인 경우에, 상기 명령을 실행하는 것을 특징으로 하는 콘텐츠 처리 장치.
- 제1항에 있어서,상기 데이터 액세스부 혹은 상기 데이터 처리부에서는, 적어도 1 이상의 처리 모듈이 이용되는 것을 특징으로 하는 콘텐츠 처리 장치.
- 제1항에 있어서,상기 명령에 대응하는 처리 모듈의 조합을 규정한 제1 테이블, 및 선택 가능한 처리 모듈을 규정한 제2 테이블, 상기 입출력 장치의 사용 가능 성능을 규정한 제3 테이블이 저장된 기억부를 더 포함하고,상기 입력 장치가 HDD이고 상기 출력 장치가 네트워크 어댑터인 경우에, HDD로부터 네트워크 어댑터로의 데이터 전송 요구 명령이 콘텐츠 관리부로 송신된 경우,상기 콘텐츠 관리부는, 상기 명령을 실행하는 데 필요한 입출력 장치의 성능이, 상기 제3 테이블에 규정된 값의 범위 내인가 여부를 판단하고, 그 결과, 해당 테이블에 규정된 범위 내인 경우에, 상기 제2 테이블을 참조하여, 상기 데이터 액세스부에서 이용하는 처리 모듈로서, 하드디스크 액세스 처리 모듈 및 네트워크 액세스 처리 모듈, 상기 데이터 처리부에서 이용하는 처리 모듈로서, 적어도 포맷 변환 처리 모듈을 선택하고, 상기 하드디스크 액세스 처리 모듈에 의해 처리된 데이터가 상기 포맷 변환 처리 모듈에 입력되고, 상기 포맷 변환 처리 모듈에 의해 처리된 데이터가 상기 네트워크 액세스 처리 모듈에 입력되도록 연결하고,상기 콘텐츠 처리부는, 각 처리 모듈에 있어서의 처리를 실행함으로써, 해당 명령이 실행되는 것을 특징으로 하는 콘텐츠 처리 장치.
- 제6항에 있어서,상기 명령에 포함되는 데이터의 전송원 정보와 전송처 정보에 기초하여,상기 하드디스크 액세스 처리 모듈에서는, 상기 HDD에서 상기 전송원 정보로 지정된 데이터가 출력되는 처리가 실행되고, 상기 포맷 변환 처리 모듈에서는 상기 데이터에 헤더가 부가되는 처리가 실행되고, 상기 네트워크 액세스 처리 모듈에서는 상기 전송처 정보에 기초하여, 상기 데이터가 네트워크 상에 송신되는 처리가 실행되는 것을 특징으로 하는 콘텐츠 처리 장치.
- 제6항에 있어서,상기 명령에 부호화 방법이 포함되어 있는 경우, 상기 콘텐츠 관리부는 부호화 처리 모듈을 선택하고, 상기 포맷 변환 처리 모듈에 의해 처리된 데이터가 상기 부호화 처리 모듈에 입력되도록 연결하고,상기 콘텐츠 처리부는, 각 처리 모듈에 있어서의 처리를 실행함으로써, 해당 명령이 실행되는 것을 특징으로 하는 콘텐츠 처리 장치.
- 명령을 발행하는 명령 발행부와 콘텐츠의 입력 장치와 출력 장치를 갖는 콘텐츠 처리 장치에서의, 콘텐츠 처리 방법으로서,상기 명령 발행부로부터 명령이 발행되는 공정과,상기 입력 장치 혹은 출력 장치의 사용 가능 성능을 규정한 제1 테이블을 참조하여, 상기 명령을 실행하는 데 이용되는 입출력 장치의 성능이, 상기 제1 테이블에 규정된 값의 범위 내인가 여부를 판단하는 공정과,상기 판단의 결과, 상기 제1 테이블에 규정된 범위 내인 경우에, 상기 명령에 대응하는 처리 모듈의 조합을 규정한 제2 테이블 및 선택 가능한 처리 모듈을 규정한 제3 테이블을 참조하여, 상기 해당하는 처리 모듈을 추출하여 선택된 처리 모듈을 연결하는 공정과,상기 연결된 처리 모듈을 이용하여, 상기 명령을 실행하는 공정을 포함하는 것을 특징으로 하는 콘텐츠 처리 방법.
- 명령을 발행하는 명령 발행부와 콘텐츠의 입력 장치와 출력 장치를 갖는 계산기에 있어서의 컴퓨터 프로그램 제품에 있어서,계산기에,상기 명령 발행부로부터 명령이 발행되는 공정과,상기 입력 장치 혹은 출력 장치의 사용 가능 성능을 규정한 제1 테이블을 참조하여, 상기 명령을 실행하는 데 이용되는 입출력 장치의 성능이, 상기 제1 테이블에 규정된 값의 범위 내인가 여부를 판단하는 공정과,상기 판단의 결과, 상기 제1 테이블에 규정된 범위 내인 경우에, 상기 명령에 대응하는 처리 모듈의 조합을 규정한 제2 테이블 및 선택 가능한 처리 모듈을 규정한 제3 테이블을 참조하여, 상기 해당하는 처리 모듈을 추출하여 선택된 처리 모듈을 연결하는 공정과,상기 연결된 처리 모듈을 이용하여, 상기 명령을 실행하는 공정을 실행시키는 것을 특징으로 하는 컴퓨터 프로그램 제품.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004085958A JP2005275643A (ja) | 2004-03-24 | 2004-03-24 | コンテンツデータ処理装置及び方法 |
JPJP-P-2004-00085958 | 2004-03-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050094729A true KR20050094729A (ko) | 2005-09-28 |
KR100679580B1 KR100679580B1 (ko) | 2007-02-07 |
Family
ID=34925028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040035464A KR100679580B1 (ko) | 2004-03-24 | 2004-05-19 | 콘텐츠 데이터 처리 장치 및 방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20050229187A1 (ko) |
EP (1) | EP1589423A3 (ko) |
JP (1) | JP2005275643A (ko) |
KR (1) | KR100679580B1 (ko) |
CN (1) | CN100440196C (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4828927B2 (ja) * | 2005-12-16 | 2011-11-30 | パナソニック株式会社 | ストリーム制御装置 |
US20080212773A1 (en) * | 2007-03-02 | 2008-09-04 | Houlberg Christian L | Parallel data stream decryption device |
KR200448436Y1 (ko) | 2007-10-18 | 2010-04-09 | 고상수 | 송아지 우리 |
US8171154B2 (en) * | 2009-09-29 | 2012-05-01 | Net Power And Light, Inc. | Method and system for low-latency transfer protocol |
CN103152241B (zh) * | 2013-02-28 | 2017-09-29 | 上海斐讯数据通信技术有限公司 | 一种基于吉比特光网终端的虚拟局域网实现方法 |
JP2015095067A (ja) * | 2013-11-12 | 2015-05-18 | 株式会社東芝 | データ伝送装置、データ伝送方法およびプログラム |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07302236A (ja) * | 1994-05-06 | 1995-11-14 | Hitachi Ltd | 情報処理システムおよびその方法並びに情報処理システムにおけるサービス提供方法 |
JP3536423B2 (ja) | 1995-04-07 | 2004-06-07 | ソニー株式会社 | 放送設備運用システムおよび方法 |
US6298370B1 (en) * | 1997-04-04 | 2001-10-02 | Texas Instruments Incorporated | Computer operating process allocating tasks between first and second processors at run time based upon current processor load |
US6205492B1 (en) | 1997-04-04 | 2001-03-20 | Microsoft Corporation | Method and computer program product for interconnecting software drivers in kernel mode |
US6519660B1 (en) * | 1999-09-28 | 2003-02-11 | International Business Machines Corporation | Method, system and program products for determining I/O configuration entropy |
CA2356343A1 (en) * | 1999-10-25 | 2001-05-17 | Sony Corporation | Method for managing content data |
JP2001222504A (ja) * | 1999-12-03 | 2001-08-17 | Canon Inc | 電子機器、電子機器の制御方法及び記録媒体 |
US7340153B2 (en) * | 2000-01-11 | 2008-03-04 | Hitachi, Ltd. | Apparatus and method for recording and reproducing information |
JP5055492B2 (ja) * | 2001-05-07 | 2012-10-24 | サイエンスパーク株式会社 | 電子計算機のインターフェースドライバプログラム及びその記録媒体 |
GB2379292B (en) * | 2001-08-31 | 2005-09-28 | Discreet Logic Inc | Processing data in an application including a plurality of application modules |
EP1296243A3 (en) * | 2001-09-25 | 2007-04-11 | Interuniversitair Microelektronica Centrum Vzw | A method for operating a real-time multimedia terminal in a QoS manner |
US7765521B2 (en) * | 2002-08-29 | 2010-07-27 | Jeffrey F Bryant | Configuration engine |
JP4340455B2 (ja) * | 2003-03-10 | 2009-10-07 | 富士通株式会社 | 画像処理プログラム作成方法、画像処理プログラムの作成プログラムおよび画像処理プログラム作成装置 |
JP4153817B2 (ja) * | 2003-03-28 | 2008-09-24 | 富士通株式会社 | データ符号化方法およびデータ符号化装置 |
-
2004
- 2004-03-24 JP JP2004085958A patent/JP2005275643A/ja active Pending
- 2004-05-17 EP EP04011696A patent/EP1589423A3/en not_active Withdrawn
- 2004-05-18 US US10/847,664 patent/US20050229187A1/en not_active Abandoned
- 2004-05-19 KR KR1020040035464A patent/KR100679580B1/ko not_active IP Right Cessation
- 2004-05-27 CN CNB2004100428858A patent/CN100440196C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN100440196C (zh) | 2008-12-03 |
CN1673993A (zh) | 2005-09-28 |
EP1589423A2 (en) | 2005-10-26 |
US20050229187A1 (en) | 2005-10-13 |
EP1589423A3 (en) | 2007-09-05 |
KR100679580B1 (ko) | 2007-02-07 |
JP2005275643A (ja) | 2005-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5005895B2 (ja) | インバンド制御情報を伝送するためのストラテジー | |
US8218770B2 (en) | Method and apparatus for secure key management and protection | |
JP4504687B2 (ja) | エミュレータインターフェースを利用した通信構造 | |
US20030028652A1 (en) | Apparatus for and method of invalidating or deleting digital content after it expires by comparing the embedded time with a global time | |
US7979264B2 (en) | System and method for interfacing a media processing apparatus with a computer | |
US20010005446A1 (en) | Multimedia information playback apparatus and method | |
WO1998016887A1 (en) | Method of switching video source transferred by using zv port, and computer system using the method | |
JP4667108B2 (ja) | データ処理装置 | |
MXPA04006188A (es) | Procesador de medios de fundacion de medios. | |
US7000039B2 (en) | Information processing apparatus for recording streaming data in a storage device | |
US20080240685A1 (en) | Recording and reproducing apparatus | |
KR100679580B1 (ko) | 콘텐츠 데이터 처리 장치 및 방법 | |
US7054959B2 (en) | Isochronous data transfer control method including packet configuration of thus-read isochronous header and data | |
JP2009505453A (ja) | 機器に記憶されたコンテンツの再生の遠隔制御 | |
US11868819B2 (en) | System and method for constructing filter graph-based media processing pipelines in a browser | |
US20110047255A1 (en) | Multimedia processing control apparatus and multimedia processing control method | |
KR100516411B1 (ko) | 패킷화된 데이터 통신 인터페이스 장치의 pci-직렬 버스 인터페이스 장치를 자율적으로 동작하는 방법 및 시스템 | |
JP4249569B2 (ja) | デマルチプレクサのアプリケーションプログラムインターフェイス | |
JP2021012691A (ja) | エンコードとアップロードの並行処理によってメディアファイルの送信時間を短縮することができる方法およびシステム | |
US20080126752A1 (en) | Dual-processor communication | |
US11194715B2 (en) | Method for data communication, and system for implementing the method | |
WO2023216798A1 (zh) | 音视频的转码装置、方法、设备、介质及产品 | |
JP2008065736A (ja) | データ処理装置、データ処理方法、プログラムおよび記録媒体 | |
US8824866B1 (en) | Storage emulation control | |
Street et al. | A video mail distribution system for networked personal computers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
J201 | Request for trial against refusal decision | ||
AMND | Amendment | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130118 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20140120 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20150120 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20160105 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20170103 Year of fee payment: 11 |
|
LAPS | Lapse due to unpaid annual fee |