KR101559769B1 - 미들웨어, 녹화물 목록 제공 방법 및 녹화물 목록 제공방법을 기록한 기록매체 - Google Patents

미들웨어, 녹화물 목록 제공 방법 및 녹화물 목록 제공방법을 기록한 기록매체 Download PDF

Info

Publication number
KR101559769B1
KR101559769B1 KR1020080025339A KR20080025339A KR101559769B1 KR 101559769 B1 KR101559769 B1 KR 101559769B1 KR 1020080025339 A KR1020080025339 A KR 1020080025339A KR 20080025339 A KR20080025339 A KR 20080025339A KR 101559769 B1 KR101559769 B1 KR 101559769B1
Authority
KR
South Korea
Prior art keywords
recordings
list
record
series
data
Prior art date
Application number
KR1020080025339A
Other languages
English (en)
Other versions
KR20090100001A (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 엘지전자 주식회사
Priority to KR1020080025339A priority Critical patent/KR101559769B1/ko
Priority to US12/382,563 priority patent/US8687940B2/en
Publication of KR20090100001A publication Critical patent/KR20090100001A/ko
Application granted granted Critical
Publication of KR101559769B1 publication Critical patent/KR101559769B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/105Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/322Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier used signal is digitally coded
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4334Recording operations
    • 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/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/913Television signal processing therefor for scrambling ; for copy protection
    • H04N2005/91357Television signal processing therefor for scrambling ; for copy protection by modifying the video signal
    • H04N2005/91364Television signal processing therefor for scrambling ; for copy protection by modifying the video signal the video signal being scrambled
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/781Television signal recording using magnetic recording on disks or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation 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/8042Transformation 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation 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/806Transformation 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/8063Transformation 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal

Abstract

미들웨어 및 녹화물 목록 제공 방법이 개시된다. 인터페이스 모듈은 데이터 방송 관련 어플리케이션과 정보 또는 명령을 송수신한다. 서비스 모듈은 인터페이스 모듈로부터 녹화물 목록 요청 명령이 수신되면, 녹화물에 대한 객체 간의 연관관계를 기초로 저장된 녹화물 목록을 필터링하고 필터링한 녹화물 목록을 인터페이스 모듈로 송신한다. 저장된 녹화물 중에서 특정 조건의 녹화물 목록을 인터페이스 모듈을 통해 제공하므로, 케이블 방송 사업자 등은 방송 수신기에 저장된 녹화물 중에서 시리즈 녹화물 등의 특정 조건에 해당하는 녹화물에 대한 목록을 디스플레이할 수 있는 어플리케이션을 용이하고 간편하게 제작할 수 있고, 사용자는 어플리케이션을 통해 방송 수신기에 저장된 녹화물을 용이하게 검색 및 분류할 수 있어 자신이 원하는 녹화물에 편리하게 찾을 수 있으며, 특히 시리즈물로 녹화된 각 녹화물에 대한 개별 명칭을 알지 못하는 경우에도, 사용자는 시리즈물로 녹화된 녹화물에 대한 목록을 한 번의 명령으로 신속하고 용이하게 찾을 수 있다.
미들웨어, 녹화물, OCAP, API, 목록

Description

미들웨어, 녹화물 목록 제공 방법 및 녹화물 목록 제공 방법을 기록한 기록매체{Middleware, method for providing a list of Records and recording media for the method}
본 발명은 미들웨어 및 녹화물 목록 제공 방법에 관한 것으로, 보다 상세하게는, 저장매체에 저장된 녹화물들 중에서 특정 녹화물에 대한 목록을 어플리케이션에 제공하는 미들웨어 및 방법에 관한 것이다.
방송국으로부터 송신되는 방송파에는 비디오, 오디오 및 어플리케이션 등 다양한 콘텐츠가 포함되어 있다. 이러한 방송파를 수신하고 비디오 및 오디오와 동기화된 어플리케이션을 실행하기 위한 데이터방송 규격이 개발되었고 운영되고 있다. 이러한 데이터방송 규격은 단순히 비디오 및 오디오를 보여주는 것뿐만 아니라, 송신된 어플리케이션을 수신하여 이를 단말기로 로드하고 로드된 어플리케이션을 실행함에 있어서 다양한 추가 기능을 구현하는 것이 가능하다.
일예로 셋탑박스는 이러한 데이터방송 규격을 지원하는 단말기로서, 셋탑박스에는 장치 드라이버(Device Driver) 상에 자바 가상 머신(Java Virtual Machine)을 포팅하고 이를 이용하여 규격 응용 프로그래밍 인터페이스(API : Application Programming Interface)를 지원하는 자바(Java) 기반의 데이터방송 미들웨어가 구현되어 있다. 케이블 방송 사업자(MSO : Multiple System Operator)들은 셋탑박스에 구현된 데이터방송 미들웨어에서 제공하는 Java API를 이용하여 DVR, EPG등을 서비스하는 어플리케이션을 손쉽게 제작할 수 있다. 케이블 방송 사업자(MSO)가 제작한 어플리케이션은 방송 스트림을 통해 전송되면 셋탑박스의 데이터방송 미들웨어 상에서 어플리케이션들이 실행된다.
데이터방송 규격 중에 'GEM(Globally Executable Multimedia Home Platform)'은 가장 공통적인 내용만을 포함한 규격이며, 'OCAP(OpenCable Application Platform)'은 이를 케이블 방송 환경으로 확장한 규격으로 북미에서 주로 사용된다. 이 두 규격은 각각 'DVB Digital Recording Extension to GEM', 'OCAP Extension : OCAP Digital Video Recorder'라는 DVR을 지원하기 위한 확장 규격을 가지고 있다.
DVR은 현재 방송 내용을 녹화하여 나중에 다시 보거나, 실시간 방송에 대해 되감기나 일시정지 등의 기능을 가능하게 하는 기능이다. DVR 기능을 사용하기 위해서는 셋탑박스의 미들웨어가 각 규격의 DVR 확장 API를 지원해야 하며, 케이블 방송 사업자(MSO)가 DVR API를 사용하는 어플리케이션을 제공하여야 한다.
본 발명이 이루고자 하는 기술적 과제는 저장된 녹화물에 중에서 특정 조건을 만족하는 녹화물에 대한 목록을 제공하는 어플리케이션을 용이하게 제작할 수 있도록 지원하는 미들웨어 및 녹화물 목록 제공 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는 저장된 녹화물에 중에서 시리즈 녹화물에 대한 목록을 제공하는 어플리케이션을 용이하게 제작할 수 있도록 지원하는 미들웨어 및 녹화물 목록 제공 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 또 다른 기술적 과제는 OCAP 규격을 따라 저장된 녹화물 중에서 특정 조건을 만족하는 녹화물에 대한 목록을 신속하고 용이하게 검출할 수 있는 미들웨어 및 녹화물 목록 제공 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 또 다른 기술적 과제는 OCAP 규격을 따라 저장된 녹화물 중에서 시리즈 녹화물에 대한 목록을 신속하고 용이하게 검출할 수 있는 미들웨어 및 녹화물 목록 제공 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 또 다른 기술적 과제를 달성하기 위해, 본 발명에 따른 녹화물 목록 제공 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 미들웨어는 데이터 방송 관련 어플리케이션과 정보 또는 명령을 송수신하는 인터페이스 모듈; 및 상기 인터페이스 모듈로부터 녹화물 목록 요청 명령이 수신되면, 녹화물에 대한 객체 간의 연관관계를 기초로 저장된 녹화물 목록을 필터링하고 상기 필터링된 녹화물 목록을 상기 인터페이스 모듈로 송신하는 서비스 모듈;을 구비한다. 여기서 상기 객체 간의 연관관계는 상속 관계이거나 형제 관계일 수 있다.
상기의 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 미들웨어는 데이터 방송 관련 어플리케이션과 정보 또는 명령을 송수신하는 인터페이스 모듈; 및 상기 인터페이스 모듈로부터 시리즈 녹화물 목록 요청 명령이 수신되면, 저장된 녹화물 목록으로부터 시리즈 녹화물 목록을 검출하여 이를 상기 인터페이스로 송신하는 서비스 모듈;을 포함한다. 여기서 상기 서비스 모듈은 시리즈 녹화물 간의 연관성을 기초로 상기 저장된 녹화물 목록을 필터링하여 시리즈 목록을 검출한다. 여기서 상기 시리즈 녹화물 간의 연관성은 속성값의 연관성일 수 있다.
상기의 또 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 녹화물 목록 제공 방법은 데이터 방송 관련 어플리케이션으로부터 시리즈 녹화물 목록 요청 명령을 수신하는 단계; 저장된 녹화물 목록으로부터 시리즈 녹화물 목록을 검출하는 검출단계; 및 검출된 시리즈 녹화물 목록을 상기 데이터 방송 관련 어플리케이션에 송신하는 단계;를 갖는다.
바람직하게 상기 검출단계는, 저장된 녹화물 목록에 포함된 녹화물이 시리즈 녹화물인지를 판단하는 단계; 및 상기 녹화물이 시리즈 녹화물인 경우에는, 상기 녹화물을 상기 시리즈 녹화물 목록에 포함하는 단계;를 갖는다.
바람직하게 상기 검출단계에서, 시리즈 녹화물에 대한 객체 및 상기 저장된 녹화물 목록에 포함된 녹화물에 대한 객체 간의 연관관계를 기초로 상기 시리즈 녹화물 목록을 검출할 수 있다.
상기의 또 다른 기술적 과제를 달성하기 위해, 상기 녹화물 목록 제공 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 발명에 따른 미들웨어 및 녹화물 목록 제공 방법에 의하면, 저장된 녹화물 중에서 특정 조건의 녹화물 목록을 인터페이스 모듈을 통해 제공하므로, 케이블 방송 사업자 등은 방송 수신기에 저장된 녹화물 중에서 시리즈 녹화물 등의 특정 조건에 해당하는 녹화물에 대한 목록을 디스플레이할 수 있는 어플리케이션을 용이하고 간편하게 제작할 수 있고, 사용자는 어플리케이션을 통해 방송 수신기에 저장된 녹화물을 용이하게 검색 및 분류할 수 있어 자신이 원하는 녹화물에 편리하게 찾을 수 있으며, 특히 시리즈물로 녹화된 각 녹화물에 대한 개별 명칭을 알지 못하는 경우에도, 사용자는 시리즈물로 녹화된 녹화물에 대한 목록을 한 번의 명령으로 신속하고 용이하게 찾을 수 있다.
또한, OCAP 규격을 따라 기존의 OCAP 규격의 수정 없이 RecordingListFilter 클래스를 상속한 SeriesRecordingFilter 클래스를 추가하여 저장된 녹화물에 중에서 특정 시리즈 녹화물에 속하는 녹화물에 대한 목록 제공을 지원할 수 있어, 용이하게 OCAP 규격의 완성도를 높일 수 있다.
또한, 저장된 녹화물에 대한 각 객체의 연관 관계 또는 저장된 녹화물의 속 성의 연관성을 기초로 녹화물을 필터링하므로, 별도의 저장공간을 할당할 필요가 없고 단순한 비교 연산을 통해 필터링을 수행할 수 있어, 저장된 녹화물 중에서 특정 조건을 만족하는 녹화물에 대한 목록을 신속하게 검출하여 제공할 수 있다.
이하 상기의 목적을 구체적으로 실현할 수 있는 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 설명한다. 이때 도면에 도시되고 또 이것에 의해서 설명되는 본 발명의 구성과 작용은 적어도 하나의 실시예로서 설명되는 것이며, 이것에 의해서 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 이는 당해 기술분야에 종사하는 기술자의 의도 또는 관례 또는 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 함을 밝혀두고자 한다.
도 1은 방송 수신기의 계층구조에 대한 바람직한 일 실시예의 구성을 도시한 구조도이다.
도 1을 참조하면, 방송 수신기(100)는 어플리케이션(110, 130), 미들웨어(120), 운영 시스템(Operating System, 140) 및 하드웨어(Hardware, 150)를 구비한다.
미들웨어(120)는 어플리케이션(110, 130)과 운영 시스템(140) 간의 데이터를 매개하는 역할을 수행한다. 또한 미들웨어(120)는 어플리케이션(110, 130)의 요청을 수신하고, 수신한 요청을 실행하여 수신한 요청에 대한 결과를 산출하며, 산출한 결과를 어플리케이션(110, 130)에 송신하는 기능을 수행한다. 이를 위해 미들웨어(120)는 연결부(121) 및 엔진(126)을 구비한다.
연결부(121)는 엔진(126)와 어플리케이션(110) 사이에서 데이터, 정보 및 명령을 송수신하는 인터페이스 기능을 수행한다. 즉 어플리케이션(110)은 연결부(121)를 통해 미들웨어(120)가 제공하는 서비스를 사용할 수 있다. 어플리케이션(110)의 제작자가 미들웨어(120)을 사용할 수 있도록 각 방송규격에는 미들웨어(120)가 제공하는 특정 서비스를 요청하기 위한 요청 양식이 정의되어 있다. 만일 어플리케이션(110)이 각 방송규격에 정의된 요청 약식에 따라 미들웨어(120)에 특정 서비스에 대한 수행 요청을 한 경우에는, 연결부(121)는 특정 서비스에 대한 수행 요청을 수신하고 엔진(126)이 요청한 특정 서비스를 수행할 수 있도록 특정 서비스에 대한 수행 요청을 엔진(126)으로 전달한다.
여기서 방송규격에서 정의된 미들웨어(120)가 제공하는 특정 서비스를 요청하기 위한 요청 양식의 일예로 JAVA로 정의된 API(Application Programming Interface)가 있으며, API의 종류로는 AWT API, HAVi API, JavaTV API, DVR API, DVR API 있다. 참고로 어플리케이션 제작자는 방송규격에 정의된 API를 기초로 어플리케이션(110)을 개발할 수 있다.
만일 특정 서비스를 요청하기 위한 요청 양식이 API로 정의된 경우에는, 연 결부(121)는 어플리케이션(110)이 특정 API를 호출하면 호출된 특정 API에 대한 특정 서비스를 엔진(126)이 수행하도록 어플리케이션(110)과 엔진(126)를 매개한다. 또한 그러한 경우에는, 연결부(121)는 AWT 연결부(121), HAVi API(123), JavaTV API(124) 및 DVR API(125) 등 다양한 API를 제공 또는 지원할 수 있다.
엔진(126)은 연결부(121)가 송신하는 요청에 따라 서비스를 수행하고, 그결과를 연결부(121)에 제공한다. 이를 위해 엔진(126)은 AWT(127), HAVi(128), Java TV(129), DVR(131)를 구비한다. AWT(127), HAVi(128), Java TV(129), DVR(131)는 각각 특정 서비스 모듈로서 각 AWT 연결부(121), HAVi API(123), JavaTV API(124), 및 DVR API(125)가 호출된 경우에 실행되며, 다른 서비스 모듈과 데이터를 송수신하거나 하드웨어를 제어 및 조작하여 특정 서비스를 수행한다.
여기서 미들웨어(120)는 일예로 OCAP(Open Cable Application Platform) 등이 될 수 있고 어플리케이션(110)은 일예로 OCAP 어플리케이션이 될 수도 있다.
OCAP은 오픈 케이블 방식에서 채택된 데이터 방송 관련 어플리케이션의 플랫폼으로서, 하드웨어 자원 및 운영 시스템을 이용하여 해당 어플리케이션(110, 130)에 고수준의 서비스를 제공한다.
또한 엔진(126)은 실행 엔진(Execution Engine)과 표현 엔진(Presentation Engine)을 포함할 수 있다. 여기서 실행 엔진은 자바(Java)로 작성된 어플리케이션을 해석하고 실행시키며, 표현 엔진은 HTML로 작성된 어플리케이션을 해석하고 실행시킨다. 일 예로, OCAP-J(자바) 어플리케이션은 실행 엔진에 의해 수행된다.
한편, 당해 제1실시예 뿐만 아니라, 이하 후술될 다른 실시예에서도, 설명 및 이해의 편의를 고려하여, 상기 데이터 방송 관련 어플리케이션이 OCAP 어플리케이션인 경우를 예로 들어, 설명하도록 하겠다. 따라서, 본 발명의 권리범위는 OCAP 데이터 방송 규격에 한정되는 것은 아니며, 다른 데이터 방송 규격에도 적용될 수 있으며, 본 명세서의 특허청구범위를 고려할 때, 이 점은 명백하다.
예컨대, 케이블뿐만 아니라, 지상파, 위성 방송을 통한 데이터 방송에서도, 본 발명이 적용될 수 있다. 즉 본 발명에 따른 방송 수신기(100)는 사용자에게 리모컨 또는 로컬키(Local Key)의 "TV/Video" 버튼 등의 조작으로, 지상파 방송 모드(Antenna), 위성 방송 모드, 케이블 방송 모드(cable), 비디오 1(Video 1) 및 비디오 2(Video 2)등의 입력할 수 있도록 한다.
어플리케이션은 데이터 방송 관련 어플리케이션(110) 및 네이티브 어플리케이션(130)으로 분류된다.
데이터 방송 관련 어플리케이션(110)은 하드웨어 자원을 활용하기 위해 연결부(121)를 사용한다. 즉 데이터 방송 관련 어플리케이션(110)이 바로 하드웨어 자원을 다루지 않고, 연결부(121)를 통해서 하드웨어 자원들을 사용할 수 있도록 함으로써 어플리케이션(110)과 Hardware(150) 간의 호환성을 유지시킨다. 데이터 방송 관련 어플리케이션(110)의 호환성을 위해 미들웨어(120)는 데이터 방송 관련 어플리케이션(110)을 하드웨어(150)로부터 분리시켜 준다.
여기서 데이터 방송 관련 어플리케이션(110)은 엔진(126)에서 규정한 실행 환경과 연결부(121)를 기초로 동작하는 소프트웨어를 지칭하며, 이러한 이유로 OCAP 어플리케이션이라 하기도 한다.
데이터 방송 관련 어플리케이션(110)은 바운드(Bound, 채널 연동형) 어플리케이션(112), 언바운드(Unbound, 채널 비연동형) 어플리케이션(114), 모니터(Monitor) 어플리케이션(116)을 포함한다.
바운드 어플리케이션(112)은 현재 튜닝된 채널과 관련 또는 튜닝 채널에 바운드된 어플리케이션으로서, 예를 들면 게임, 정보 서비스(Information Services) 등이 있다. 이때 채널 전환이 발생하고 새로이 튜닝된 채널과 관련이 없다면, 바운드 어플리케이션(112)은 종료되게 된다. 즉, 특정 채널에 가면 해당 바운드 어플리케이션(112)이 시작되고, 다른 채널로 전환되면 해당 바운드 어플리케이션(112)은 종료된다.
언바운드 어플리케이션(114)은 특별한 채널에 구속되지 않는 어플리케이션으로서, 예를 들어, EPG(Electronic Program Guide, 117), VOD(Video On Demand,118), Watch TV(119), E-Mail, 채팅(Chatting), 게임, 웹 브라우저 및 PVR(Personal Video Recorder) 등이 있다. 언바운드 어플리케이션(114)은 방송 수신기(100)의 부팅시 다운로드 되어 저장되거나 업데이트되며, 시청 채널에 상관없이 시작되고 종료된다.
EPG(117)는 일반적으로 언급되는 TV 가이드(Guide) 기능 뿐만 아니라, 채널 업/다운(up/down) 등의 방송 수신기의 가장 기본적인 기능들을 수행하는 Watch TV 프로그램의 성격도 포함할 수 있다. 나아가, 상기 EPG를 이용하여, 페이 퍼 뷰(Pay-per-view)와 같은 서비스를 수행하기도 한다.
VOD(118)는, 일반적인 VOD 기능을 수행한다. 예컨대, RVOD(Real VOD), NVOD(Near VOD) 등의 기능을 수행하며, 하드 디스크(Hard Disc)가 있을 경우, 상기 하드 디스크를 이용하여, VOD를 구현할 수도 있다.
Watch TV(119)는 TV를 시청하기 위한 기본적인 동작을 수행하는 프로그램이다. 기존의 Native 어플리케이션이 수행하던 기능과 유사한 동작을 수행한다.
모니터 어플리케이션(116)은 OCAP 표준에 정의된 API를 사용하는 서비스 운용 소프트웨어로서, 다른 어플리케이션의 시작과 종료를 조정할 수 있다. 즉, 모니터 어플리케이션(116)은 케이블 방송 사업자의 목적에 따라서 만든 특수한 언바운드 어플리케이션의 일종으로서, 모니터 어플리케이션(116)만이 쓸 수 있는 API(예를 들어, 방송 수신기(100)의 재부팅, 오류 보고 등)가 모니터 어플리케이션(116)에 제공된다. 또한, 모니터 어플리케이션(116)은 메모리 등의 방송 수신기(100)의 자원에 대해서 여러 어플리케이션의 충돌이 생겼을 때 이를 조정할 수 있으며, 방송 수신기(100)의 거의 모든 기능에 대해서 우선 제어권을 행사할 수 있다.
그리고 모니터 어플리케이션(116)은 채널 관리, 케이블카드의 기능을 제어할 수도 있다. 즉, 케이블카드가 삽입된 호스트에서의 기본 채널 전환 및 동작은 기본적으로 모니터 어플리케이션(116)에 의해 제어된다. 또한, 모니터 어플리케이션(116)은 방송 수신기(100)의 구동이나 기타 부가적인 서비스(EPG, VOD) 등을 위한 어플리케이션들을 다운로드받고 실행할 수 있다.
예를 들어, 데이터 방송 모드에서 운영 시스템(140)은 리모콘과 같은 입력 장치로부터 입력되는 채널 전환키를 미들웨어(120)로 보내주면, 모니터 어플리케이션(116)은 미들웨어(120)로부터 수신된 채널 전환키에 따라 채널 전환에 관련된 여 러 다른 어플리케이션의 상태 변경 및 채널에 종속(dedicated)된 바운드 어플리케이션(112)의 일시 정지 및 종료를 실행한다.
도 2는 데이터 방송 관련 어플리케이션(110)의 라이프 싸이클(life cycle)의 일예를 도시한 개념도이다.
도 2를 참조하면, 데이터 방송 관련 어플리케이션(110)은 자바 어플리케이션으로 구현될 수 있으며, 데이터 방송 관련 어플리케이션(110)이 자바 어플리케이션으로 구현된 경우에는, 본 발명에 따른 방송 수신기(100)는 방송국으로부터 구현된 자바 어플리케이션(Xlet)을 다운 로드하여 탑재할 수 있다. 다운 로드된 자바 어플리케이션(Xlet)은 라이프 사이클(life cylce)를 갖는다.
다운 로드된 자바 어플리케이션(Xlet)은 메모리(memory)에 로드(load, 210)된 후, 초기화(Initialization)된다. 그리고 다운 로드된 자바 어플리케이션(Xlet)은 초기화된 후, 일단 퍼즈(pause) 상태(220)가 된다. 이후, 다운 로드된 자바 어플리케이션(Xlet)은 자기 자신 또는 다른 Xlet에 의해, 스타트(start)되어, 액티브(active) 상태(230)가 된다. 여기서 다운 로드된 자바 어플리케이션(Xlet)은 액티브 상태에서도 자기 자신 또는 다른 Xlet에 의해, 퍼즈(pause) 상태(220)되거나, 삭제(destroy, 240)가 될 수 있다.
이 때, 다른 Xlet이 특정 Xlet을 퍼즈(pause) 상태(220) 혹은 삭제(destroy, 240)하기 위해서는, org.dvb.application.AppProxy object를 통해 퍼즈(pause) 혹은 스톱(stop) 함수를 호출하여야 한다.
org.dvb.application.AppProxy object는 호출하는 어플리케이션이 해당 어플 리케이션을 퍼즈(pause)하거나, 삭제(destroy) 또는 스톱(stop) 시킬 수 있는 권한이 있는지 여부를 검토하여, 권한이 없을 경우, 에러(error)를 발생시키게 되어 있다. 여기서, org.dvb.application.AppProxy object는 케이블 방송업자 등을 통해 전송 및 다운로드 되는 어플리케이션이 아니라, TV 제조업자가 TV 출시 당시, 탑재하여 제공되는 소프트웨어이다.
네이티브 어플리케이션(130)은 디지털 방송 신호를 수신하고, 수신된 디지털 방송 신호로부터 영상 및 음성 정보들 및 그 외의 방송 프로그램 정보(EPG) 등을 역다중화하고, 이를 디바이스 상에 구현하기 위한 일반적인 기능을 수행한다. 즉, 네이티브 어플리케이션(130)은 기본적인 기능을 수행하는 것과 관련된 어플리케이션으로서, 방송 수신기(100)의 출하시에 내장된다.
네이티브 어플리케이션(130)은 미들웨어(120) 및 어플리케이션(110)과 통신할 수 있으며, 통신하기 위한 방법의 일예로 JNI(Java Native Interface)가 있다. 여기서 JNI는 자바(Java)로 작성된 프로그램이 C, 혹은 C++과 같은 언어로 작성된 소프트웨어를 사용하거나, 또는 C, 혹은 C++로 작성된 프로그램이 자바(Java)로 작성된 소프트웨어를 사용할 때 필요한 인터페이스로서, 자바 버츄얼 머신(142)에서 지원된다.
하드웨어(150)는 호스트 디바이스 하드웨어라고도 하며, 셋톱박스와 케이블카드(CableCard)로 구성되며, 일반적으로 TV 제조업자 등에 의해, 초기 생산시부터 셋팅된다. 또한 하드웨어(150)는 하드디스크(151)를 더 구비할 수 있고, 여기서 하드디스크는 내장형 하드디스크일 수 있고, 병렬 포트 또는 USB 포트로 연결되는 외 장형 하드디스크일 수 있다.
케이블카드(CableCard)는 셋톱박스로부터 보안 기능 및 수신 제한 기능을 분리한 것으로서, POD(Point of Deployment) 모듈이라 하기도 한다. 일예로 케이블카드로 PCMCIA 카드가 사용된다. 그리고 케이블카드가 삽입되는 셋톱박스를 호스트라 하기도 한다. 예로 디지털 빌트 인(Digital Buitlt in) TV 또는 디지털 레디(Digital Ready) TV 등이 호스트에 해당한다. 셋톱박스는 튜너(Tuner, 152), 비디오 디코더(Video Decoder, 153), 오디오 디코더(Audio Decoder, 154) 및 그래픽스(OSD, 155)를 포함한다.
운영 시스템(Operating System, 140)은 하드웨어(150), 미들웨어(120) 및 어플리케이션(110, 130)를 관리 또는 제어하고, 하드웨어(150) 및 미들웨어(120) 간의 인터페이스 역할을 수행한다. 이를 위해 운영 시스템(140)은 튜너(152), 비디오 디코더(153), 오디오 디코더(154) 등의 하드웨어를 구동하기 위한 디바이스 드라이버(Device Driver, 141)를 탑재할 수 있고, 자바(Java) 프로그램을 실행시키기 위한 자바 버츄얼 머신(Java Virtual Machine, 142)을 탑재할 수 있으며, 기타 소프트웨어(Other Software, 143)를 탑재할 수 있다. 운영 시스템(Operating System, 140)으로 Windows , Windows NT , Linux , Unix , OS/2 , MAC OS 등의 범용 운영 시스템이 사용될 수 있고, 범용 운영 시스템을 수정하거나 본 발명에 따른 방송 수신기(100) 전용으로 새로 개발한 운영 시스템이 사용될 수 있다.
도 3은 본 발명에 따른 방송 수신기에 대한 바람직한 일 실시예의 구성을 도시한 블록도이다.
도 3을 참조하면, 본 발명에 따른 방송 수신기(300)는 튜너(301), 복조부(demodulating unit)(302), 역다중화기(303), 오디오 복호기(304), 비디오 복호기(305), 네이티브 TV 어플리케이션 매니저(306), 채널 매니저(307), 채널 맵(308), 제1 저장부(309), SI 및/또는 데이터 복호기(310), 제2 저장부(311), 시스템 매니저(312), 데이터 방송 어플리케이션 매니저(313), 저장 제어부(storage controller, 314), 및 제3 저장부(315)를 구비한다. 제1 저장부(309)는 비휘발성 메모리(NVRAM)(또는 플래시 메모리)이고, 제3 저장부(315)는 하드 디스크 드라이브(HDD), 메모리 칩과 같은 대용량 저장 장치이다. 여기서 네이티브 TV 어플리케이션 매니저(306)는 네이티브 어플리케이션(130)과 대응하는 구성요소이고, 시스템 매니저(312) 및 데이터 방송 어플리케이션 매니저(313)는 모니터 어플리케이션(116)과 대응하는 구성요소이며, 채널 매니저(307) 및 저장 제어부(storage controller, 314)는 미들웨어(120)에 대응하는 구성요소이다. 그리고 제 3저장부(315)는 하드디스크(151)에 대응하는 구성요소이다.
튜너(301)는 안테나, 케이블, 위성 중 어느 하나를 통해 특정 채널의 주파수를 튜닝하여 중간 주파수(IF) 신호로 다운 컨버전한 후 복조부(302)로 출력한다. 이때 튜너(301)는 채널 매니저(307)의 제어를 받으며, 또한 튜닝되는 채널의 방송 신호의 결과(result)와 강도(strength)를 채널 매니저(307)에 보고한다.
특정 채널의 주파수로 수신되는 데이터는 오디오 데이터, 비디오 데이터가 적용될 수 있다. 이러한 오디오 데이터, 비디오 데이터는 각종 부호기에 의해 압축되어 방송국으로부터 전송될 것이다. 이 경우, 압축에 사용된 해당 부호기에 대응 되게 수신기 내에서는 오디오 복호기(304), 비디오 복호기(305)가 구비될 것이며, 각 복호기(304, 305)에서의 복호가 수행되어 사용자에게 비디오 및 오디오가 제공될 것이다. 오디오 데이터를 위한 부호/복호 scheme으로는, AC 3, MPEG 2 AUDIO, MPEG 4 AUDIO, AAC, AAC+, HE AAC, AAC SBR, MPEG-Surround, BSAC을 예로 들 수 있고, 비디오 데이터를 위한 부호/복호 scheme으로는, MPEG 2 VIDEO, MPEG 4 VIDEO, H.264, SVC, VC-1 등이 있다.
실시예에 따라서는 데이터 서비스를 위한 데이터, 예컨대 자바 어플리케이션에 대한 데이터, HTML 어플리케이션에 대한 데이터, XML에 대한 데이터가 수신될 수 있다. 이러한 데이터 서비스를 위한 데이터는 자바 어플리케이션을 위한 자바 class file이 될 수 도 있고, 이러한 파일들의 위치를 지시하는 URL file이 될 수도 있다. 또한 각 어플리케이션에서 사용되는 오디오 file, 비디오 file이 될 수도 있다. 또한 실시예에 따라서는 수신되는 데이터는 메타(Meta) 데이터가 될 수도 있다. 이러한 메타 데이터는 XML로 기술되어 DSM-CC 프로토콜을 통해 전송되는 것을 일 예로 들 수 있다.
수신되는 데이터를 이용하여 제공할 수 있는 방송 서비스는 날씨서비스, 교통서비스, 증권서비스, 시청자 참여 퀴즈 프로그램, 실시간 여론 조사, 대화형 교육 방송, 게임서비스, 드라마의 줄거리, 등장인물, 배경음악, 촬영장소 등에 대한 정보 제공서비스, 스포츠의 과거 경기 전적, 선수의 프로필 및 성적에 대한 정보 제공서비스, 상품정보 및 이에 대한 주문 등이 가능하도록 하는 서비스, 매체별, 시간별, 또는 주제별로 프로그램에 대한 정보 제공 서비스 등이 될 수 있으나 본원 발명은 이에 한정하지는 않는다.
복조부(302)는 튜너(301)에서 출력되는 신호에 대해 복조, 채널 등화 등을 수행한 후 TS 패킷 단위로 역다중화기(303)에 출력한다.
저장 제어부(314)는 역다중화기(303)와 인터페이스하여 방송 콘텐츠의 즉시 녹화, 예약 녹화, 타임 시프트(Time shift) 등을 제어한다. 예를 들어, 본 발명에 따른 방송 수신기(300)에 즉시 녹화, 예약 녹화, 타임 시프트 중 어느 하나가 설정되면 역다중화기(303)로 입력되는 해당 방송 콘텐츠는 저장 제어부(314)의 제어에 의해 제3 저장부(315)에 저장된다. 제3 저장부(315)는 타임 시프트 기능을 위한 임시 저장 영역 및/또는 사용자 선택에 따라 데이터를 영구 저장하는 영구 저장 영역으로 구분될 수 있다.
그리고 제3 저장부(315)에 저장된 데이터의 재생이 필요한 경우, 저장 제어부(314)는 제3 저장부(315)에 저장된 해당 데이터를 독출하여 역다중화기(303)로 출력한다.
이때 제3 저장부(315)의 저장 용량은 제한되어 있으므로, 저장 용량의 효율성을 위해, 저장 제어부(314)는 압축 부호화되어 입력된 데이터를 그대로 제3 저장부(315)에 저장하는 것을 본 발명의 일 실시예로 한다. 이 경우 재생 명령에 따라 제3 저장부(315)에서 독출된 데이터는 역다중화기(303)를 통해 해당 복호기(decoder)로 입력되어 원래 상태로 복원된다.
또한 저장 제어부(314)는 제3 저장부(315)에 저장되어 있거나 현재 버퍼링되고 있는 데이터의 재생(play), 빨리 감기(fast forward), 되감기(rewind), 슬로우 모션(slow motion), 인스턴트리플레이(instant replay) 등을 제어할 수 있다. 여기서 인스턴트 리플레이는 다시 보고 싶은 장면을 반복해서 시청 가능한 기능이며, 저장되어 있는 데이터뿐만 아니라 현재 리얼타임으로 수신되는 데이터도 타임 시프트(time shift) 기능과 연계하여 인스턴트 리플레이할 수 있다.
저장 제어부(314)는 입력된 데이터가 아날로그 형태, 예를 들어 전송 방식이 NTSC, PAL 등인 경우, 입력된 데이터를 압축 부호화하여 제3 저장부(315)에 저장할 수 있다. 이를 위해 상기 저장 제어부(314)는 인코더를 포함할 수 있으며, 인코더는 소프트웨어 및 하드웨어 중 적어도 하나로 구현될 수 있다. 인코더는 일 실시예로 MPEG 인코더로 구현될 수 있다. 인코더는 저장 제어부(314)의 외부에 구비될 수도 있다.
한편 저장 제어부(314)는 입력되는 데이터가 제3 저장부(315)에 저장되었을 때 불법 복사되는 것을 방지하기 위해 입력되는 데이터를 스크램블(또는 인크립션이라 하기도 함)하여 제3 저장부(315)에 저장할 수도 있다. 이 경우 저장 제어부(314)는 제3 저장부(315)에 저장되는 데이터를 스크램블하기 위한 스크램블 알고리즘과 제3 저장부(315)에서 독출되는 데이터를 디스크램블(또는 디크립션이라 하기도 함)하기 위한 디스크램블 알고리즘을 포함할 수 있다. 스크램블의 방법으로는 스크램블을 원하는 데이터를 임의의 키(예를 들어, control word)를 이용하여 변형하거나, 신호 자체를 섞는 방법 등이 이용될 수 있다.
한편 역다중화기(303)는 복조부(302)에서 출력되는 리얼 타임 콘텐츠 또는 제3 저장부(315)에서 독출된 데이터를 입력받아 역다중화를 수행한다.
역다중화기(303)는 SI 및/또는 데이터 복호기(SI 및/또는 data decoder, 310)의 제어에 의해 입력되는 데이터 패킷들로부터 데이터 서비스를 위한 데이터와 SI(System Information) 테이블을 역다중화한다. 그리고 역다중화된 데이터와 SI 테이블들은 섹션 형태로 SI 및/또는 데이터 복호기(310)로 출력된다.
채널 내에서 데이터 서비스를 위한 데이터를 추출하여 디코딩하기 위해서는 시스템 정보가 필요하다. 이러한 시스템 정보는 경우에 따라서는 서비스 정보라고도 불리운다. 또한 시스템 정보는 채널 정보, 이벤트 정보 등을 포함할 수 있다.
본 발명의 실시예에서는 시스템 정보로서 PSI/PSIP(Program Specific Information/Program and System Information Protocol) 을 적용하나 본 발명은 이에 한정하는 것은 아니다. 즉 시스템 정보를 테이블 포맷으로 전송하는 프로토콜이라면 그 명칭에 상관없이 본 발명에 적용 가능할 것이다. 
PSI는 채널 및 프로그램을 분류하기 위해 정의된 MPEG-2의 시스템 규격이고, PSIP는 채널 및 프로그램의 분류가 가능한 ATSC(Advanced Television Systems Committee) 규격이다. PSI는 일 실시예로서, PAT(Program Association Table), CAT(Conditional Access Table), PMT(Program Map Table), 및 NIT(Network Information Table)를 포함할 수 있다.
PAT는 PID가 '0'인 패킷에 의해 전송되는 특수 정보로서, 각 프로그램마다 해당 PMT의 PID 정보와 NIT의 PID 정보를 전송한다. CAT는 송신측에서 사용하고 있는 유료 방송 시스템에 대한 정보를 전송한다. PMT는 프로그램 식별 번호와 프로그램을 구성하는 비디오, 오디오 등의 개별 비트열이 전송되는 트랜스포트 스트림 패 킷의 PID 정보, 및 PCR이 전달되는 PID 정보를 전송한다. NIT는 실제 전송망의 정보를 전송한다.
PSIP은 일 실시예로서, VCT(Virtual Channel Table), STT(System Time Table), RRT(Rating Region Table), ETT(Extended Text Table), DCCT(Direct Channel Change Table), DCCSCT(Direct Channel Change Selection Code Table), EIT(Event Information Table), 및 MGT(Master Guide Table)를 포함할 수 있다.
VCT는 가상 채널에 대한 정보 예를 들어, 채널 선택을 위한 채널 정보와 오디오 및/또는 비디오의 수신을 위한 패킷 식별자(PID) 등의 정보를 전송한다. 즉, VCT를 파싱하면 채널 이름, 채널 번호 등과 함께 채널 내에 실려오는 방송 프로그램의 오디오와 비디오의 PID를 알 수 있다.
또한 역다중화기(303)가 시스템 정보를 기초로 검출한 데이터 서비스를 위한 데이터, 예컨대 어플리케이션에 대한 데이터는 SI 및/또는 데이터 복호기(310)에 의해 제2 저장부(311)에 저장될 수 있다.
또한 SI 및/또는 데이터 복호기(310)는 동일한 테이블 식별자(table_id)를 갖는 섹션들을 모아 테이블을 구성하여 파싱하고, 파싱 결과인 시스템 정보를 제2 저장부(311)에 데이터베이스화한다.
이때 상기 SI 및/또는 데이터 복호기(310)는 파싱을 함에 있어서, 역다중화기(303)에서 섹션 필터링하지 않거나 그렇지 못한 나머지 액츄얼 섹션 데이터(actual section data) 부분을 모두 읽어서, 제2 저장부(311)에 저장한다. 제2 저장부(311)는 테이블에서 파싱된 시스템 정보와 DSM-CC 섹션에서 파싱된 서비스 데이터를 저장하는 테이블 및 데이터/오브젝트 캐로젤 데이터베이스이다.
여기서, 하나의 테이블이 하나의 섹션으로 구성되는지 복수개의 섹션으로 구성되는지는 테이블 내 table_id 필드, section_number 필드, last_section_number 필드 등을 통해 알 수 있다. 예를 들어, VCT의 PID를 갖는 TS 패킷만을 모으면 섹션이 되고, VCT에 할당된 테이블 식별자를 갖는 섹션들을 모으면 VCT가 된다.
VCT를 파싱하면 데이터가 전송되는 가상 채널에 대한 정보를 얻을 수 있다.
또한, 본 발명에 따르면, SI 및/또는 데이터 복호기(310)는 VCT의 SLD를 파싱하여 해당 elementary stream의 스트림 타입 정보를 오디오 복호기(304) 혹은 비디오 복호기(305)에 전송한다. 이 경우, 해당 오디오 복호기(304) 혹은 비디오 복호기(305)는 전송된 스트림 타입 정보를 이용하여 오디오 혹은 비디오 디코딩 작업을 수행한다.
또한, 본 발명에 따르면, SI 및/또는 데이터 복호기(310)는 EIT의 AC-3 audio descriptor, MPEG 2 audio descriptor, MPEG 4 audio descriptor, AAC descriptor, AAC+ descriptor, HE AAC descriptor, AAC SBR  descriptor, MPEG surround descriptor, BSAC descriptor, MPEG 2 video descriptor, MPEG 4 video descriptor, H.264 descriptor, SVC descriptor, VC-1 descriptor 등을 파싱하여 해당 이벤트의 오디오 혹은 비디오 코덱 정보를 오디오 복호기(304) 혹은 비디오 복호기(305)에 전송한다. 이 경우, 오디오 복호기(304) 혹은 비디오 복호기(305)는 전송된 오디오 혹은 비디오 코덱 정보를 이용하여 오디오 혹은 비디오 디코딩 작업을 수행한다.
SI 및/또는 데이터 복호기(310)가 획득한 데이터 서비스의 어플리케이션 식별 정보, 서비스 컴포넌트 식별 정보, 서비스 정보는 제2 저장부(311)에 저장될 수도 있고, 데이터 방송 어플리케이션 매니저(313)로 출력될 수도 있다.
그리고 어플리케이션 식별 정보, 서비스 컴포넌트 식별 정보, 서비스 정보는 데이터 서비스를 위한 데이터를 디코딩하는데 참조가 될 수도 있고, 또는 데이터 서비스를 위한 어플리케이션 프로그램의 구동을 미리 준비시킬 수도 있다.
또한 SI 및/또는 데이터 복호기(310)는 채널 및 이벤트 관련 정보 테이블인 시스템 정보 테이블의 역다중화를 제어하여, A/V PID 리스트를 채널 매니저(Channel Manager)(307)로 전송할 수 있다.
채널 매니저(307)는 채널 맵(Channel Map)(308)을 참조하여, 시스템 관련 정보 테이블 수신 요청을 SI 및/또는 데이터 복호기(310)에 할 수 있고, 그 결과를 전송받을 수 있다. 그리고, 채널 매니저(307)는 튜너(301)의 채널 튜닝을 제어할 수도 있다.
또한 채널 매니저(307)는 역다중화기(303)를 직접 제어하여, A/V PID를 직접 셋팅함으로써, 오디오/비디오 복호기(304,305)를 제어할 수도 있다.
오디오/비디오 복호기(304,305)는 메인 서비스 데이터 패킷으로부터 역다중화된 오디오와 비디오를 각각 디코딩하여 출력할 수도 있고, 서비스 데이터 패킷으로부터 역다중화된 오디오와 비디오를 각각 디코딩하여 출력할 수도 있다. 한편 실시예에 따라서는 수신되는 데이터에 데이터 서비스를 위한 데이터뿐만 아니라 오디오 데이터, 비디오 데이터가 포함될 경우, 역다중화기(303)에서 역다중화된 오디오 데이터, 비디오 데이터가 오디오 복호기(304), 비디오 복호기(305)에서 각각 디코딩될 수 있음은 물론이다. 일 예로, 오디오 복호기(304)는 AC-3 복호 알고리즘, MPEG 2 audio 복호 알고리즘, MPEG 4 audio 복호 알고리즘, AAC 복호 알고리즘, AAC+ 복호 알고리즘, HE AAC 복호 알고리즘, AAC SBR 복호 알고리즘, MPEG surround 복호 알고리즘, BSAC 복호 알고리즘을 적용하고, 비디오 복호기(3005)는 MPEG 2 video 복호 알고리즘, MPEG 4 video 복호 알고리즘, H.264 복호 알고리즘, SVC 복호 알고리즘, VC-1 복호 알고리즘을 적용하여 복호할 수 있다.
한편 네이티브 TV 어플리케이션 매니저(306)는 제1 저장부(309)에 저장된 네이티브 어플리케이션 프로그램을 구동시켜, 채널 전환과 같은 일반적인 기능을 수행한다. 네이티브 어플리케이션 프로그램은 수신 시스템의 출하시에 내장되는 소프트웨어를 의미한다.
네이티브 TV 어플리케이션 매니저(306)는 사용자 인터페이스(User Interface ; UI)를 통해 방송 수신기로 사용자 요청이 있는 경우, 스크린 상의 그래픽 사용자 인터페이스(Graphic User Interface ; GUI)로 디스플레이하여 사용자의 요구에 응한다.
사용자 인터페이스는 리모콘, 키패드, 조그 다이얼, 스크린 상에 구비된 터치 스크린 등과 같은 입력 장치를 통해 사용자 요청을 입력받아 네이티브 TV 어플리케이션 매니저(306), 데이터 방송 어플리케이션 매니저(313) 등으로 출력한다.
또한, 네이티브 TV 어플리케이션 매니저(306)는 채널 매니저(307)를 제어하여 채널 관련 운영 즉, 채널 맵(308)의 관리 및 SI 및/또는 데이터 복호기(310)를 제어한다. 그리고 네이티브 TV 어플리케이션 매니저(306)는 방송 수신기 전체의 GUI 제어, 사용자 요구 및 방송 수신기의 상태를 제1 저장부(309)에 저장 및 복원한다.
채널 매니저(307)는 튜너(301)와 SI 및/또는 데이터 복호기(310)를 제어하여  사용자의 채널 요구에 응할 수 있도록 채널 맵(308)을 관리한다.
즉, 채널 매니저(307)는 튜닝(tuning)할 채널에 관련된 테이블을 파싱(parsing)하도록 SI 및/또는 데이터 복호기(310)에 요구하고, SI 및/또는 데이터 복호기(310)로부터  테이블을 파싱한 결과를 보고 받는다. 그리고 채널 매니저(307)는 보고된 파싱 결과에 따라 채널 맵(308)을 업데이트(update)하고, 서비스 데이터로부터 데이터 서비스를 위한 데이터와 관련 테이블을 역다중화하기 위한 PID를 상기 역다중화기(303)에 설정한다.
시스템 매니저(312)는 전원 온 및 오프에 의해 방송 수신기의 부팅을 제어하고, 롬 이미지(다운로드된 소프트웨어 이미지를 포함)를 제1 저장부(309)에 저장한다.
즉, 제1 저장부(309)는 방송 수신기의 운용에 필요한 OS(operating system) 등의 운용 프로그램과 데이터 서비스 기능을 수행하는 어플리케이션 프로그램(application program)을 저장한다.
어플리케이션 프로그램은 제2 저장부(311)에 저장된 데이터 서비스를 위한 데이터를 처리하여 사용자에게 데이터 서비스를 제공하기 위한 프로그램이다. 제2 저장부(311)에 데이터 서비스를 위한 데이터가 저장되어 있다면 어플리케이션 프로 그램 또는 다른 어플리케이션 프로그램에 의해 처리되어 사용자에게 제공된다.
제1 저장부(309)에 저장된 운영 프로그램과 어플리케이션 프로그램은 다운로드되는 새로운 프로그램으로 갱신 또는 수정될 수 있다. 또한 저장된 운영 프로그램과 어플리케이션 프로그램은 동작 전원의 공급이 차단되어도 지워지지 않고 계속 저장되므로, 동작 전원이 인가되면 새로이 다운로드받지 않고도 수행될 수 있다.
본 발명에 따른 데이터 서비스를 제공하기 위한 어플리케이션 프로그램은 방송 수신기의 출하시에 제1 저장부(309)에 내장될 수도 있고, 이후 다운로드를 통해 제1 저장부(309)에 저장될 수도 있다. 또한 제1 저장부(309)에 저장된 데이터 서비스를 위한 어플리케이션 프로그램 즉, 데이터 서비스 제공 어플리케이션 프로그램은 삭제, 갱신, 수정이 가능하다. 또한 데이터서비스 제공 어플리케이션 프로그램은 데이터 서비스를 위한 데이터가 수신될 때마다 데이터 서비스를 위한 데이터와 함께 다운로드 되어 실행될 수도 있다.
데이터 방송 어플리케이션 매니저(313)는 사용자 인터페이스(UI: User Interface)에 의해 데이터 서비스 요청이 있는 경우, 제1 저장부(309)에 저장된 해당 어플리케이션 프로그램을 구동시켜 요청된 데이터를 처리함에 의해 사용자에게 데이터 서비스를 제공한다. 그리고 이러한 데이터 서비스를 위해 상기 데이터 방송 어플리케이션 매니저(313)는 GUI를 지원한다. 여기서 데이터 서비스는 문자, 음성, 그래픽, 정지 영상, 동영상 등의 형태로 제공된다.
데이터 방송 어플리케이션 매니저(313)는 제1 저장부(309)에 저장된 어플리케이션 프로그램을 실행시키기 위한 가상 머신을 사용할 수 있다. 가상 머신은 일 예로, 자바(Java) 프로그램을 실행시키기 위한 자바 버츄얼 머신(Java Virtual Machine)이 될 수 있다.
도 4는 본 발명에 따른 미들웨어에 대한 바람직한 일 실시예의 구성을 도시한 블록도이다.
도 4를 참조하면, 본 발명에 따른 미들웨어(400)는 미들웨어(120)에 대응하는 것으로서 인터페이스 모듈(410) 및 서비스 모듈(420)을 구비한다. 여기서 인터페이스 모듈(410), 서비스 모듈(420) 및 저장매체(402)는 각각 연결부(121), 엔진(126) 및 하드디스크(151)에 대응하는 구성요소이다. 즉 서비스 모듈(420)은 OCAP 표준에 따라 구현될 수 있고, 인터페이스 모듈(410)은 OCAP 표준에 정의된 API를 포함하여 구현될 수 있다. 또한 일예로 본 발명에 따른 방송 수신기(300)의 저장 제어부(314)가 미들웨어(400)의 기능을 수행할 수 있고, 본 발명에 따른 방송 수신기(300)의 제3 저장부(315)가 저장매체(402)의 기능을 수행할 수 있다.
인터페이스 모듈(410)은 데이터 방송 관련 어플리케이션(401)과 정보 또는 명령을 송수신한다. 어플리케이션(401)이 녹화물 목록 요청 명령을 송신하면, 인터페이스 모듈(410)은 녹화물 목록 요청을 수신하고 수신한 녹화물 목록 요청을 서비스 모듈(420)에 전송한다. 그리고 서비스 모듈(420)이 녹화물 목록 요청에 관련된 녹화물에 대한 녹화물 목록 송신하면, 인터페이스 모듈(410)은 어플리케이션(401)이 요청한 녹화물 목록 요청 명령에 대한 응답으로, 서비스 모듈(420)이 송신한 녹화물 목록을 어플리케이션(401)으로 송신한다.
여기서 녹화물 목록 요청 명령은 전체 녹화물에 대한 목록 요청 명령일 수 있고, 전체 녹화물 중에서 특정 조건을 만족하는 녹화물에 대한 목록 요청 명령일 수 있으며, 전체 녹화물 중에서 특정 시리즈물에 속하는 녹화물에 대한 목록 요청 명령일 수 있다. 또한 시리즈물이란 방송물 중에서 연속 드라마와 같이 연속으로 방송되는 영상물을 말하며, 시리즈물에 속하는 녹화물이란 연속으로 방송되는 영상물을 각각 녹화한 녹화물을 말한다. 즉 시리즈물에 속하는 녹화물이란 연속 드라마 각 편이 방송될 때마다 각 편을 녹화한 녹화물을 말한다.
그리고 녹화물 목록에 포함되는 각 녹화물에 대한 정보는 녹화물을 식별하기 위한 정보 또는 녹화물에 대한 안내 정보일 수 있다. 녹화물을 식별하기 위한 정보는 고유번호, 이름 등을 포함하며, 고유번호는 녹화물을 서로 구별하기 위해 각 녹화물에 유일하게 할당되는 문자, 숫자 또는 기호 등으로 구성되는 문자열을 말한다. 그리고 녹화물에 대한 안내 정보는 녹화물을 소개하기 위한 정보로서 녹화물의 제목, 종류, 재생시간, 연출자 정보, 출연자 정보를 포함한다. 종류는 드라마, 영화, 뉴스, 다큐멘터리, 스포츠 경기, 쇼프로 등의 영상물 종류를 의미한다. 특히 녹화물의 종류가 영화 등인 경우에는, 녹화물에 대한 안내 정보는 무협, 판타지, 공포, 코믹, 드라마 등의 영화의 장르에 대한 정보를 포함할 수 있다.
또한 녹화물에 대한 안내 정보는 방송국으로부터 수신될 수 있고, 방송 수신기(300)가 방송 프로그램을 녹화할 때 녹화되는 녹화물과 연관되어 녹화물에 대한 안내 정보가 저장될 수 있다. 일예로 EPG(Electronic Program Guide)로 제공되는 정보를 기초로 녹화물에 대한 안내 정보가 저장될 수 있다.
서비스 모듈(420)은 인터페이스 모듈(410)을 통해 어플리케이션(401)이 송신 한 정보 또는 명령을 수신한다. 그리고 서비스 모듈(420)은 수신한 명령에 대한 작업을 수행한 후에 수행 결과를 인터페이스 모듈(410)에 전송하여, 인터페이스 모듈(410)이 어플케이션(401)에 수행 결과를 송신하게 한다. 일예로, 서비스 모듈(420)은 인터페이스 모듈(410)으로부터 녹화물 목록 요청 명령을 수신할 수 있다. 녹화물 목록 요청 명령을 수신한 경우에는, 서비스 모듈(420)은 녹화물 목록 요청 명령에 대한 응답으로 저장된 녹화물 목록 중에서 해당 녹화물에 대한 목록을 산출하고 산출한 목록을 인터페이스 모듈(410)로 송신할 수 있다. 여기서 저장된 녹화물 목록이란 본 발명에 따른 방송 수신기(300)가 데이터를 저장한 녹화물들에 대한 목록을 말하며, 방송 수신기(300)는 녹화 예약, 실행, 완료를 한 경우에는 해당 녹화물에 대한 정보를 녹화물 목록에 저장하거나 녹화물 목록에서 해당 녹화물에 대한 정보를 수정한다.
서비스 모듈(420)은 녹화물 목록 요청 명령에 저장된 녹화물 목록 중에서 해당하는 녹화물에 대한 목록을 산출하기 위해, 녹화물에 대한 객체 간의 연관관계를 기초로 저장된 녹화물 목록을 필터링할 수 있다. 여기서 객체 간의 연관관계는 상속 관계 또는 형제 관계일 수 있다.
객체는 객체(object) 지향 프로그래밍이나 설계에서, 데이터(실체)와 그 데이터에 관련되는 동작(절차, 방법, 기능)을 모두 포함한 개념으로, 저장된 녹화물 목록에 포함된 녹화물 각각을 데이터로 보고 각 녹화물에 관련되는 동작을 포함하는 객체를 생성하여, 생성된 객체를 통해 녹화물을 관리할 수 있다.
또한 객체 지향 프로그래밍이나 설계에 있어서, 상속이란 상속하는 객체에 정의된 데이터 및 그 데이터에 관련되는 동작을 상속을 받는 객체에 별도로 정의하지 않고 상속을 받는 객체에 정의한 것 같은 효과를 발생시키는 것을 의미한다. 여기서 상속을 받는 객체를 자식 객체라고 하며, 상속을 하는 객체를 부모 객체라고 한다. 그리고 객체와 객체 간의 상속이 있는 경우에 양 객체는 상속 관계에 있다고 한다. 또한 객체들이 동일한 부모 객체로부터 상속을 받은 경우에는, 그러한 객체들은 형제 관계에 있다고 한다.
따라서 서비스 모듈(420)은 녹화물 목록 요청 명령으로 특정 객체와 연관된 녹화물 목록 요청 명령을 수신한 경우에는, 저장된 녹화물 목록 중에서 특정 객체와 연관된 객체가 관리하는 녹화물들을 검출하고 검출된 녹화물에 대한 목록을 생성할 수 있다. 여기서 서비스 모듈(420)은 녹화물에 대한 목록을 관리하는 객체를 새로 생성할 수 있다.
일예로 어플리케이션이 특정 시리즈물에 속하는 녹화물에 대한 목록을 요청한 경우에는, 서비스 모듈(420)은 녹화물 목록 요청 명령으로 특정 시리즈물을 관리하는 객체에 대한 정보를 수신할 수 있다. 그리고 서비스 모듈(420)은 저장된 녹화물 목록에 포함된 각 녹화물을 관리하는 객체 중에서 특정 시리즈물을 관리하는 객체와 상속 관계에 있는 객체를 검출하고, 검출된 객체가 관리하는 녹화물에 대한 목록을 산출한다. 즉 서비스 모듈(420)은 특정 시리즈물을 관리하는 객체의 자식 객체를 검출하고, 검출된 객체가 관리하는 녹화물에 대한 목록을 산출한다.
다른 예로 어플리케이션이 특정 녹화물과 동일한 시리즈물에 속하는 녹화물에 대한 목록을 요청한 경우에는, 서비스 모듈(420)은 녹화물 목록 요청 명령으로 특정 녹화물을 관리하는 객체에 대한 정보를 수신할 수 있다. 그리고 서비스 모듈(420)은 저장된 녹화물 목록에 포함된 각 녹화물을 관리하는 객체 중에서 특정 녹화물을 관리하는 객체와 형제 관계에 있는 객체를 검출하고, 검출된 객체가 관리하는 녹화물에 대한 목록을 산출한다.
그리고 서비스 모듈(420)은 산출한 녹화물 목록을 인터페이스 모듈(410)로 송신한다. 일예로 서비스 모듈(420)은 산출한 녹화물 목록에 대한 객체를 생성하고 생성한 객체에 대한 정보를 인터페이스 모듈(410)로 송신할 수 있다.
어플리케이션(401)은 인터페이스 모듈(410)로부터 녹화물 요청 명령에 대해 서비스 모듈(420)이 산출한 녹화물 목록을 입력받아 디스플레이한다.
도 5는 서비스 모듈에 대한 바람직한 일 실시예의 구성을 도시한 블록도이다.
도 5를 참조하면, 서비스 모듈(420)은 목록 관리부(510) 및 필터부(520)를 포함한다. 목록 관리부(510)는 녹화물에 대한 목록을 관리한다. 목록 관리부(510)는 녹화가 완료된 녹화물뿐만 아니라 녹화 예약된 목록 및 녹화 진행중인 목록을 함께 관리하여, 녹화 예약물에 대한 목록 및 녹화 진행물에 대한 목록을 어플리케이션(401)에 제공할 수도 있다.
목록 관리부(510)는 인터페이스 모듈(410)로부터 녹화물 요청 명령이 수신한 경우에는, 필터부(520)를 호출하여, 관리하고 있는 녹화물 목록 대한 필텅링을 수행하게 한다. 그리고 목록 관리부(510)는 필터부(520)가 필텅링한 결과값을 리턴받고 리턴받은 결과값을 기초로 녹화물 요청 명령에 대한 녹화물 목록을 산출한다. 여기서 결과값은 특정 조건에 대한 녹화물 목록에 포함된 각 녹화물의 만족 여부를 나타내는 참(true) 또는 거짓(false)을 나타내는 값일 수 있다.
그리고 목록 관리부(510)는 산출한 녹화물 목록을 인터페이스 모듈(410)에 전송한다.
필터부(520)는 저장된 녹화물 목록을 필터링하여 특정 조건을 만족하는 녹화물을 검출한다. 필터부(520)는 필터링 조건으로 녹화물에 대한 객체 간의 연관관계 조건, 녹화물 간의 연관성 조건을 사용할 수 있다. 객체 간의 연관관계 조건은 상속 관계, 형제 관계, 가족 관계를 포함한다.
그리고 녹화물 간의 연관성은 속성의 연관성 및 속성값의 연관성을 포함한다. 녹화물의 속성은 녹화물에 대한 정보의 종류 또는 녹화물에 대한 정보의 항목을 의미한다. 예를 들면, 녹화물에 대한 정보의 종류 또는 항목은 녹화물의 제목, 종류, 장르, 연출자, 출연자, 재생시간을 의미한다. 녹화물의 속성값은 각 녹화물 속성이 갖는 정보를 의미한다. 예를 들면, 녹화물 제목 속성은 속성값으로 '뉴하트', 녹화물 종류 속성의 속성값으로 '드라마', 녹화물 장르 속성의 속성값으로 '멜로'가 될 수 있다. 전술한 바와 같이, 녹화물에 대한 정보는 녹화물을 식별하기 위한 정보 또는 녹화물에 대한 안내 정보일 수 있다.
속성의 연관성은 녹화물이 동일한 속성을 갖고 있는 경우를 의미하며, 녹화물 속성 전체가 동일한 경우에도 속성의 동일성이 인정될 수 있고, 녹화물 속성 부분 또는 어느 하나의 동일한 속성을 가지고 있는 경우에도 속성의 동일성이 인정될 수 있다. 즉 각 상황에 따라 속성의 연관성에 대한 판단 기준이 달라질 수 있다.
속성값의 연관성은 속성값의 동일성 및 속성값의 부분 동일성을 포함하는 개념이다. 또한 속성값의 연관성은 두 개 이상의 속성값의 연관성을 포함하는 개념이다. 일예로, 두 개의 녹화물의 장르속성이 모두 드라마인 경우에는, 두 개의 녹화물은 속성값의 연관성이 인정된다.
도 6은 본 발명에 따른 미들웨어가 저장된 녹화물 목록을 필터링하여 특정 조건을 만족하는 녹화물 목록을 산출하는 과정에 대한 일실시예를 도시한 개념도이다.
도 6을 참조하면, 목록 관리부(510)는 녹화된 녹화물에 대한 전체 녹화 목록(610)을 관리한다. 인터페이스 모듈(410)이 녹화물 목록 요청 명령을 송신한 경우에는, 목록 관리부(510)는 필터부(520)를 호출한다. 여기서 목록 관리부(510)는 연속 드라마인 'Friend'(620)에 속하는 녹화물 목록 요청 명령으로 녹화물 속성 중에 녹화물을 식별하기 위한 정보에 속하는 이름 속성에 대한 속성값 'Friend'를 수신한다. 또한 목록 관리부(510)는 속성값을 직접 수신할 수 있고, 속성값을 엑세스할 수 있는 정보를 수신할 수도 있다.
필터부(520)는 목록 관리부(510)가 관리하는 녹화물 목록에 속하는 각 녹화물(650 내지 659)의 이름 속성의 속성값과 목록 관리부(510)가 수신한 이름 속성의 속성값 'Friend'의 부분 동일성 여부를 판단하여 녹화물 간의 연관성을 조사한다. 필터부(520)는 부분 동일성이 인정되는 녹화물(650, 653, 656, 657)을 검출한다. 그리고 목록 관리부(510)는 필터부(520)가 검출한 녹화물(650, 653, 656, 657)에 대한 목록을 산출한다.
도 7은 인터페이스 모듈에 대한 API의 명세의 일예를 도시한 도면이다.
도 7을 참조하면, 어플리케이션(401)으로부터 녹화물 목록 요청 명령을 수신하고 이에 대한 응답으로 어플리케이션(401)에 해당 녹화물에 대한 안내 정보를 송신하는 인터페이스 모듈(410)은 Class SeriesRecordingFilter(700)로 표현될 수 있다. SeriesRecordingFilter(710)는 클래스로 선언되며 org.ocap.shared.dvr.navigation에 정의된 RecordingListFilter(720)를 상속을 받는다. 메소드 SeriesRecordingFilter(ReocordingRequest recordingRequest)(730)는 생성자로서 SeriesRecordingFilter 객체를 생성한다. 여기서 파라메터로 입력되는 recordingRequest는 ParentRecordingRequest 객체로 SeriesRecordingFilter 내부의 속성값으로 저장되며, 필터링에서 조건의 비교값으로 사용된다. 어플리케이션(401)은 SeriesRecordingFilter(ReocordingRequest recordingRequest)(730)를 호출하여 인터페이스 모듈(410)로부터 제공받을 녹화물 목록에 대한 조건을 셋팅한다. 즉 어플리케이션(401)은 특정 시리즈물에 대한 ParentRecordingRequest를 recordingRequest로 하여 SeriesRecordingFilter(ReocordingRequest recordingRequest)(730)을 호출함으로써 특정 시리즈물에 속하는 녹화물에 대한 목록을 인터페이스 모듈(410)로부터 제공받을 수 있도록 녹화물 목록에 대한 조건을 셋팅할 수 있다.
메소드 boolean accept(RecordingRequest entry)(740)는 파라메터 entry로 들어온 RecordingRequest의 부모 객체가 생성자인 SeriesRecordingFilter(ReocordingRequest recordingRequest)(730)에서 설정된 SeriesRecordingFilter의 비교값 객체와 동일 객체인 경우에는, 파라메터 entry로 들어온 RecordingRequest 객체와 SeriesRecordingFilter의 비교값 객체와 상속 관계에 있으므로 참(true)을 리턴하고, 같지 않으면 거짓(false)을 리턴한다.
어플리케이션(401)은 녹화물 목록 요청 명령을 인터페이스 모듈(410)로 송신하기 위해 filter = SeriesRecordingFilter(ReocordingRequest recordingRequest)(730)을 호출하고, RecordingList.filterRecordingList(RecordingListFilter filter) API를 호출한다.
인터페이스 모듈(410)은 OCAP 표준에서 정의된 RecordingList.filterRecordingList(RecordingListFilter filter) API(730)의 호출을 수신한 경우에는, 목록 관리부(510)로 하여금 관리하는 녹화물 목록을 어플리케이션(401)이 설정한 filter를 기초로 필터링하여 요청된 녹화물 목록을 산출할 것을 요청한다. 여기서 서비스 모듈(420)은 RecordingRequest를 필텅링하는데 사용되는 필터로 SeriesRecordingFilter에 AppIDFilter, OrdIDFilter, RecordingStateFilter를 더 포함할 수 있다.
AppIDFilter는 특정 Application ID를 가진 RecordingRequest들만을 필터링하는데 사용된다. 여러 개의 어플리케이션(401)이 녹화를 하는 경우에는, 어플리케이션(401)은 AppIDFilter에 자신의 Application ID를 넣어 많은 RecordingRequest 중에서 자신이 요청한 것만을 뽑아낼 수 있다. 여기서 Application ID는 데이터방송 어플리케이션을 각각을 구별하기 위한 고유의 ID를 말한다. Application ID는 내부적으로 oid, aid의 2개의 숫자로 구성된다. oid는 업체를 식별하기 위한 ID로 같은 업체의 어플리케이션은 동일한 oid를 가진다. 그리고 aid는 같은 업체 어플리케이션들을 서로 구별하기 위한 고유 ID이다. RecordingRequest는 생성될 때 Application ID를 포함하게 되는데 이 값은 RecordingManager.record()를 호출한 어플리케이션의 ID이다.
OrgIDFilter는 전체 Application ID대신 oid만을 검사하여 같은 업체의 어플리케이션이 요청한 모든 RecordingRequest들을 뽑아내는데 사용된다.
RecordingStateFilter는 RecordingRequest의 현재 상태(예약됨, 녹화 진행중, 녹화완료됨 등)에 대한 필터로 이를 이용하여 완료된 녹화만 혹은 진행중인 녹화만 뽑아낼 수 있다.
그러면 목록 관리부(510)는 저장된 녹화물 목록을 관리하는 객체인 RecordingList에 속한 각 녹화물을 관리하는 객체인 RecordingRequest에 대해 accept(RecordingRequest entry)(740)를 호출하여, true를 리턴하는 RecordingRequest만을 골라내어 새로운 RecordingList를 리턴한다. 즉 목록 관리부(510)는 entry로 RecordingList에 속한 녹화물을 관리하는 객체인 RecordingRequest를 각각 할당하여 accept(RecordingRequest entry)(740)를 호출한다.
RecordingRequest getFilterValue()(750)는 생성자인 SeriesRecordingFilter(ReocordingRequest recordingRequest)(730)에서 설정된 SeriesRecordingFilter의 비교값으로 사용되는 RecordingRequest 객체를 리턴한다
도 8은 본 발명에 따른 케이블 방송 수신가 수행하는 녹화과정에 대한 바람 직한 일 실시예를 도시한 흐름도이다.
도 8을 참조하면, 어플리케이션(401)은 채널정보, 시작시간, 종료시간 등의 녹화에 필요한 정보를 포함한 PrivateRecordingSpec Java Class의 객체를 생성한다(S800). 그리고 어플리케이션(401)은 인터페이스 모듈(410)의 OcapRecordingManager.record() API를 호출한다(S810). 서비스 모듈(420)은 PrivateRecordingSpec에 담긴 정보를 읽어 RecordingRequest 객체를 생성한다(S820). 여기서 RecordingRequest 객체는 레코딩에 대한 상세한 정보를 포함한 객체로 녹화가 완료된 이후 재생에도 사용되는 객체이고, PrivateRecordingSpec은 단일 녹화에 대한 채널정보, 시작시간, 종료시간 등의 정보를 포함하는 GEM의 RecordingSpec의 확장한 것으로 어플리케이션 제작자가 필요한 데이터를 추가로 지정할 수 있는 확장가능 구조로 되어 있으며, 어플리케이션(401)은 PrivateRecordingSpec을 이용하여 단일 녹화뿐만 아니라 연속 드라마의 각 화 전체를 녹화하는 등의 Series Recording 요청을 인터페이스 모듈(410)에 할 수 있다.
서비스 모듈(420)은 생성한 RecordingRequest 객체가 ParentRecordingRequest 객체인지를 조사한다(S830). 생성한 RecordingRequest 객체가 ParentRecordingRequest 객체인 경우에는, 서비스 모듈(420)은 OcapRecordingManager.resolve()API를 호출하여 실제 각각의 개별 녹화에 대한 정보를 가진 여러 개의 LeafRecordingRequest를 생성한다(S840). 여기서 ParentRecordingRequest는 Series Recording 전체에 대한 추상적인 정보를 가지고 있으며, 이 정보는 OcapRecordingManager.resolve()API가 호출될 때 어플리케이 션(401)이 등록한 RequestResolutionHandler에게 전달된다.
서비스 모듈(420)은 ParentRecordingRequest 및 LeafRecordingRequest을 등을 포함하여 생성한 RecordingRequest 객체를 RecordingList라는 list에 넣는다(S850). 즉 서비스 모듈(420)은 모든 녹화 요청 및 완료된 녹화에 대한 RecordingRequest 객체들을 RecordingList라는 list에 넣어 관리한다.
그리고 서비스 모듈(420)은 RecordingSpec에 지정한 녹화 시작 시간인 지를 조사한다(S860). 녹화 시작 시간인 경우에는, 서비스 모듈(420)은 해당 녹화 요청을 수행한다(S870). 그리고 서비스 모듈(420)은 RecordingRequest의 상태를 그에 맞게 변경한다(S880).
도 9는 본 발명에 따른 미들웨어 상에서 수행되는 재생과정에 대한 바람직한 일 실시예를 도시한 흐름도이다.
도 9를 참조하면, 인터페이스 모듈(410)은 어플리케이션(401)으로부터 녹화물에 대한 재생 요청 명령으로 LeafRecordedRequest.getService() API의 호출을 수신한다(S900). 여기서 사용자가 어플리케이션(401)이 디스플레이한 재생목록에서 특정 녹화물을 선택하면, 선택된 특정 녹화물에 대한 LeafRecordedRequest.getService() API가 호출될 수 있다. 또한 재생목록은 녹화물 목록 요청 명령에 의해 미들웨어(400)가 산출한 녹화물 목록일 수 있다.
서비스 모듈(420)은 해당 RecordingRequest를 통해 저장된 녹화물의 RecordedService 객체를 검출한다(S910). 그리고 서비스 모듈(420)은 검출된 RecordedService 객체를 현재 재생중인 Service로 변경한다(S920).
여기서 Serviec는 데이터방송에서 사용되는 개념으로, 아날로그 방송의 채널과 비슷한 개념으로 정의되며, Service에는 영상, 음성, 데이터와 함께 이의 재생에 필요한 Service Information이 함께 전송된다. 방송 수신기(300)는 스트림의 각 주파수를 통해 전송되는 여러 개의 Service중 하나를 선택하여 선택된 Service로 제공되는 방송을 출력한다. DVR API를 통해 저장매체(402)에 녹화된 방송을 같은 방식으로 처리하기 위해 OCAP 규격에서는 RecordedService라는 Service를 녹화된 방송에 대해 확장한 Java Interface로 지원한다. 방송 수신기(300)가 현재 스트림으로 전송되고 있는 Service 대신 녹화된 방송의 RecordedService를 선택하여 재생하면, 녹화된 방송이 출력되게 된다.
도 10은 본 발명에 따른 녹화물 목록 제공 방법에 대한 바람직한 일 실시예의 수행과정을 도시한 흐름도이다.
도 10을 참조하면, 인터페이스 모듈(410)는 어플리케이션(401)으로부터 녹화물 목록 요청을 수신한다(S1000). 서비스 모듈(420)은 어플리케이션(401)에 전송할 녹화물 목록을 새로 생성한다(S1010). 그리고 서비스 모듈(420)은 전체 녹화물 목록 요청인지를 조사한다(S1020).
전체 녹화물 목록 요청인 경우에는, 서비스 모듈(420)은 저장된 녹화물 목록에 포함된 모든 녹화물을 새로 생성한 녹화물 목록에 포함한다(S1030).
전체 녹화물 목록 요청이 아닌 경우에는, 서비스 모듈(420)은 저장된 녹화물 목록에 속하는 각 녹화물이 어플리케이션(401)이 요청한 특정 조건의 녹화물인지를 조사한다(S1040). 여기서 서비스 모듈(420)은 요청된 녹화물에 대한 객체 및 저장 된 녹화물 목록에 포함된 녹화물에 대한 객체 간의 연관관계를 기초로 저장된 녹화물 목록에 포함된 녹화물이 요청된 녹화물인지를 판단할 수 있다. 또한 서비스 모듈(420)은 녹화물 간의 연관성을 기초로 저장된 녹화물 목록에 포함된 녹화물이 요청된 녹화물인지를 판단할 수 있다.
저장된 녹화물 목록에 속하는 각 녹화물이 요청된 녹화물 즉, 특정 조건의 녹화물인 경우에는, 서비스 모듈(420)은 해당 녹화물을 생성한 녹화물 목록에 포함한다(S1050).
서비스 모듈(420)은 저장된 녹화물 목록에 포함된 모든 녹화물에 대해 판단했는 지를 확인한다(S1060).
저장된 녹화물 목록에 포함된 모든 녹화물에 대해 판단한 경우에는, 인터페이스 모듈(410)은 검출한 시리즈 녹화물 목록을 데이터 방송 관련 어플리케이션(110)에 송신한다(S1070).
도 11은 본 발명에 따른 녹화물 목록 제공 방법에 대한 바람직한 다른 실시예의 수행과정을 도시한 흐름도이다.
도 11을 참조하면, 인터페이스 모듈(410)는 어플리케이션(401)으로부터 시리즈 녹화물 목록 요청 명령을 수신한다(S1100).
서비스 모듈(420)은 시리즈 녹화물 목록을 생성한다(S1110). 그리고 서비스 모듈(420)은 저장된 녹화물 목록에 포함된 녹화물이 어플리케이션(401)이 요청한 시리즈 녹화물인지를 판단한다(S1120). 여기서 서비스 모듈(420)은 어플리케이션(401)이 요청한 시리즈 녹화물에 대한 객체 및 저장된 녹화물 목록에 포함된 녹 화물에 대한 객체 간의 연관관계를 기초로 저장된 녹화물 목록에 포함된 녹화물이 시리즈 녹화물인지를 판단할 수 있다. 또한 서비스 모듈(420)은 시리즈 녹화물 간의 연관성을 기초로 저장된 녹화물 목록에 포함된 녹화물이 시리즈 녹화물인지를 판단할 수 있다.
녹화물이 시리즈 녹화물인 경우에는, 서비스 모듈(420)은 녹화물을 생성한 시리즈 녹화물 목록에 포함한다(S1130).
서비스 모듈(420)은 저장된 녹화물 목록에 포함된 모든 녹화물에 대해 판단했는 지를 확인한다(S1140).
녹화물 목록에 포함된 모든 녹화물에 대해 판단한 경우에는, 서비스 모듈(420)은 검출한 시리즈 녹화물 목록을 데이터 방송 관련 어플리케이션(110)에 송신한다(S1150).
도 12는 본 발명에 따른 방송 수신기에 대한 바람직한 다른 실시예의 구성을 도시한 블록도이다.
도 12를 참조하면, 본 발명에 따른 방송 수신기(1000)는 튜너(1001), 복조부(1002), 역다중화기(1003), 제 1 디스크램블러(1004), 오디오 복호기(1005), 비디오 복호기(1006), 제 2 디스크램블러(1007), 인증 수단(1008), 네이티브 TV 어플리케이션 매니저(1009), 채널 매니저(1010), 채널 맵(1011), 제1 저장부(1012), SI 및/또는 데이터 복호기(1013), 제2 저장부(1014), 시스템 매니저(1015), 데이터 방송 어플리케이션 매니저(1016), 저장 제어부(storage controller)(1017), 제3 저장부(1018), 및 통신 모듈(1019)을 포함할 수 있다. 상기 제1 저장부(1012)는 비휘발 성 메모리(NVRAM)(또는 플래시 메모리)이다. 상기 제3 저장부(1018)는 하드 디스크 드라이브(HDD), 메모리 칩과 같은 대용량 저장 장치이다. 또한, 상기 도 3을 구성하는 각 부분에 대한 설명 중 도 12와 중복되는 부분은 상술한 도 3의 내용을 원용하며 여기에서는 생략한다. 여기서 네이티브 TV 어플리케이션 매니저(1009)는 네이티브 어플리케이션(130)과 대응하는 구성요소이고, 시스템 매니저(1015) 및 데이터 방송 어플리케이션 매니저(1016)는 모니터 어플리케이션(116)과 대응하는 구성요소이며, 채널 매니저(1010) 및 저장 제어부(storage controller, 1017)는 미들웨어(120)에 대응하는 구성요소이다. 그리고 제 3저장부(1018)는 하드디스크(151)에 대응하는 구성요소이다.
한편 송신측에서는 방송망을 이용하여 전송되는 서비스 및/또는 메인 데이터에 대한 불법 복사나 불법 시청을 방지하기 위한 서비스 또는 유료 방송 서비스를 제공하기 위해 방송 콘텐츠를 스크램블하여 송출할 수 있다.
이 경우 본 발명에 따른 방송 수신기(1000)에서는 상기 스크램블된 방송 콘텐츠를 디스크램블하여야만 사용자에게 제대로 된 방송 콘텐츠를 제공할 수 있다. 또한, 본 발명에 따른 방송 수신기(1000)는 상기 디스크램블 이전에 인증 수단에 의한 인증 절차를 거칠 수 있다.
이하에서는 본 발명의 일실시예에 따라 인증 수단과 디스크램블 수단을 구비하는 방송 수신기에 대해 설명한다.
본 발명에 따른 방송 수신기(1000)는 스크램블된 방송 콘텐츠를 수신하여 디스크램블하는 수단과 상기 디스크램블과 관련하여 해당 방송 수신기가 수신 자격이 있는 정당한 방송 수신기인지를 인증하는 수단을 구비할 수 있다.
이하에서는 설명의 편의를 위해 상기 디스크램블하는 수단은 디스크램블러(1004, 1007), 상기 인증하는 수단은 인증 수단(1008)으로 명명한다. 이러한 명칭은 일실시예 일 뿐 다른 명칭, 예컨대 디크립터(decrypter)라고 명명될 수도 있다.
이때, 방송 수신기(1000)는 상기 디스크램블러(1004, 1007)와 인증 수단(1008)을 내부에 구비하고 있는 것을 일 실시예로 도시하였으나, 외부 모듈에 별도로 구비할 수도 있다. 또한, 상기 디스크램블러(1004, 1007)와 인증 수단(1008)을 각각 내부 또는 외부 모듈에 별개로 구비할 수도 있다. 상기 모듈은 SD나 CF 메모리와 같은 슬롯 형태, 메모리 스틱 형태, USB 형태 등이 가능하며, 방송 수신기(1000)에 착탈할 수 있다.
상기 방송 수신기(1000)은 상술한 바와 같이, 인증 수단(1008)을 통해 인증에 성공하면, 스크램블된 방송 콘텐츠를 디스크램블러(1004, 1007)에서 디스크램블하여 사용자에게 제공할 수 있다. 이때, 상기 인증 방법과 디스크램블 방법은 다양한 방식을 이용할 수 있다. 그러나 그 경우에 송/수신간에 미리 정한 약속에 의하여야 할 것이다.
이하에서는 설명의 편의를 위해 인증 방법과 디스크램블 방법의 몇 가지 실시예를 설명하고, 중복되는 설명 부분은 생략하겠다. 그러나 본 발명은 상술한 몇 가지 실시예에 한정되지 않으며, 당업자에게 자명한 기술 사상에까지 본 발명에 포함됨을 밝혀둔다.
먼저, 방송 수신기(1000)에 인증 수단(1008)과 디스크램블러(1004, 1007)가 구비된 경우에 대해 설명하면, 다음과 같다.
방송 수신기(1000)는 튜너(1001)와 복조부(1002)를 통해 스크램블된 방송 콘텐츠를 수신하고, 시스템 매니저(1015)는 상기 수신한 방송 콘텐츠의 스크램블 여부를 판단한다. 그리고 상기 판단 결과 방송 콘텐츠가 스크램블되었으면, 상기 인증 수단(1008)을 동작시키도록 제어한다.
상기 인증 수단(1008)은 상술한 바와 같이 해당 방송 수신기 유료 방송 서비스를 수신할 수 있는 자격이 있는 정당한 호스트인지 판단하기 위해 인증 절차를 거친다. 이때, 상기 인증 절차는 다양한 인증 방법에 따라 제각각일 것이다.
일 실시예로, 상기 인증 수단(1008)은 수신하는 방송 콘텐츠 내 IP 데이터그램의 IP 어드레스와 해당 호스트의 고유한 주소를 비교하는 방식으로 인증할 수 있다. 이때, 방송 수신기(1000)의 고유한 주소는 MAC 어드레스일 수 있다. 즉, 상기 인증 수단(1008)은 디캡슐화된 IP 데이터그램에서 IP 어드레스를 추출하여 해당 어드레스와 매핑되는 방송 수신기 정보를 얻는다. 이때, 방송 수신기(1000)는 IP 어드레스와 방송 수신기 정보를 매핑할 수 있는 정보(예를 들면, 테이블 형식)를 미리 구비하고 있어야 한다.
그러므로, 상기 인증 수단(1008)은 해당 방송 수신기의 주소와 IP 어드레스와 매핑되는 방송 수신기 정보의 동일성을 판단하여 인증 절차를 수행한다. 즉, 상기 인증 수단(1008)은 판단 결과 두 정보가 동일하면, 해당 방송 수신기는 수신 자격이 있는 정당한 방송 수신기로 판단할 수 있다.
다른 실시예로는, 송수신측에서 미리 표준화된 식별 정보를 정의하고 유료 방송 서비스를 신청한 방송 수신기의 식별 정보를 송신측에서 전송하고 방송 수신기에서는 자신의 식별 번호와 동일성 판단을 거쳐 인증 절차를 수행하는 방법이 있다. 즉, 송신측은 유료 방송 서비스를 신청한 해당 방송 수신기의 고유의 식별 정보(번호)를 데이터베이스를 생성하여 저장하고, 방송 콘텐츠를 스크램블하는 경우에 EMM(Entitlement Management Message)에 상기 식별 정보를 포함하여 전송한다.
그리고 해당 방송 콘텐츠가 스크램블될 때, 상기 스크램블에 적용된 CAS(Conditional Access System) 정보, 모드 정보, 메시지 위치 정보와 같은 메시지(예를 들면, ECM, EMM)가 해당 데이터 헤더나 다른 패킷을 통해 전송된다. 상기 ECM(Entitlement Control Message)은 스크램블에 사용된 제어 단어(CW)를 포함할 수 있다. 이때 상기 제어 단어는 인증키로 암호화되어 있을 수 있다. 상기 EMM은 해당 데이터의 인증키와 자격 정보를 포함할 수 있다. 상기 인증키는 수신자 고유의 분배키로 암호화되어 있을 수 있다. 즉, 서비스 데이터가 제어 워드(CW)를 이용하여 스크램블되어 있고, 인증을 위한 정보와 디스크램블을 위한 정보가 송신측에서 전송된다고 가정하자. 그러면, 송신측에서는 상기 CW를 인증키로 암호화한 후 자격 제어 메시지(ECM)에 포함하여 전송한다. 또한 송신측에서는 상기 CW를 암호화하는데 사용된 인증키와방송 수신기의 수신 자격(예, 수신 자격이 있는 방송 수신기의 표준화된 시리얼 번호)을 자격 관리 메시지(EMM)에 포함하여 전송한다.
따라서, 방송 수신기의 인증 수단(1008)은 해당 방송 수신기 고유의 식별 정보를 추출하고, 수신하는 방송 서비스의 EMM에 포함된 식별 정보를 추출하여 두 식 별 정보의 동일성 여부를 판단하여 인증 절차를 수행한다. 즉, 상기 인증 수단(1008)은 판단 결과 두 정보가 동일하면, 해당 방송 수신기는 수신 자격이 있는 정당한 방송 수신기으로 판단할 수 있다.
또 다른 실시예로는, 방송 수신기는 착탈 가능한 외부 모듈에 상기 인증 수단(1008)을 구비할 수 있다. 이때, 방송 수신기(1000)과 외부 모듈은 공통 인터페이스(common interface; CI)를 통해 인터페이싱한다. 즉, 외부 모듈은 공통 인터페이스를 통해 방송 수신기(1000)로부터 스크램블된 데이터를 수신하여 디스크램블을 수행할 수도 있으며, 디스크램블에 필요한 정보만을 방송 수신기(1000)로 전송할 수도 있다.
또한, 상기 공통 인터페이스는 물리적 계층과 하나 이상의 프로토콜 계층으로 구성하며, 해당 프로토콜 계층은 추후 확장성을 고려하여 각각 독립된 기능을 제공하는 1개 이상의 계층을 포함하는 구조를 가질 수 있다.
상기 외부 모듈은 스크램블에 사용된 키 정보와 인증 정보들을 저장하고 있으면서 디스크램블 기능은 없는 메모리 또는 카드이거나 디스크램블 기능을 포함한 카드일 수 있다. 즉, 상기 모듈은 하드웨어, 미들웨어 또는 소프트웨어 형태로 디스크램블 기능을 포함할 수 있다.
이때 방송 수신기(1000)과 외부 모듈은 송신측에서 제공하는 유료 방송 서비스를 사용자에게 제공하기 위해 각각 인증을 받아야 한다. 따라서, 송신측은 상기 인증을 받은 방송 수신기와 모듈 페어에만 유료 방송 서비스를 제공할 수도 있다.
이와 함께 방송 수신기(1000)과 외부 모듈은 공통 인터페이스를 통해 서로 상호 인증이 필요하다. 즉, 상기 모듈은 공통 인터페이스를 통해 방송 수신기 내 시스템 매니저(1015)와 통신하여 방송 수신기를 인증할 수 있으며, 방송 수신기(1000)는 공통 인터페이스를 통해서 모듈을 인증할 수 있다. 그리고 상기 모듈은 상기 상호 인증 과정에서 방송 수신기의 고유 ID와 자신의 고유 ID를 추출하여 송신측으로 전송할 수 있으며, 송신측은 상기 값을 이용하여 서비스 시작 여부 및 과금 정보로 사용할 수 있다. 상기 시스템 매니저(1015)는 필요한 경우 상기 과금 정보를 통신 모듈(1019)을 통해 원격지의 송신측으로 전송할 수 있다.  
상기 인증 수단(1008)은 해당 방송 수신기 및/또는 외부 모듈을 인증하고, 상기 인증에 성공하면 해당 방송 수신기를 유료 방송 서비스를 수신할 수 있는 자격이 있는 정당한 방송 수신기로 인정한다. 또한, 상기 인증 수단(1008)은 방송 콘텐츠를 제공하는 송신측이 아닌 방송 수신기 사용자가 가입한 이동통신사로부터 인증 관련 데이터를 수신할 수 있다. 이때, 상기 인증 관련 데이터는 방송 콘텐츠를 제공하는 송신측에서 스크램블하여 이동통신사를 거쳐 전송하거나 이동통신사에서 스크램블하여 전송할 수 있을 것이다.
상기 인증 수단(1008)에서 인증 절차를 거쳐 인증에 성공하면, 방송 수신기(1000)는 스크램블되어 수신된 방송 콘텐츠를 디스크램블할 수 있다. 이때, 상기 디스크램블은 디스크램블러(1004, 1007)에서 이루어지며, 상기 디스크램블러(1004, 1007)는 방송 수신기 내부 또는 외부 모듈에 구비될 수 있다.
또한, 방송 수신기(1000)은 공통 인터페이스를 구비하고 디스크램블러(1004, 1007)를 포함한 외부 모듈과 통신하여 디스크램블할 수 있다. 즉, 디스크램블 러(1004, 1007)는 하드웨어나 미들웨어 또는 소프트웨어 형태로 상기 모듈에 포함되거나 방송 수신기 내부에 포함할 수 있으며, 상기 모듈과 방송 수신기 모두 포함하거나 어느 하나에만 포함할 수도 있다.
만일 상기 디스크램블러(1004, 1007)가 방송 수신기 내부에 구비되었다면, 송신측(서비스 사업자와 방송국 중 적어도 하나를 포함)에서 동일한 스크램블 방법으로 데이터를 스크램블하여 전송하는 경우에 유리하다.
한편, 상기 디스크램블러(1004, 1007)가 외부 모듈에 포함되었다면, 송신측마다 서로 다른 스크램블 방법으로 데이터를 스크램블하여 전송하는 경우에 유리하다. 이 경우 방송 수신기는 각 송신단의 디스크램블 알고리즘을 구비하지 않아도 되어 더욱 단순화 및 소형화시킬 수 있다. 따라서, 이 경우에는 상기 외부 모듈이 각 송신측이 독점적으로 제공하는 CA 기능 및 사용자에게 제공할 각종 서비스들을 위한 기능을 제공하는 주체가 될 수 있다.
그리고 상기 공통 인터페이스는 여러 종류의 외부 모듈과 방송 수신기 내 시스템 매니저(1015) 간에 단일 방식으로 통신한다. 또한, 방송 수신기(1000)는 서로 다른 서비스를 제공하는 적어도 하나 이상의 모듈이 동시에 연결되어 동작 할 수 있기 때문에 복수 개의 모듈과 시스템 매니저(1015)를 연결할 수 있는 구조를 가진다.
또한, 방송 수신기(1000)와 외부 모듈간의 공통 인터페이스 프로토콜에는 상호간 정상적인 통신을 유지하기 위해, 상대방의 상태를 주기적으로 검사하는 기능을 포함한다. 방송 수신기(1000)와 모듈은 이러한 기능을 사용하여 상대방의 상태 를 관리하고 만약 어느 하나가 오동작을 하면 이를 사용자나 송신측에 리포트(report)하고 복구(recovery)를 시도하는 기능을 포함한다.  
또 다른 실시예로는, 하드웨어에 종속하지 않고 소프트웨어적으로 인증 절차를 수행할 수 있다.
즉, 방송 수신기(1000)는 CAS 소프트웨어를 다운로드 등을 통해 미리 저장한 메모리 카드가 삽입되면, 상기 메모리 카드로부터 상기 CAS 소프트웨어를 수신하여 로딩하고 인증 절차를 수행한다. 상기 메모리 카드로부터 읽어 온 CAS 소프트웨어는 방송 수신기(1000) 내 제 1 저장부(1012)에 탑재시키고 하나의 어플리케이션 형태로 구동하는 것을 일 실시예로 한다. 특히, 본 발명에서는 미들웨어기반 위에 상기 CAS 소프트웨어를 탑재하고 실행시키는 것을 일 실시예로 한다. 또한, 상기 미들웨어는 자바(JAVA) 미들웨어를 일 예로 하여 설명한다.
이를 위해 방송 수신기(1000)은 메모리 카드와 접속하기 위해 공통 인터페이스를 구비할 수 있으며, 상기 제 1 저장부(1012)는 휘발성 메모리, 비휘발성 메모리 및 플래시 메모리(또는 플래시 롬이라고도 함)일 수 있다. 이때 상기 메모리카드는 주로 플래시 메모리 또는 소형 하드를 사용한다. 상기 메모리카드는 저장되는 CAS 소프트웨어의 내용, 인증, 스크램블, 과금 방식 등에 따라 적어도 하나 이상의 방송 수신기(1000)에서 사용할 수 있다.
그러나 상기 CAS 소프트웨어는 적어도 인증에 필요한 정보와 디스크램블에 필요한 정보를 포함하여야 한다.
따라서, 상기 인증 수단(1008)은 송신측과 방송 수신기(1000) 및 방송 수신 기(1000)과 메모리 카드 간에 인증 절차를 수행한다. 이때, 상기에서 설명한 것과 유사하게 메모리 카드는 수신 자격이 있는 것으로 인증 가능한 정상 방송 수신기(1000)에 대한 정보를 포함할 수 있다. 예를 들어, 방송 수신기(1000)에 대한 정보는 해당 방송 수신기에 대해 표준화된 시리얼 번호와 같은 고유 정보를 들 수 있다. 따라서, 상기 인증 수단(1008)은 상기 메모리카드에 포함된 표준화된 시리얼 번호와 같은 고유 정보와 해당 방송 수신기의 고유 정보를 비교하여 메모리카드와 방송 수신기(1000) 간에 인증을 수행할 수 있다.
상기 CAS 소프트웨어는 자바 미들웨어 기반에서 동작하게 되면 먼저, 방송 수신기(1000)과 메모리카드 간에 인증을 수행한다. 예를 들어, CAS 소프트웨어에 포함된 방송 수신기(1000)의 고유 번호와 상기 방송 수신기(1000)의 시스템 매니저(1015)로부터 읽어 온 방송 수신기(1000)의 고유 번호가 동일한지를 확인하여 동일하면 상기 메모리카드는 방송 수신기(1000)에서 사용 가능한 정상적인 메모리카드로 확인된다. 이때, 상기 CAS 소프트웨어는 방송 수신기(1000)의 출하시에 제 1 저장부(1012)에 내장될 수도 있고, 송신측이나 상기와 같이 모듈 내지 메모리카드로부터 제 1 저장부(1012)로 다운로드받을 수 있다. 그러면 상기 디스크램블 기능은 데이터 방송 어플리케이션 매니저(1016)에 의해 하나의 어플리케이션 형태로 동작하게 할 수 있다.
이후 상기 CAS 소프트웨어는 역다중화기(1003)에서 출력하는 EMM/ECM 패킷을 파싱하여 해당 수신기가 수신 자격이 있는지를 확인하여 디스크램블에 필요한 정보(즉, CW)를 구하여 디스크램블러(1004, 1007)에 제공한다. 즉, 자바 미들웨어 기 반에서 동작하는 CAS 소프트웨어는 먼저 방송 수신기(1000)로부터 해당 방송 수신기의 고유 번호를 읽어 와 상기 EMM으로 전송된 방송 수신기(1000)의 고유 번호를 비교하여 현 방송 수신기(1000)의 수신 자격을 확인한다.
그리고 방송 수신기(1000)의 수신 자격이 확인되면 ECM으로 전송된 해당 방송 서비스 정보와 해당 방송 서비스의 수신 자격을 이용하여 상기 방송 수신기(1000)가 해당 방송 서비스를 수신할 수 있는 자격이 있는지를 확인한다. 상기 방송 서비스를 수신할 수 있는 자격이 확인되면 상기 EMM으로 전송된 인증키를 이용하여 ECM으로 전송되는 암호화된 CW를 해독한 후 디스크램블러(1004, 1007)로 출력한다. 상기 디스크램블러(1004, 1007)는 상기 CW를 이용하여 방송 서비스를 디스크램블한다.
한편 상기 메모리카드에 저장되는 CAS 소프트웨어는 방송국에서 제공하려는 유료 서비스에 따라 확장 가능하다. 또한 상기 CAS 소프트웨어는 인증 및 디스크램블에 관련된 정보뿐만 아니라 다른 부가 정보도 포함할 수 있다.
그리고 방송 수신기(1000)는 송신측으로부터 CAS 소프트웨어를 다운로드받아 상기 메모리카드에 저장된 CAS 소프트웨어를 업그레이드할 수도 있다.
이와 같이 본 발명은 어떠한 형태의 방송 수신기이든지 외부 메모리 인터페이스만 제공된다면 방송 수신기(1000)에 착탈 가능한 모든 메모리카드를 만족하는 방식으로 CAS 시스템을 구현함으로써, 방송과 같은 유료 방송 콘텐츠를 수신할 수 있는 방송 수신기(1000)에서 최소의 비용으로 최대의 기능을 구현하고, 방송 수신기(1000)의 다양성을 존중할 수 있다.
또한, 구현 방식에 있어서 최소 어플리케이션 프로그램 인터페이스(API)만 구현하면 되므로 방송 수신기(1000) 제조사의 부담을 최소화하고, CAS 업체에 종속할 수밖에 없었던 부분을 제거할 수 있다. 이로 인해 송신측의 CAS 장비 구축 및 운영 시스템을 위한 비용도 최소화할 수 있게 된다.
한편, 상기 디스크램블러(1004, 1007)는 하드웨어나 소프트웨어 형태로 상기 모듈에 포함될 수도 있으며, 이 경우 스크램블되어 수신되는 데이터는 상기 모듈에서 디스크램블된 후 복호가 이루어질 수 있다.    
또한 스크램블되어 수신되는 데이터를 상기 제 3 저장부(1018)에 저장하는 경우, 상기 스크램블된 데이터를 디스크램블하여 저장할 수도 있고, 스크램블된 데이터를 그대로 저장한 후 재생시에 디스크램블할 수도 있다. 그리고 상기 저장 제어부(1017)에 스크램블/디스크램블 알고리즘이 구비되어 있는 경우, 상기 저장 제어부(1017)는 스크램블되어 수신되는 데이터를 다시 한 번 스크램블하여 상기 제 3 저장부(1018)에 저장할 수도 있다.
또 다른 실시예로는, 디스크램블링된(수신 제한된) 방송 콘텐츠는 방송망을 통해 송신하고, 상기 수신 제한을 풀기 위한 인증, 디스크램블 관련 정보 등은 통신 모듈(1019)을 통해 송수신하여 방송 수신기(1000)에서 양방향 통신이 가능하도록 한다.
방송 수신기(1000)는 원격지에 위치한 송신측과 송수신을 원하는 방송 콘텐츠와 상기 방송 콘텐츠를 전송하는 방송 수신기(1000)를 송신측에서 인식할 수 있도록 해당 방송 수신기의 시리얼 번호나 MAC 어드레스와 같은 고유 정보(ID)를 송 신측 내 통신 모듈로 전달하거나 송신측 내 통신 모듈로부터 제공받는다.
방송 수신기(1000) 내 통신 모듈(1019)은 양방향 통신 기능을 지원하지 않는 방송 수신기(1000)에서 송신측 내 통신 모듈과 양방향 통신을 수행하기 위해 필요한 프로토콜을 제공한다.
그리고 방송 수신기(1000)는 전송하고자 하는 데이터와 고유 정보(ID)를 포함한 TLV(Tag-Length-Value) 코딩 방법을 사용하여 PDU(Protocol Data Unit)를 구성한다. 태그 필드는 해당 PDU의 인덱싱, 길이 필드는 Value 필드의 길이, Value 필드는 전송할 실제 데이터와 방송 수신기(1000) 고유 번호(ID)를 포함한다.
만약 방송 수신기(1000)이 자바 플랫폼(Java Platform)을 장착하고 송신측의 자바 어플리케이션(Java Application)을 네트워크를 통해서 방송 수신기(1000)로 다운로드한 뒤에 동작시키는 플랫폼을 구성하면, 송신측에서 임의로 정의한 태그 필드를 포함하는 PDU를 방송 수신기(1000) 내 저장 매체 등에서 다운로드한 뒤 통신 모듈(1019)로 전송하는 구조도 가능하다.
이 경우 상기 PDU는 방송 수신기(1000) 내 자바 어플리케이션에서 PDU를 구성하여 통신 모듈(1019)로 출력할 수 있다. 또는 상기 자바 어플리케이션에서 태그 값, 전송할 실제 데이터와 해당 방송 수신기의 고유 정보를 전송하고, 방송 수신기(1000) 내에서 TLV 코딩을 통해 PDU를 구성할 수도 있다.
이러한 구조의 장점은 송신측이 원하는 데이터(또는 어플리케이션)가 추가되더라도 방송 수신기(1000)의 펌웨어(firmware)는 변경할 필요가 없다는 점이다.
이때 송신측 내 통신 모듈은 방송 수신기(1000)에서 전송받은 PDU를 무선 데 이터 네트워크를 통해 전송하거나 상기 네트워크를 통해 수신한 데이터를 PDU로 구성하여 방송 수신기(1000)로 전송한다. 이때, 송신단 내 통신 모듈은 방송 수신기(1000)로 전송할 PDU를 구성할 때 원격지의 송신측 고유 정보(예를 들어, IP 어드레스 등)를 포함하여 구성할 수도 있다.
이때, 방송 수신기(1000)는 무선 데이터 네트워크를 통해 송수신함에 있어서, 공통 인터페이스를 구비하여 CDMA, GSM 등의 이동 통신 기지국을 통해 접속이 가능한 WAP, CDMA 1x EV-DO, 액세스 포인트를 통해 접속이 가능한 무선 LAN, 휴대 인터넷, 와이브로, 와이맥스 등을 구비할 수 있다. 상술한 방송 수신기(1000)는 통신 기능이 없는 경우에 해당하나, 통신 기능을 갖춘 방송 수신기(1000)의 경우에는 통신 모듈(1019)도 필요 없다.
상술한 무선 데이터 네트워크를 통해 송수신되는 방송 콘텐츠는 수신 제한(CA) 기능을 수행하는데 필요한 데이터를 포함할 수도 있다.
한편 상기 역다중화기(1003)는 복조부(1002)에서 출력되는 리얼 타임 콘텐츠 또는 제3 저장부(1018)에서 독출된 재생 콘텐츠를 입력받아 역다중화를 수행한다.
상기 제 1 디스크램블러(1004)는 상기 역다중화기(1003)로부터 역다중화된 신호를 수신하여 디스크램블한다. 이때, 상기 제 1 디스크램블러(1004)는 상기 인증 수단(1008)으로부터 인증 결과 내지 디스크램블에 필요한 데이터를 수신하여 디스크램블에 이용할 수 있다.
상기 오디오 복호기(1005)와 비디오 복호기(1006)는 상기 제 1 디스크램블러(1004)에서 디스크램블된 신호를 수신하여 복호하여 출력하거나 또는 상기 제 1 디스크램블러(1004)에서 디스크램블하지 않고 출력한 경우에는 그대로 복호하여 출력한다. 이 경우에는 상기 복호된 신호를 수신하여 제 2 디스크램블러(1007)에서 디스크램블하여 처리할 것이다.
도 13은 방송 수신기에 대한 바람직한 또 다른 실시예의 구성을 도시한 블록도이다.
도 13을 참조하면, 방송 수신기(1100)는 호스트(1150), 케이블카드(1190)를 구비한다. 여기서 케이블카드(1190)는 호스트(1150)에 장,탈착될 수 있으며, 싱글 스트림을 처리할 수 있는 싱글(S)-카드이거나 멀티 스트림을 처리할 수 있는 멀티(M)-카드 중 하나이다.
호스트(1150)는 케이블 방송만을 수신하거나, 케이블 방송 또는 지상파 방송 또는 위성 방송 중 어느 하나 이상의 디지털 방송을 수신할 수 있다. 이를 위해, 호스트(1150)는 제1 튜너(1101a), 제2 튜너(1101b), 제1 복조부(1102), 다중화부(1103), 역다중화부(1104), 복호부(1105), 제2 복조부(DOCSIS)(1106), 제3 튜너(1107), 스위칭부(1108), 변조부(1109), 제어부(1110), OCAP 메모리 제어부(1120) 및 메모리(1130)를 구비한다.
한편, 방송 수신기(1100)와 헤드엔드(headend)간의 쌍방향 통신 방식에는 두 가지 방식이 있는데, OOB(Out Of Band) 방식 및 DSG(DOCSIS Settop Gateway) 방식이 가능하다. 이에 따라 시청자는 OOB(Out Of Band) 방식 및 DSG(DOCSIS Settop Gateway) 중 어느 하나를 이용하여 호스트(1150)를 통해 원하는 프로그램을 선택하여 볼 수도 있다. 또는 시청자가 방송 프로그램에 직접 참여하거나 필요한 정보를 선택하여 볼 수 있으며, OOB 방식/DSG 방식을 통하여 데이터 방송 서비스가 제공될 수도 있다.
제1 튜너(1101a)는 안테나를 통해 전송되는 지상파 A/V(Audio/Video) 방송이나 케이블을 통해 인-밴드(in-band)로 전송되는 케이블 A/V 방송 중 특정 채널 주파수만을 튜닝하여 제1 복조부(1102)로 출력한다.
여기서, 지상파 방송과 케이블 방송은 전송 방식이 다르므로, 제1 복조부(1102)는 서로 다른 전송 방식의 신호에 대해 다른 복조 과정을 수행할 수 있다. 예를 들어, VSB(Vestigial Sideband Modulation) 방식으로 변조되어 전송되는 지상파 A/V 방송은 VSB 변조의 역으로 복조를 수행한다. 또한, QAM(Quadrature Amplitude Modulation) 방식으로 변조되어 전송되는 케이블 A/V 방송은 QAM의 역으로 복조를 수행한다.
제1 복조부(1102)에서 복조된 신호는 스트림 형태로 다중화부(1103)를 통해 출력된다. 이때, 케이블 A/V 방송을 수신할 수 있는 인-밴드 튜너가 복수개 이상 존재하고, 각 인-밴드 튜너에서 서로 다른 채널이 동시에 튜닝되어 각각의 복조부에서 복조되는 멀티 스트림이라면 다중화부(1103)에서 다중화되어 출력된다.
그리고 상기 제1 복조부(1102)에서 복조된 신호가 지상파 방송의 스트림이면 복조된 스트림은 다중화부(1103)를 통해 역다중화부(1104)로 출력되고, 케이블 방송의 스트림이면 다중화부(1103)와 슬롯에 장착된 케이블카드(1190)를 통해 역다중화부(1104)로 출력된다. 케이블카드(1190)는 고부가가치의 방송 콘텐츠에 대한 복사 방지 및 제한적인 접근을 위하여, 제한 수신(Conditional Access ; CA) 시스템 을 포함하며, POD(Point Of Deployment) 모듈이라고도 한다.
케이블 카드(1190)는 다중화부(1103)에서 출력되는 케이블 방송의 싱글 스트림 또는 멀티 스트림에 스크램블이 걸려있다면 디스크램블하여 역다중화부(1104)로 출력한다. 만일 케이블카드(1190)가 장착되어 있지 않다면 제1 복조부(1102)에서 복조된 케이블 방송의 싱글 스트림 또는 멀티 스트림은 바로 역다중화부(1104)로 출력된다. 이 경우 스크램블된 케이블 방송은 디스크램블을 하지 못하므로 정상적으로 시청하지 못한다.
역다중화부(1104)는 다중화된 방송 스트림으로부터 오디오, 비디오, 데이터 스트림을 분리한 후 각 복호부(1105)로 출력한다. 복호부(1105)는 오디오 복호기, 비디오 복호기, 데이터 복호기를 포함할 수 있다. 즉, 역다중화부(1104)에서 역다중화된 오디오 데이터는 오디오 복호기에서, 비디오 데이터는 비디오 복호기에서, 데이터 스트림은 데이터 복호기에서 각각 복호된다.
제2 튜너(1101b)는 DSG 방식으로 케이블을 통해 전송되는 데이터 방송 중 특정 채널 주파수를 튜닝하여 제2 복조부(1106)로 출력한다. 그리고 제2 복조부(1106)는 DSG 방식의 데이터 방송을 복조하고 복조한 방송 신호를 제어부(1110)로 출력할 수 있다.
제3 튜너(1107)는 케이블을 통해 OOB 방식으로 전송되는 하향 데이터 방송에 대해서 특정 채널 주파수를 튜닝하여 케이블카드(1190)로 출력한다.
그리고 헤드엔드(headend)와 방송 수신기(1100) 사이의 양방향 통신이 가능할 경우, 방송 수신기(1100)에서 헤드엔드로 전송하는 상향 정보들(예를 들면, 유 료 프로그램 신청, 호스트의 진단 정보 등)은 OOB 방식이나 DSG 방식으로 전송될 수 있다. 따라서, 본 발명에 따른 방송 수신기의 일 실시예는 OOB 방식 및 DSG 방식 중 하나를 선택하여 정보를 전송할 수 있도록 스위칭부(1108)가 구비될 수 있다.
OOB 방식에서는 사용자 정보나 시스템 진단 정보가 케이블카드(1190)와 스위칭부(1108)를 통해 변조부(1109)로 출력되고, 변조부(1109)는 스위칭부(1108)가 출력한 신호를 QPSK(Quadrature Phase Shift Keying) 변조 방식으로 변조하여 케이블을 통해 헤드엔드로 전송할 수 있다. 만약 DSG 방식으로 사용자의 방송 정보가 전송된다면, 사용자의 방송 정보는 제어부(1110)와 스위칭부(1108)를 통해 변조부(1109)로 출력되고, 변조부(1109)에서 QAM(Quadrature Amplitute Modulation)-16 변조 방식으로 변조된 후 케이블을 통해 헤드엔드로 전송될 수 있다.
제어부(1110)는 저장매체(1120)를 저장소로 하여 DVR 기능을 수행할 수 있다. 즉 제어부(1110)는 저장매체(1120)을 기반으로 PVR(Personal Video Recorder)을 수행하여, 저장매체(1120)에 녹화물을 저장할 수 있다. 또한 제어부(1110)는 타임쉬프트(Time Shift) 기능을 수행하기 위해 'time-shift buffer'를 저장매체(1120)에 설정할 수 있다. 여기서 저장매체(1120)는 방송 수신기(1100)에 내장될 수 있고, USB 포트 등에 연결된 외장 저장매체(1120)일 수 있으며, IEEE802.11 통신방식, IEEE802.11n 통신방식, IEEE802.11g 통신방식, IEEE802.15.4 통신방식 WiFi 통신방식, Ethernet 통식방식, WCDMA 통신방식 및 GRS 통신방식 등 데이터 네트워크로 연결된 정보통신기기에 내장 또는 외장된 저장매체일 수 있다.
제어부(1110)의 동작은 하드웨어, 펌웨어, 미들웨어, 소프트웨어 중 어느 하나로 이루어질 수도 있고, 또는 그러한 것 중 적어도 두 개의 결합으로 이루어질 수도 있다. 그리고 어플리케이션(110, 130), 미들웨어(120) 및 운영 시스템(140)을 실행시키기 위한 컴퓨터가 읽을 수 있는 코드 및 기타 필요한 데이터 또는 정보들은 메모리(1130)에 저장된다. 어플리케이션(110, 130), 미들웨어(120) 및 운영 시스템(140)은 방송 수신기의 전원이 온 될 때, 또는 다른 어플리케이션이나 사용자의 요구에 따라 실행된다.
도 14는 본 발명에 따른 방송 수신기에 대한 바람직한 또 다른 실시예의 구성을 도시한 블록도이다.
도 14를 참조하면, 본 발명에 따른 방송 수신기(1200)는, 지상파 수신부(1202), 케이블 수신부(1203), 외부입력 수신부(1204), DOCSIS(1205), 오디오/비디오 디코더(Audio/Video Decoder)(1206), 오디오/비디오 출력부(1207), 제어부(1208), SDRAM(1209), 플래쉬 메모리(Flash Memory)(1210), 그리고 케이블 카드(Cable Card)(1211) 등을 포함하여 이루어진다.
다만, 여기서 방송 수신기(1200)는 예를 들어, 케이블 방송을 수신할 수 있는 디지털 티브이(DTV), 또는 iDCR(bi-directional Digital Cable Ready) TV가 될 수도 있다.
상기 케이블 카드(1211)의 주된 역할은 암호화된(Scrambled) 케이블 방송 신호에 대하여, 암호를 해제(Descramble)하는 것이다.
양방향 통신을 지원하기 위해, 상기 케이블 수신부(1203) 내에는 QAM(Quadrature Amplitude Modulation) 신호를 전송 받을 수 있는 인-밴드 튜너(In-band Tuner)와, QPSK(Quadrature Phase Shift Keying) 신호를 신호를 전송 받을 수 있는 아웃 오브 밴드 튜너(Out Of Band Tuner)가 탑재되어 있고, 또한 DOCSIS 모뎀을 별도로 탑재할 수 있어서, 상기 케이블 카드(1211)와, 케이블 방송 사업자 등의 선택에 의해, 상기 OOB 튜너와 DOCSIS 모뎀을 사용하여 양방향 통신을 지원한다.
상기 지상파 수신부(1202)는 VSB(Vestigial SideBand) 신호를 전송 받아, 복조(Demodulation)하여, 디지털 신호로 변환한 후, 상기 A/V 디코더(1206)로 전달한다. 다만, 상기 A/V 디코더(1206)에서, 비디오 디코더는 MPEG 비디오 디코더가 될 수 있고, 오디오 디코더는 AC3 오디오 디코더가 될 수 있다.
상기 케이블 수신부(1203)는 내부에 2개의 튜너를 내장하고 있는데, 인-밴드 튜너와, OOB 튜너이다. 특히, 상기 인-밴드 튜너는 QAM 신호만을 수신하며, 상기 OOB 튜너는 QPSK 또는 QAM 신호를 수신할 수 있다.
여기에서, 상기 인-밴드 튜너를 통해 수신된 QAM 신호는 오디오 정보, 비디오 정보 또는 데이터 방송 정보가 포함된 신호로서, 상기 오디오 정보, 비디오 정보는 암호화(Scrambled)되어 있거나, 또는 암호화 되어 있지 않을 수도 있다(Unscrambled). 다만, 상기 QAM 신호는 암호화가 되어 있는지 여부를 불문하고, 일단 상기 케이블 카드(1211)로 전달되어, 암호화를 푸는 과정(Descrambling)을 거친 후, 다시 A/V 디코더(1206)로 전달된다.
한편, 상기 OOB 튜너를 통해 수신된 QAM/QPSK 신호와 DOCSIS 모뎀을 이용하 여, 상기 케이블 카드(1211), 상기 제어부(1208), 그리고 케이블 헤드엔드(Cable Headend)가 양방향 통신을 하게 된다.
다만, 제어부(1208)는 예를 들어, 마이콤(MIcom) 또는 CPU(Central Processing Unit) 등으로 구현할 수 있다.
어플리케이션(110, 130), 미들웨어(120) 및 운영 시스템(140)을 실행시키기 위한 컴퓨터가 읽을 수 있는 코드 및 기타 필요한 데이터 또는 정보들은 플래쉬 메모리(1210)에 저장된다. 다만, 상기 플래쉬 메모리(1210)는 일예에 불과하며, 데이터를 저장할 수 있는 다른 메모리를 사용할 수도 있다.
그리고, 방송 수신기(1200)의 전원이 켜지는 순간, 상기 제어부(1208)의 제어에 따라, 상기 플래쉬 메모리(1210)에 저장된 소프트웨어들은 상기 SDRAM(1209)으로 옮겨져서, 실행된다.
다만, 상기 SDRAM(Synchronous Dynamic Random Access Memory)(1209)도 일예에 불과하며, 데이터를 저장할 수 있는 다른 메모리를 사용할 수도 있다.
한편, 방송국 등은, 데이터 방송을 통해, 데이터 방송 관련 어플리케이션(110)을 전송하고, 전송된 데이터 방송 관련 어플리케이션(110)은 상기 SDRAM(1209)에 저장되어, 실행된다. 물론, 상기 방송 수신기(1200)의 전원을 온(On) 시킬 때 마다, 매번 동일한 데이터 방송 관련 어플리케이션(110)을 다운로드 하지 않기 위해, 데이터 방송 관련 어플리케이션(110)을 상기 플래쉬 메모리(1210)에 저장시킬 수도 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 장치에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 장치에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
도 1은 방송 수신기의 계층구조에 대한 바람직한 일 실시예의 구성을 도시한 구조도,
도 2는 데이터 방송 관련 어플리케이션(110)의 라이프 싸이클(life cycle)의 일예를 도시한 개념도,
도 3은 본 발명에 따른 방송 수신기에 대한 바람직한 일 실시예의 구성을 도시한 블록도,
도 4는 본 발명에 따른 미들웨어에 대한 바람직한 일 실시예의 구성을 도시한 블록도,
도 5는 서비스부에 대한 바람직한 일 실시예의 구성을 도시한 블록도,
도 6은 본 발명에 따른 미들웨어가 저장된 녹화물 목록을 필터링하여 특정 조건을 만족하는 녹화물 목록을 산출하는 과정에 대한 일실시예를 도시한 개념도,
도 7은 인터페이스 모듈에 대한 API의 명세의 일예를 도시한 도면,
도 8은 본 발명에 따른 방송 수신기가 수행하는 녹화과정에 대한 바람직한 실시예를 도시한 흐름도,
도 9는 본 발명에 따른 미들웨어 상에서 수행되는 재생과정에 대한 바람직한 일 실시예를 도시한 흐름도,
도 10은 본 발명에 따른 녹화물 목록 제공 방법에 대한 바람직한 일 실시예의 수행과정을 도시한 흐름도,
도 11은 본 발명에 따른 녹화물 목록 제공 방법에 대한 바람직한 다른 실시 예의 수행과정을 도시한 흐름도,
도 12는 본 발명에 따른 방송 수신기에 대한 바람직한 다른 실시예의 구성을 도시한 블록도,
도 13은 본 발명에 따른 방송 수신기에 대한 바람직한 또 다른 실시예의 구성을 도시한 블록도, 그리고,
도 14는 본 발명에 따른 방송 수신기에 대한 바람직한 또 다른 실시예의 구성을 도시한 블록도이다.

Claims (10)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 미들웨어(Middleware)에 있어서,
    데이터 방송 관련 어플리케이션과 정보 또는 명령을 송수신하는 인터페이스 모듈; 및
    상기 인터페이스 모듈로부터 시리즈 녹화물 목록 요청 명령이 수신되면, 시리즈 녹화물 목록을 생성하고, 기 저장된 녹화물 목록에 포함된 녹화물 중 상기 요청 명령에 포함된 시리즈 녹화물을 필터링(Filtering)하여 상기 생성된 시리즈 녹화물 목록에 추가하고, 상기 저장된 녹화물 목록에 포함된 녹화물 전체에 대해 필터링 과정이 종료되면, 상기 시리즈 녹화물 목록을 상기 인터페이스 모듈로 송신하는 서비스 모듈을 포함하고,
    상기 필터링은 시리즈 녹화물 사이의 상관 관계에 기초하여 수행되고,
    상기 녹화물의 필터링은,
    상기 시리즈 녹화물 목록에 포함된 시리즈 녹화물의 객체와 상기 기 저장된 녹화물 목록에 포함된 녹화물의 객체를 비교하고,
    상기 시리즈 녹화물의 객체와 상기 녹화물의 객체가 동일하면, 상기 기 저장된 녹화물 목록으로부터 상응하는 녹화물을 추출하는 것에 의해, 수행되며,
    상기 시리즈 녹화물의 객체는, ParentRecordingRequest 객체이고, 상기 녹화물의 객체는, RecordingRequest 객체이며,
    상기 ParentRecordingRequest 객체와, 상기 RecordingRequest 객체가 동일한 객체이면, 상기 시리즈 녹화물의 객체와 상기 녹화물의 객체는 상속 관계를 가지고,
    상기 시리즈 녹화물의 객체와 상기 녹화물의 객체가 상속 관계를 가지면, 상응하는 녹화물은, 상기 기 저장된 녹화물 목록으로부터 추출되는 것을 특징으로 하는 미들웨어.
  5. 삭제
  6. 제4 항에 있어서,
    상기 시리즈 녹화물 사이의 상관 관계는 속성값의 연관성인 것을 특징으로 하는 미들웨어.
  7. 녹화물 목록 제공 방법에 있어서,
    데이터 방송 관련 어플리케이션으로부터 시리즈 녹화물 목록 요청 명령을 수신하는 단계;
    시리즈 녹화물 목록을 생성하는 단계;
    기 저장된 녹화물 목록에 포함된 녹화물 중 상기 요청 명령에 포함된 시리즈 녹화물을 필터링(Filtering)하여 상기 생성된 시리즈 녹화물 목록에 추가하는 단계; 및
    상기 저장된 녹화물 목록에 포함된 녹화물 전체에 대해 필터링 과정이 종료되면, 상기 시리즈 녹화물 목록을 인터페이스 모듈로 송신하는 단계를 포함하고,
    상기 필터링은 시리즈 녹화물 사이의 상관 관계에 기초하여 수행되고,
    상기 녹화물의 필터링은,
    상기 시리즈 녹화물 목록에 포함된 시리즈 녹화물의 객체와 상기 기 저장된 녹화물 목록에 포함된 녹화물의 객체를 비교하고,
    상기 시리즈 녹화물의 객체와 상기 녹화물의 객체가 동일하면, 상기 기 저장된 녹화물 목록으로부터 상응하는 녹화물을 추출하는 것에 의해, 수행되며,
    상기 시리즈 녹화물의 객체는, ParentRecordingRequest 객체이고, 상기 녹화물의 객체는, RecordingRequest 객체이며,
    상기 ParentRecordingRequest 객체와, 상기 RecordingRequest 객체가 동일한 객체이면, 상기 시리즈 녹화물의 객체와 상기 녹화물의 객체는 상속 관계를 가지고,
    상기 시리즈 녹화물의 객체와 상기 녹화물의 객체가 상속 관계를 가지면, 상응하는 녹화물은, 상기 기 저장된 녹화물 목록으로부터 추출되는 것을 특징으로 하는 녹화물 목록 제공 방법.
  8. 삭제
  9. 제 7항에 있어서,
    상기 시리즈 녹화물 사이의 상관 관계는 속성값의 연관성인 것을 특징으로 하는 녹화물 목록 제공 방법.
  10. 삭제
KR1020080025339A 2008-03-19 2008-03-19 미들웨어, 녹화물 목록 제공 방법 및 녹화물 목록 제공방법을 기록한 기록매체 KR101559769B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080025339A KR101559769B1 (ko) 2008-03-19 2008-03-19 미들웨어, 녹화물 목록 제공 방법 및 녹화물 목록 제공방법을 기록한 기록매체
US12/382,563 US8687940B2 (en) 2008-03-19 2009-03-18 Method and a digital broadcast receiver for providing a list of records

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080025339A KR101559769B1 (ko) 2008-03-19 2008-03-19 미들웨어, 녹화물 목록 제공 방법 및 녹화물 목록 제공방법을 기록한 기록매체

Publications (2)

Publication Number Publication Date
KR20090100001A KR20090100001A (ko) 2009-09-23
KR101559769B1 true KR101559769B1 (ko) 2015-10-13

Family

ID=41164064

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080025339A KR101559769B1 (ko) 2008-03-19 2008-03-19 미들웨어, 녹화물 목록 제공 방법 및 녹화물 목록 제공방법을 기록한 기록매체

Country Status (2)

Country Link
US (1) US8687940B2 (ko)
KR (1) KR101559769B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011068464A1 (en) * 2009-12-01 2011-06-09 T-Data Systems (S) Pte Ltd Memory card and method for storage and wireless transceiving of data
CN102387407A (zh) * 2010-08-31 2012-03-21 国基电子(上海)有限公司 实现广播网络条件接收的系统和方法
US8724696B2 (en) * 2010-09-23 2014-05-13 Vmware, Inc. System and method for transmitting video and user interface elements
KR101927435B1 (ko) * 2011-12-22 2018-12-11 삼성전자주식회사 전자 장치 및 그 제어 방법
KR20130083948A (ko) * 2012-01-16 2013-07-24 삼성전자주식회사 영상처리장치 및 그 제어방법
US9819986B2 (en) * 2012-08-17 2017-11-14 Flextronics Ap, Llc Automated DLNA scanning with notification
CN103748889A (zh) * 2012-08-17 2014-04-23 弗莱克斯电子有限责任公司 多种来源的电子节目指南信息聚集
US10764640B2 (en) * 2018-11-23 2020-09-01 Sony Corporation Receiver device including native broadcaster application
BR112021016173A2 (pt) 2019-02-22 2021-11-03 Regeneron Pharma Roedor geneticamente modificado, métodos de produção de um roedor geneticamente modificado e de produção de um anticorpo anti-nav1.7, célula ou tecido isolado de roedor, linhagem celular imortalizada, embrião de roedor, construto de ácido nucleico de direcionamento, e, hibridoma
CN114520922B (zh) * 2020-11-20 2024-03-12 北京新媒传信科技有限公司 一种弹幕消息处理方法、装置与弹幕系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7600246B2 (en) * 2002-04-17 2009-10-06 Microsoft Corporation Method and apparatus for analyzing program data
JP4734992B2 (ja) * 2005-03-28 2011-07-27 船井電機株式会社 番組記録装置、および番組記録方法
US8156198B2 (en) * 2006-01-30 2012-04-10 Microsoft Corporation Live custom media play lists
US8707369B2 (en) * 2006-03-01 2014-04-22 Tivo Inc. Recommended recording and downloading guides
US8090694B2 (en) * 2006-11-02 2012-01-03 At&T Intellectual Property I, L.P. Index of locally recorded content
US20080115173A1 (en) * 2006-11-10 2008-05-15 Guideworks Llc Systems and methods for using playlists

Also Published As

Publication number Publication date
KR20090100001A (ko) 2009-09-23
US8687940B2 (en) 2014-04-01
US20090257738A1 (en) 2009-10-15

Similar Documents

Publication Publication Date Title
KR101559769B1 (ko) 미들웨어, 녹화물 목록 제공 방법 및 녹화물 목록 제공방법을 기록한 기록매체
US7386129B2 (en) System and method for multimedia content simulcast
US8117638B2 (en) System and method for improved multi-stream multimedia transmission and processing
US8654981B2 (en) System and method for conditional access key encryption
US8228833B2 (en) Method and apparatus for providing additional information on digital broadcasting program to IPTV in home network
KR101526967B1 (ko) 방송 송신기, 방송 수신기 및 케이블 방송의 소프트웨어수신 방법
US9077859B2 (en) Device for recording and playing contents, server for managing content location information, information recording medium, method for managing content information
US20080172712A1 (en) Multimedia data transmitting apparatus, multimedia data receiving apparatus, multimedia data transmitting method, and multimedia data receiving method
JP4531259B2 (ja) マルチサービスディジタル伝送システム用のアプリケーションデータテーブル
US20080163323A1 (en) Apparatus and method for processing data broadcast signal
US20070157263A1 (en) Content management system
US9363556B1 (en) System and method for providing multiple rating versions in media programming
KR20080078829A (ko) 방송 수신 장치, 영상 축적 장치 및 멀티미디어 배포시스템
KR101531499B1 (ko) 미들웨어, 녹화물 정보 제공 방법 및 녹화물 정보 제공방법을 기록한 기록매체
US20080187297A1 (en) Methid, End User System, Signal and Transmission System for Combining Broadcasted Audio-Video Content with Locally Available Information
JP2008536433A5 (ko)
JP3824575B2 (ja) ディジタル放送受信装置および受信方法、ディジタル放送送信方法
US20240137607A1 (en) Digital broadcast receiving apparatus
JP4176778B2 (ja) ディジタル放送送信方法
JP3824574B2 (ja) ディジタル放送受信装置及びその方法
JP4172804B2 (ja) ディジタル放送受信装置および方法
JP2006270973A (ja) ディジタル放送送信方法
KR20110037669A (ko) 방송 수신기 부팅 제어 방법 및 디지털 방송 수신기

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
E902 Notification of reason for refusal
B701 Decision to grant
GRNT Written decision to grant