이하, 본 발명의 바람직한 실시 예를 첨부도면을 참조하여 설명한다. 이하에 기술된 각 실시 예는 일반적인 것부터 좀더 특정한 것까지의 다양한 개념을 이해하는데 도움이 될 것이다.
본 발명의 기술적인 범위는, 특허청구범위에 의해 규정되고, 이하에 기재된 각 실시 예에 의해 한정되는 것은 아니라는 점에 유념한다. 또한, 각 실시 예에 기재된 특징들의 조합은 본 발명에 항상 필수적이지 않다.
본 발명의 실시 예에 따른 EPG 생성장치는, 텔레비전 장치나 퍼스널 컴퓨터 등의 EPG를 생성해 표시하는 장치뿐만 아니라, 셋톱 박스나 레코더 등의 EPG를 생성하는 장치도 포함하고 있다. 특히, EPG 생성장치는 제1의 프로그램 속성, 예를 들면, 채널과, 제2의 프로그램 속성, 예를 들면, 프로그램 방송 시각에 각각 대응하는 좌표축을 갖는 이차원 좌표면에 프로그램 정보를 배치한 EPG를 생성하는 형태 가 바람직하다.
(제1 실시 예)
본 발명의 제1 실시 예에서는, EPG 생성장치로서, 텔레비전 장치를 예로 들어서 구체적으로 설명한다.
도 1은, 본 발명의 제1 실시 예에 따른 텔레비전 장치(1)의 개략 구성을 나타내는 블럭도이다. 텔레비전 시청자가, 리모콘을 이용해 도 1에 나타낸 텔레비전 장치(1)를 조작할 수가 있다. 이 텔레비전 장치(1)는, 네트워크(3) 및 전화 회선(4)에 접속되어 외부 기기와의 각종 데이터의 송수신이나 외부 기기의 제어 등을 할 수가 있다. 텔레비전 장치(1)에는, 디지털 텔레비전 방송파를 수신하는 안테나(5)가 접속되어 있다.
텔레비전 장치(1)는, 튜너(11), 디코더(12), 음성 처리부(13), 음성 출력부(14), 화상 처리부(15) 및 표시부(16)를 구비한다. 게다가, 텔레비전 장치(1)는, 내부 버스(17), 리모콘 수신부(18), 제어부(19), 외부 인터페이스(I/F부;20), 메모리(21), 데이터 ROM(read only memory)(22) 및 모뎀(23)을 구비한다.
안테나(5)는, 방송국으로부터 송신된 디지털 텔레비전 방송파를 수신한다. 튜너(11)는, 안테나(5)에 의해 수신된 신호를 증폭 및 복조하고, 채널을 선국하며, 신호를 디코더(12)에 출력한다.
디코더(12)는, 튜너(11)로부터 공급된 신호를, 영상 신호, 음성 신호, 및 부가 데이터(데이터 방송용의 데이터, EPG 데이터 등)로 분리하고, 그 분리된 신호 및 데이터를 디코드한다. 튜너(11)로부터 공급된 음성 신호는 음성 처리부(13)에 입력되고, 영상 신호는 화상 처리부(15)에 입력되며, 부가 데이터는 내부 버스(17)에 공급된다.
음성 처리부(13)는, 디코더(12)로부터의 음성 신호나 내부 버스(17)를 통해서 입력되는 음성 신호를 선택하거나 혹은 이 2개의 음성신호를 합성하고, 그 결과의 신호를 음성 출력부(14)에 출력한다. 음성 처리부(13)는, 음량, 음질, 실제감등에 관한 처리도 실행한다. 음성 출력부(14)는, 예를 들면 스피커이며, 음성 처리부(13)로부터의 음성 신호를 증폭하고, 그 증폭된 음성신호를 출력한다.
화상 처리부(15)는, 디코더(12)로부터의 영상 신호 또는 내부 버스(17)를 통해서 입력되는 영상 신호를 선택하거나 혹은 이 2개의 신호를 합성하고, 그 결과의 신호를 표시부(16)에 출력한다. 표시부(16)는, 화상 처리부(15)에 의해 처리된 영상 신호를 화면에 표시한다.
리모콘 수신부(18)는, 리모콘(2)으로부터의 키 코드 신호를 수신하고, 그것을 제어부(19)에 전송한다. 외부 I/F부(20)는, 외부의 AV(audio-visual)기기, 예를 들면, 레코더나 퍼스널 컴퓨터로와 네트워크(3)를 통해서 각종 데이터, 예를 들면, 영상 및 음성을 송수신한다.
메모리(21)는, 디코더(12)로부터의 부가 데이터나 외부 I/F부(20)로부터의 각종 데이터를 내부 버스(17)를 통해서 수신하고, 그 수신한 데이터를 내부에 기억한다. 데이터 ROM(22)에는, 표시/인쇄용의 문자(폰트) 데이터와, 예를 들면 EPG용의 아이콘 및 버튼에 관한 화상 데이터가 미리 기억되어 있다. 또한, 이 ROM(22)은, 이하 다른 실시 예의 각각에 기재된 표시 동작을 실행하는 프로그램을 기억한 다. 이들 표시 동작은, 도 5, 10 내지 14, 18과 관련하여 적절히 설명될 것이다.
모뎀(23)은, 전화 회선(4)을 통해 외부와 데이터를 송수신한다. 예를 들면, 모뎀(23)은 유료 방송을 시청할 때의 과금에 관한 정보를 관리 서버에 보내거나, 쌍방향 방송을 시청할 때의 데이터를 송수신하거나 프로바이더(provider)에 인터넷 접속을 하거나 한다.
내부 버스(17)는, 튜너(11), 디코더(12), 음성 처리부(13), 화상 처리부(15), 제어부(19), 외부 I/F부(20), 메모리(21), 데이터 ROM(22), 및 모뎀(23)에 접속되어, 구성요소들 간에 각종 신호 및 데이터를 전송한다.
제어부(19)는, 내부 버스(17)를 통해서 텔레비전 장치(1)를 형성하는 구성요소들을 통괄적으로 제어한다. 예를 들면, 제어부(19)는 튜너(11)를 제어해 채널을 선택한다. 또, 제어부(19)는 음성 처리부(13)를 제어해 음성을 선택 혹은 합성하거나, 또는 화상 처리부(15)를 제어해 화상을 선택 혹은 합성한다. 또, 제어부(19)는, 리모콘 수신부(18)가 수신한 키 코드 신호를 해석해, 대응하는 처리를 행한다. 또, 제어부(19)는, 연월일, 요일, 시각 등을 계측하는 시계 기능이 있어, 시각 및 날짜에 관한 정보를 관리해 표시할 수가 있다.
이 제어부(19)는, 미리 정해진 조건 하에서, 복수의 프로그램으로부터 추천 프로그램을 특정하는 특정부로서의 역할을 하는 기능과, 특정된 추천 프로그램의 표시 영역을 팝업부로서 확장하는 확장부로서의 역할을 하는 기능을 갖는다. 게다가, 제어부(19)는 특정된 추천 프로그램에 대해서, 미리 정해진 조건에 근거해 우선도를 결정하는 결정부의 역할을 하는 기능과, 추천 프로그램의 표시 영역의 표시 의 방법을 제어하는 표시 제어부로서의 역할을 하는 기능도 갖는다. 또, 제어부(19)는 표시 영역이 확장되는 정도를 조정하기 위한 조정부로서의 역할을 하는 기능도 갖는다. 그렇지만, 반드시 제어부(19)가 이러한 모든 기능을 갖지 않아도 된다.
이 텔레비전 장치(1)에 있어서, EPG에 포함된 각 프로그램에 관한 상세한 프로그램 정보는, 안테나(5)를 통해서 튜너(11)에 의해 수신된다. 수신한 프로그램 정보는 디코더(12)로 디코드된 후, 메모리(21)에 기억된다. 유저가 리모콘(2)을 조작해 EPG의 표시를 지시하면, 메모리(21)에 기억된 프로그램 정보에 근거해 EPG가 작성되어, 표시부(16)에 표시된다. 덧붙여 본 실시 예에 따른 텔레비전 장치(1)의 상세한 동작 순서 등에 대해서는 후술한다.
도 2는, 도 1에 나타낸 리모콘(2)의 상세한 구성을 나타내는 블럭도이다. 도 2에 나타낸 바와 같이, 리모콘(2)은, 버튼부(31), 리모콘 제어부(32), 키 코드 기억부(33), 데이터 송신부(34), 및 시계부(35)를 포함한다.
유저는, 버튼부(31)의 각 버튼을 눌러서, 텔레비전 장치(1)에 소망한 동작을 지시할 수가 있다. 키 코드 기억부(33)는, 텔레비전 조작/설정용의 키 코드 등이 미리 기억되는 ROM 등이다.
데이터 송신부(34)는, 눌러진 버튼에 대응하는 키 코드 등의 각종 데이터를 텔레비전 장치(1)에 송신한다. 시계부(35)는, 연월일, 요일, 시각 등을 계측하기 위해서 이용된다. 리모콘 제어부(32)는, 버튼부(31)의 각 버튼의 누름에 따라, 키 코드 기억부(33), 데이터 송신부(34) 및 시계부(35)를 제어한다. 유저는, 이 리모 콘(2)을 조작해, 텔레비전 장치(1)에 대해서 EPG를 표시하도록 지시할 수가 있다.
도 3은, 도 2에 나타낸 리모콘(2)의 외관도이다. 도 3에 있어서, EPG 버튼(41)은 EPG 표시를 지시하기 위한 버튼이며, 이 EPG 버튼(41)이 눌러지면, EPG가 텔레비전 장치(1)의 화면에 표시된다. 조작 버튼(42)은, 상·하·좌·우 커서 버튼과 결정 버튼으로 구성되고, 메뉴 조작이나 EPG 조작 시에 사용된다.
전원 버튼(43)은, 텔레비전 장치(1)의 본체의 전원의 온/오프를 하기 위한 버튼이다. 또, 리모콘(2)에는, 지상파 방송, BS(broadcasting satellite)방송, CS(communication satellite)방송에 각각 대응하는 버튼 44~46이 설치되어 있다. 게다가, 리모콘(2)에는, 조작 메뉴 화면을 표시하기 위한 메뉴 버튼(47)과, 음량 레벨을 조절하기 위한 음량 UP 버튼(48) 및 음량 DOWN 버튼(49)이 설치되어 있다. 또, 텔레비전의 채널 선국 등에 사용되는 숫자 버튼(50)과, 텔레비전 채널의 UP/DOWN에 사용되는 채널 UP 버튼(51) 및 채널 DOWN 버튼(52)이 설치되어 있다. 게다가, 데이터 방송 화면 및 EPG에 사용하는 청·적·녹·황의 컬러 버튼(53)이 설치되어 있다. 또, 리모콘(2)에는 본 발명의 제1 실시 예에 특유의 버튼으로서 기능을 하는 프로그램 정보의 표시 영역의 확장의 정도를 조정하기 위한 플러스 버튼(54) 및 마이너스 버튼(55)도 설치되어 있다.
도 4는, 디지털 텔레비전 방송파에 포함되는 EPG 데이터의 구성 예를 나타내는 도면이다. 도 4에 나타낸 바와 같이, 디지털화된 방송 신호는, IEC(International Electrotechnical Commission), IEEE(Institute of Electrical and Electronics Engineers), ARIB(Association of Radio Industries and Businesses) 등의 각종 규격 단체에 의해 규정되어 있고, "TS(transport stream) 패킷"이라고 불리는 패킷 단위로 전송된다.
TS 신호는, 영상 신호에 대응하는 비디오부(61), 음성 신호에 대응하는 오디오부(62), 및 부가 데이터에 대응하는 데이터부(63)로 구성된다. 복수의 데이터부(63)는 수집되어, 프로그램 정보 테이블로 재구성된다. 프로그램 정보 테이블은, PAT(Program Association Table), PMT(Program Map Table), NIT(Network Information Table), EIT(Event Information Table), TOT(Time Offset Table) 등의 방송 프로그램 고유의 정보와 관련된 각종의 테이블을 포함한다. EPG 데이터는, EIT 내의 몇 개의 항목과 기술자로 구성된다. EIT의 최초의 부분에는, 테이블 ID, 서비스 ID, 및 이벤트 ID 등뿐 아니라, 프로그램의 방송 개시 시각, 프로그램 방송 계속 시간 및 과금 모드 정보 등이 기술되어 있다. 그리고, 이들 항목 이후에는, 몇 개의 기술자가 존재한다. 다음에는, 이들 중에서, EPG와 관계가 있는 기술자에 대해 설명한다.
단형식 이벤트 기술자는, 프로그램의 타이틀이나 부제를 나타내는 기술자이고, 확장 형식 이벤트 기술자는, 출연자, 각본자, 사회자 등의 인물 이름 및 프로그램의 해설 등을 나타내는 기술자이다. 컨텐트 기술자는, 방송 프로그램의 장르를 나타내는 기술자이다. 여기서, 방송 프로그램의 장르란, "뉴스/보도", "스포츠", "드라마", "영화", "버라이어티", "다큐멘터리/교양" 등의 대장르와, "축구", "야구", "올림픽/국제 대회" 등의 각 대장르에 대응하는 상세한 중장르로 규정되어 있다.
파렌탈 레이트(parental rating) 기술자는, 시청 제한 연령을 나타내는 기술자이다. 디지털 카피 제어 기술자는, 디지털/아날로그 카피에 관한 제약 정보를 나타내는 기술자이다. 데이터 컨텐트 기술자는, 프로그램 관련의 데이터 방송에 관한 정보를 나타내는 기술자이다. CA 계약 정보 기술자는, 과금 대상 프로그램에 대한 시청 혹은 녹화 예약의 가불가 등의 정보를 나타내는 기술자이다. 이벤트 그룹 기술자는, 이벤트 공유/그룹화 정보나, 이벤트 릴레이에 관한 링크 정보를 나타내는 기술자이다. 컴포넌트 기술자는, 멀티뷰 텔레비전에서 이벤트 내의 컴포넌트의 조합에 관한 정보를 나타내는 기술자이다. 시리즈 기술자는, 시리즈 프로그램이나 재방송 프로그램에 관한 정보를 나타내는 기술자이다.
상술한 것처럼, 본 발명의 제1 실시 예에 따른 텔레비전 장치(1)에서는, 디지털 텔레비전 방송파에 포함되는 부가 데이터는, 안테나(5), 튜너(11) 및 디코더(12)를 통해서 내부 버스(17)에 공급된다. 제어부(19)는, 내부 버스(17)에 공급된 부가 데이터를 이용해서 EIT를 재구성하고, 상술한 형식의 데이터를 EPG 데이터로서 메모리(21)에 기억한다. 그리고, 텔레비전 시청자로부터의 지시에 응답해, 제어부(19)는 메모리(21)로부터 EPG 데이터를 판독하여, 데이터 ROM(22)에 기억되어 있는 EPG용의 아이콘 및 버튼 등의 화상 데이터를 이용해 EPG 화면을 생성하고, 그 EPG 화면을 화상 처리부(15)를 통해서 표시부(16)에 표시한다.
다음에, 도 5의 플로차트를 참조하여, 본 발명의 제1 실시 예에 따른 상술한 바와 같이 구성된 텔레비전 장치(1)의 동작에 대해 설명한다. 도 5는, 도 1에 나타낸 텔레비전 장치(1)가 수행하는 EPG 표시 처리를 나타내는 플로차트이다.
이 처리 전에, 텔레비전 장치(1)에서는, 전원 ON 시에 방송파로부터 EPG 데이터를 추출해서 메모리(21)에 이 EPG 데이터를 기억한다.
텔레비전 시청자는, 텔레비전 방송을 시청하면서 EPG를 열람하기를 원하는 경우, 리모콘(2)의 EPG 버튼(41)을 누른다. 그러면, 스텝 S1에서는, EPG 버튼(41)이 눌러졌는지 여부를 판정한다. EPG 버튼(41)이 눌러졌다고 판정되면, 리모콘(2)의 데이터 송신부(34)는 키 코드 신호를 송신하고, 텔레비전 장치(1)의 리모콘 수신부(18)는 키 코드 신호를 수신한다. 텔레비전 장치(1)의 제어부(19)는, 리모콘(2)의 EPG 버튼(41)이 눌러졌다는 것을 검출한다.
스텝 S1에서, EPG 버튼(41)이 눌러져 있지 않다고 판정되면, EPG 버튼(41)이 눌러질 때까지 처리는 스텝 S1을 반복한다.
스텝 S2에 있어서, 제어부(19)는 표시되어야 할 채널, 예를 들면, 8채널과, 시간대, 예를 들면 6시간에 대한 프로그램에 관한 프로그램 정보를 메모리(21)로부터 판독한다.
다음에, 제어부(19)는, EPG에 표시하는 모든 프로그램에 대해, 가(假)레이아웃 처리를 실행한다(스텝 S3). 가레이아웃 처리에서는, 횡축을 채널, 세로축을 시간대로 한 이차원 좌표계에 있어서의 각 프로그램 정보의 표시 영역의 크기(가로폭과 높이)와 위치를 가결정한다. 가레이아웃 처리에서는, 각 프로그램 정보의 표시 영역의 가로 폭은 서로 동일하고, 표시 영역의 높이는 프로그램 계속 시간에 비례한다. 각 프로그램 정보의 표시 영역의 좌표값은, 도 6에 나타낸 데이터 형식(x1, y1, x2, y2)으로 메모리(21)에 기억된다. 도 6은, 각 프로그램 정보의 표시 영역에 관한 레이아웃 데이터의 데이터 형식을 나타낸다. 이 가레이아웃 처리의 단계에 있어서는, 아직 문자나 배경색은 묘화되지 않는다. 가레이아웃 처리의 자세한 것은 후술한다.
계속해서, 제어부(19)는, 추천 프로그램에 대해 재레이아웃 처리를 실행한다(스텝 S4). 재레이아웃 처리에서는, 가레이아웃 처리된 표시 영역의 크기와 위치를 변경한다. 구체적으로는, 추천 프로그램의 표시 영역을 팝업부(팝업 창)로서 확장한다. 여기서, 추천 프로그램이란, 유저의 취향에 근거해 추출된 프로그램이나, 유저가 키워드 등으로 지정한 검색 조건에 맞는 프로그램 등이다. 재레이아웃 처리 후의 각 프로그램 정보의 표시 영역의 좌표값은, 도 6에 나타낸 데이터 형식(xe1, ye1, xe2, ye2)으로 메모리(21)에 기억된다. 이 재레이아웃의 단계에서도, 아직 문자나 배경색은 묘화되지 않는다. 재레이아웃 처리의 상세(추천 프로그램의 결정 동작을 포함한다)는 후술한다.
다음에, 각 프로그램 정보의 표시 영역의 배경 및 문자를 묘화한다(스텝 S5). 이 경우, 우선 추천 프로그램 이외의 방송에 관한 프로그램 정보의 표시 영역의 배경 및 문자를 묘화한 후, 추천 프로그램에 관한 프로그램 정보의 표시 영역의 배경 및 문자를, 다른 프로그램의 표시 영역의 위쪽에 있는 영역에 표시할 수 있도록 묘화한다. 각 프로그램 정보의 표시 영역 내에는, 프로그램 개시 시각, 프로그램 타이틀(프로그램명, 부제), 프로그램 설명(인물의 이름, 및 프로그램의 해설) 등을 묘화한다. 문자 수가 소정 수를 넘는 경우에는, 표시 영역 내에 표시 가능한 최대 수의 문자를 묘화한다. 각 프로그램 정보의 표시 영역의 배경에 대해서는, 장 르마다 다른 색이 제공된다. 확장된 후의 표시 영역은, 다른 색으로 확장 전의 표시 영역과 구별되어, 채널, 프로그램 개시 시각, 및 프로그램 종료 시각을 정확히 인식하는 것이 가능해진다.
도 7은, 스텝 S5에서 묘화된 EPG 화면의 일례를 나타낸다. 도 7에 있어서, 아래쪽으로 경사진 해칭 패턴은 엷은 청색 배경이며, "여행 버라이어티" 장르를 나타낸다. 종선 해칭 패턴은 엷은 적색 배경이며, "역사/기행" 장르를 나타낸다. 위쪽으로 경사진 해칭부는 엷은 녹색 배경이며, "컬처/전통문화" 장르를 나타낸다. 횡선 해칭부는 엷은 황색 배경이며, "여행/낚시/아웃도어" 장르를 나타낸다. 도 7은 예를 들면, 프로그램(23)이, 아래쪽으로 경사진 패턴(엷은 청색 배경)으로 나타낸 배경을 갖고, 채널(CH) 2의 시간대 7:00~8:00의 프로그램인 것을 나타낸다.
도 5로 돌아와, 스텝 S6에서 플러스 버튼(54) 또는 마이너스 버튼(55)이 눌러졌는지 여부를 판정한다. 스텝 S6에서, 플러스 버튼(54) 또는 마이너스 버튼(55)이 눌러졌다고 판정되면, 처리는 스텝 S7로 진행된다. 스텝 S7에서, 추천 프로그램에 관한 프로그램 정보의 표시 영역의 확장 정도를 변경한다. 플러스 버튼(54)이 눌러진 경우에는, 추천 프로그램의 표시 영역의 확장의 정도를 증가시킨다. 마이너스 버튼(55)이 눌러진 경우에는, 추천 프로그램의 표시 영역의 확장의 정도를 감소시킨다. 이 플러스 버튼(54) 및 마이너스 버튼(55)의 누름에 따라, 추천 프로그램에 관한 프로그램 정보를 보다 더 상세히 표시하거나, 혹은 추천 프로그램 뒤에 숨어 있는 다른 프로그램에 관한 정보를 표시하는 것이 가능하다.
유저가 마이너스 버튼(55)을 계속 눌렀을 경우나, 혹은 추천 프로그램이 존재하지 않는 경우에는, 모든 프로그램에 관한 프로그램 정보의 표시 영역이 확장되지 않는다. 도 8은, 모든 프로그램에 관한 프로그램 정보의 표시 영역이 확장되어 있지 않은 EPG 화면의 일례를 나타낸다.
도 7에 나타낸 EPG 화면에 있어서, 리모콘(2)의 컬러 버튼(53) 중에서, 프로그램 검색용으로 할당된 버튼, 예를 들면, 녹색 버튼이 눌러지면, 검색 조건을 지정하기 위한 화면이 표시된다. 이 화면에서 장르나 키워드가 지정되면, 미리 등록된 장르나 키워드와는 관계없이, 지정된 검색 조건에 맞는 추천 프로그램에 관한 프로그램 정보의 표시 영역이 팝업 창으로서 확장되도록 재레이아웃 처리가 실행된다(스텝 S4).
다음에, 도 5에 나타낸 가레이아웃 처리(스텝 S3)에 대해, 상세히 설명한다. 도 1에 나타낸 제어부(19)로 가레이아웃 처리를 제어한다. 우선, EPG 화면의 좌표계에 대해 도 9를 참조하여 설명한다. 가레이아웃 처리에 있어서는, EPG 화면상의 각 프로그램에 관한 프로그램 정보의 표시 영역의 4개의 코너의 좌표가 가결정된다. 여기서, 좌측 상단 코너의 좌표를 (x1(N), y1(N))으로 하고, 좌측 하단 코너의 좌표를 (x1(N), y2(N))으로 하며, 우측 상단 코너의 좌표를 (x2(N), y1(N)), 우측 하단 코너의 좌표를 (x2(N), y2(N))로 한다.
예를 들면, 도 8에 나타낸 EPG 화면에 있어서, 채널 CH1~CH8의 시간대가 6:00~12:00인 모든 프로그램에 관한 프로그램 정보의 표시 영역의 좌측 상단 코너·좌측 하단 코너·우측 상단 코너·우측 하단 코너의 좌표가 결정될 수 있다. 가레이아웃 처리에 있어서는, 프로그램 정보의 표시 영역의 가로 폭은 동일하고, i번 째의 채널의 표시 영역의 좌단의 x좌표 x1(i)는, (i-1)번째의 채널의 표시 영역의 우단의 x좌표 x2(i-1)와 일치한다.
다음에, 도 5에 나타낸 재레이아웃 처리(스텝 S4)에 대해, 상세히 설명한다. 재레이아웃 처리에 있어서는, 프로그램에 관한 프로그램 정보의 표시 영역의 확장 처리 후의 4 코너의 좌표가 결정된다. 여기서, 프로그램 N에 관한 프로그램 정보의 표시 영역의 확장 처리 후의 좌측 상단 코너의 좌표를 (xe1(N), ye1(N))으로 하고, 좌측 하단 코너의 좌표를 (xe1(N), ye2(N))으로 하며, 우측 상단 코너의 좌표를 (xe2(N), ye1(N))으로 하고, 우측 하단 코너의 좌표를 (xe2(N), ye2(N))로 한다(도 9 참조).
도 9 및 도 10의 플로차트를 이용해, 재레이아웃 처리에 대해 설명한다. 덧붙여 이 재레이아웃 처리를, 도 1에 나타낸 제어부(19)로 제어한다.
우선, EPG 화면상의 가장 좌측의 열에 표시되는 채널에 주목한다(스텝 S21). 그리고, 주목한 채널에 있어서, 최상단에 위치하는 프로그램에 주목한다(스텝 S22). 즉, 도 9에 나타낸 좌표(xm1, ym1)에 프로그램 정보의 표시 영역의 좌측 상단 코너가 위치되는 프로그램에 주목한다.
다음에, 주목한 프로그램이 추천 프로그램인지 어떤지를 판별한다(스텝 S23). 여기서, 추천 프로그램이란, 프로그램 타이틀이나 프로그램 설명 중에 포함된 유저가 등록한 장르의 프로그램이나 유저가 등록한 키워드를 포함한 프로그램이다. 다만, 과거에 시청한 프로그램이나 녹화한 프로그램과 유사한 속성을 갖는 프로그램을 추천 프로그램이라고 해도 되고, 또는 표시부 상에 표시된 EPG 화면에 지 정된 장르나 키워드 등의 검색조건에 맞는 프로그램을 추천 프로그램이라고 해도 된다.
그리고, 스텝 S23에서 주목한 프로그램이 추천 프로그램이라고 판정되면, 처리는 스텝 S24로 진행된다. 스텝 S24에서, 주목한 프로그램에 관한 프로그램 정보의 표시 영역이 확장된다. 구체적으로는, 가레이아웃 처리에서 결정한 4개의 코너의 각각의 좌표를 소정량씩 변경한다. 즉, 추천 프로그램 N의 표시 영역에 대해서, 표시 영역의 좌단의 x 좌표 x1(N)를 n문자와 같은 양만큼 좌측으로 시프트시키고, 우단의 x좌표 x2(N)를 n문자와 같은 양만큼 우측으로 시프트시키며, 상단의 y좌표 y1(N)를 n문자와 같은 양만큼 위쪽으로 시프트시키고, 하단의 y좌표 y2(N)를 n문자와 같은 양만큼 아래쪽으로 시프트시킨다. 각 좌표값의 시프트량은, n 값에 폰트 사이즈(font size)를 곱해서 얻은 값이 된다. 폰트 사이즈(2바이트)가 f×f 픽셀인 경우, 확장 후의 추천 프로그램 N에 관한 프로그램 정보의 표시 영역의 좌단의 x좌표는 xe1(N)=x1(N)-f×n이 되고, 그것의 우단의 x좌표는 xe2(N)=x2(N)+f×n가 되며, 그것의 상단의 y좌표는 ye1(N)=y1(N)-f×n이 되고, 그것의 하단의 y좌표는 ye2(N)=y2(N)+f×n가 된다. 덧붙여, 이 n 값은, 리모콘(2)의 플러스 버튼(54) 또는 마이너스 버튼(55)의 누름에 의해 증감 가능하다(도 5의 스텝 S6, S7).
한편, 스텝 S23에서, 주목한 프로그램이 추천 프로그램이 아니라고 판정되면, 처리는 스텝 S27로 진행된다. 이 경우, 그 프로그램에 관한 프로그램 정보의 표시 영역의 4 코너의 좌표는, 가레이아웃 처리에서 결정된 좌표로서 남아 있다. 즉, 추천 프로그램 N의 표시 영역의 좌단의 x 좌표는 x1(N), 즉 xe1(N)=x1(N)이 되 고, 그것의 우단의 x좌표는 x2(N), 즉 xe2(N)=x2(N)이 되며, 그것의 상단의 y좌표는 y1(N), 즉 ye1(N)=y1(N)이 되고, 그것의 하단의 y좌표는 y2(N), 즉 ye2(N)=y2(N)가 된다.
다음에, 확장 처리의 결과로서, 추천 프로그램에 관한 프로그램 정보의 확장된 표시 영역이, 다른 프로그램에 관한 프로그램 정보의 표시 영역과 겹치는지, EPG 화면의 표시 영역 밖으로 확장되는지를 판정한다(스텝 S25). 스텝 S25에서, 상기 표시 영역이 다른 프로그램의 표시 영역과 겹치거나 EPG 화면 밖으로 확장되었다고 판정된 경우에는, 처리가 스텝 S26으로 진행된다. 스텝 S26에서는, 다른 추천 프로그램에 관한 프로그램 정보의 표시 영역이나 EPG 화면의 표시 범위와의 경계선을 넘은 확장 부분을 삭제한다. 즉, 각 추천 프로그램 N에 관한 프로그램 정보의 표시영역의 x좌표 xe1(N), xe2(N) 및 y좌표 ye1(N), ye2(N)를 변경한다. 이 처리의 상세한 것에 대하여는 후술한다.
다음에, 주목하고 있는 프로그램이 EPG 화면의 최하단에 위치된 프로그램인지 아닌지를 판별한다(스텝 S27). 구체적으로는, 스텝 S27에서, 주목하고 있는 프로그램에 관한 프로그램 정보의 표시 영역의 하단의 y좌표가 ym2인지 아닌지를 판별한다(도 9 참조). 주목하고 있는 프로그램이 EPG 화면의 최하단에 위치된 프로그램이 아니라고 판별된 경우에는, 처리가 스텝 S28로 진행된다. 스텝 S28에서, 1개의 하단에 위치된 프로그램에 주목하고, 처리는 스텝 S23로 돌아온다. 이와 같이 함으로써, 최상단의 프로그램으로부터 최하단의 프로그램까지, 순차적으로 스텝 S23~S28의 처리를 반복한다.
주목하고 있는 프로그램이 EPG 화면의 최하단에 위치된 프로그램이라고 판정되면, 처리는 스텝 S29로 진행되어, 주목하고 있는 채널이 EPG 화면의 가장 우측의 열에 위치된 채널인지 아닌지를 판별한다. 구체적으로는, 주목하고 있는 프로그램에 관한 프로그램 정보의 표시 영역의 우단의 x좌표가 xm2인지 아닌지를 판별한다(도 9 참조). 주목하고 있는 채널이 가장 우측의 열에 위치된 채널이 아니라고 판별되었을 경우에는, 처리는 스텝 S30으로 진행된다. 스텝 S30에서, 1개 우측 열에 위치된 채널에 주목하고, 처리는 스텝 S22로 돌아온다. 이와 같이 함으로써, EPG 화면의 가장 좌측 열의 채널로부터 가장 우측 열의 채널까지, 순차적으로 스텝 S22~S30의 처리를 반복한다. 스텝 S29에서, 주목하고 있는 채널이 가장 우측 열에 위치된 채널이라고 판정되면, 재레이아웃 처리를 완료한다.
다음에, 주목하고 있는 프로그램에 관한 프로그램 정보의 표시 영역이 다른 추천 프로그램에 관한 프로그램 정보의 표시 영역과 겹치는지 여부를 판정하는 상술한 스텝 S25의 처리에 대해 상세히 설명한다.
도 11은, 영역 겹침 판정 처리를 나타내는 플로차트이다. 우선, 스텝 S31에서, 확장된 표시영역을 갖는 추천 프로그램을 추천 프로그램 A로 하고, 다른 추천 프로그램을 추천 프로그램 B로 한다.
다음에, 추천 프로그램 B의 표시 영역이 확장되었는지 아닌지를 판별한다(스텝 S32). 추천 프로그램 B의 표시 영역이 확장되었다고 판별되었을 경우에는, 처리가 스텝 S33으로 진행되어 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 좌단의 x좌표 xe1(A)가 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 좌단 의 x좌표 xe1(B)와 우단의 x좌표 xe2(B)와의 사이에 위치되어 있는지 아닌지를 판별한다. 또한, 스텝 S33에서, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 상단의 y좌표 ye1(A)가 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 상단의 y좌표 ye1(B)와 하단의 y좌표 ye2(B)와의 사이에 위치되어 있는지 아닌지를 판정한다. 스텝 S33에서, x좌표 xe1(A)와 y좌표 ye1(A)가 상술한 조건식, 즉 xe1(B)< xe1(A)< xe2(B)와, ye1(B)< ye1(A)< ye2(B)를 만족한다고 판정되면, 처리가 스텝 S38로 진행되어, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역이 추천 프로그램 B에 관한 프로그램 정보의 표시 영역과 겹친다고 판정한다. 한편, 스텝 S33에서, x좌표 xe1(A) 혹은 y좌표 ye1(A)가 상술한 조건식, 즉, xe1(B)≥ xe1(A) 혹은, xe1(A) ≥ xe2(B) 혹은 ye1(B)≥ ye1(A) 혹은 ye1(A)≥ ye2(B)을 만족하지 않는다고 판정되면, 처리는 스텝 S34로 진행된다. 스텝 S34에서, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 좌단의 x좌표 xe1(A)가 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 좌단의 x좌표 xe1(B)와 우단의 x좌표 xe2(B)과의 사이에 있는지 아닌지를 판별한다. 또한, 스텝 S34에서, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 하단의 y좌표 ye2(A)가 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 상단의 y좌표 ye1(B)와 하단의 y좌표 ye2(B)와의 사이에 있는지 아닌지를 판정한다. 스텝 S34에서, x좌표 xe1(A) 및 y좌표 ye2(A)가 상기의 조건식, 즉 xe1(B) < xe1(A) < xe2(B) 및 ye1(B) < ye2(A) < ye2(B)를 충족한다고 판정되면, 처리는 스텝 S38로 진행되어, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역이 추천 프로그램 B에 관한 프로그램 정보의 표시 영역과 겹친다고 판정한다. 한편, 스텝 S34에서, x좌표 xe1(A) 혹은 y좌표 ye2(A)가 상기의 조건식, 즉 xe1(B)≥xe1(A) 혹은 xe1(A) ≥ xe2(B) 혹은 ye1(B) ≥ ye2(A) 혹은 ye2(A) ≥ ye2(B)을 충족하지 않는다고 판정되면, 처리는 스텝 S35로 진행된다.
스텝 S35에서는, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 우단의 x좌표 xe2(A)가 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 좌단의 x좌표 xe1(B)와 우단의 x좌표 xe2(B)와의 사이에 있는지 아닌지를 판별한다. 또한, 스텝 S35에서는, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 상단의 y좌표 ye1(A)가 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 상단의 y좌표 ye1(B)와 하단의 y좌표 ye2(B)와의 사이에 있는지 아닌지를 판별한다. 스텝 S35에서, x좌표 xe2(A)와 y좌표 ye1(A)가 상기의 조건식, 즉 xe1(B) < xe2(A) < xe2(B) 및 ye1(B) < ye1(A) < ye2(B)를 만족한다고 판정된 경우, 처리는 스텝 S38로 진행되어, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역이 추천 프로그램 B에 관한 프로그램 정보의 표시 영역과 겹친다고 판정한다. 한편, 스텝 S35에서, x좌표 xe2(A) 혹은 y좌표 ye1(A)가 상기의 조건식, 즉 xe1(B) ≥ xe2(A) 혹은 xe2(A) ≥ xe2(B) 혹은 ye1(B) ≥ ye1(A) 혹은 ye1(A) ≥ ye2(B)을 만족하지 않는다고 판정된 경우에는, 처리는 스텝 S36로 진행된다. 스텝 S36에서는, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 우단의 x좌표 xe2(A)가 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 좌단의 x좌표 xe1(B)와 우단의 x좌표 xe2(B)와의 사이에 있는지 아닌지를 판별한다. 또한, 스텝 S36에서는, 추천 프로그램 A에 관한 프로그 램 정보의 표시 영역의 상단의 y좌표 ye2(A)가 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 상단의 y좌표 ye1(B)와 하단의 y좌표 ye2(B)와의 사이에 있는지 아닌지를 판별한다. 스텝 S36에서, x좌표 xe2(A)와 y좌표 ye2(A)가 상기의 조건식, 즉 xe1(B) < xe2(A) < xe2(B) 및 ye1(B) < ye2(A) < ye2(B)를 만족한다고 판정된 경우, 처리는 스텝 S38로 진행되어, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역이 추천 프로그램 B에 관한 프로그램 정보의 표시 영역과 겹친다고 판정한다. 한편, 스텝 S36에서, x좌표 xe2(A) 혹은 y좌표 ye2(A)가 상기의 조건식, 즉 xe1(B) ≥ xe2(A) 혹은 xe2(A) ≥ xe2(B) 혹은 ye1(B) ≥ ye2(A) 혹은 ye2(A) ≥ ye2(B)을 만족하지 않는다고 판정된 경우에는, 처리는 스텝 S37로 진행된다.
스텝 S32에서, 추천 프로그램 B에 관한 프로그램 정보의 표시 영역이 확장되지 않았다고 판별된 경우에는, 처리가 스텝 S39로 진행되어, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 좌단의 x좌표 xe1(A)가 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 좌단의 x좌표 x1(B)와 우단의 x좌표 x2(B)와의 사이에 있는지 아닌지를 판별한다. 또한, 스텝 S39에서는, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 상단의 y좌표 ye1(A)가 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 상단의 y좌표 y1(B)와 하단의 y좌표 y2(B)와의 사이에 있는지 아닌지를 판별한다. 스텝 S39에서, x좌표 xe1(A)와 y좌표 ye1(A)가 상기의 조건식, 즉 x1(B) < xe1(A) < x2(B) 및 y1(B) < ye1(A) < y2(B)를 만족한다고 판정된 경우에는, 처리는 스텝 S38로 진행되어, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역은 추천 프로그램 B에 관한 프로그램 정보의 표시 영역과 겹친다고 판정 한다. 한편, 스텝 S39에서, x좌표 xe1(A) 혹은 y좌표 ye1(A)가 상기의 조건식, 즉 x1(B) ≥ xe1(A) 혹은 xe1(A) ≥ x2(B) 혹은 y1(B) ≥ ye1(A) 혹은 ye1(A) ≥ y2(B)을 만족하지 않는다고 판정된 경우에는, 처리는 스텝 S40으로 진행된다. 스텝 S40에서는, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 좌단의 x좌표 xe1(A)가 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 좌단의 x좌표 x1(B)와 우단의 x좌표 x2(B)와의 사이에 있는지 아닌지를 판별한다. 또한, 스텝 S40에서는, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 하단의 y좌표 ye2(A)가 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 상단의 y좌표 y1(B)와 하단의 y좌표 y2(B)와의 사이에 있는지 아닌지를 판별한다. 스텝 S40에서, x좌표 xe1(A)와 y좌표 ye2(A)가 상기의 조건식, 즉 x1(B) < xe1(A) < x2(B) 및 y1(B) < ye2(A) < y2(B)를 만족한다고 판정된 경우, 처리는 스텝 S38로 진행되어, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역이 추천 프로그램 B에 관한 프로그램 정보의 표시 영역과 겹친다고 판정한다. 한편, 스텝 S40에서, x좌표 xe1(A) 혹은 y좌표 ye2(A)가 상기의 조건식, 즉 x1(B) ≥ xe1(A) 혹은 xe1(A) ≥ x2(B) 혹은 y1(B) ≥ ye2(A) 혹은 ye2(A) ≥ y2(B)을 만족하지 않는다고 판정된 경우에는, 처리는 스텝 S41로 진행된다.
스텝 S41에서는, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 우단의 x좌표 xe2(A)가 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 좌단의 x좌표 x1(B)와 우단의 x좌표 x2(B)와의 사이에 있는지 아닌지를 판별한다. 또한, 스텝 S41에서는, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 상단의 y좌표 ye1(A)가 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 상단의 y좌표 y1(B)와 하단의 y좌표 y2(B)와의 사이에 있는지 아닌지를 판별한다. 스텝 S41에서, x좌표 xe2(A)와 y좌표 ye1(A)가 상기의 조건식, 즉 x1(B) < xe2(A) < x2(B) 및 y1(B) < ye1(A) < y2(B)를 만족한다고 판정된 경우, 처리는 스텝 S38로 진행되어, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역이 추천 프로그램 B에 관한 프로그램 정보의 표시 영역과 겹친다고 판정한다. 한편, 스텝 S41에서, x좌표 xe2(A) 혹은 y좌표 ye1(A)가 상기의 조건식, 즉 x1(B) ≥ xe2(A) 혹은 xe2(A) ≥ x2(B) 혹은 y1(B) ≥ ye1(A) 혹은 ye1(A) ≥ y2(B)을 만족하지 않는다고 판정된 경우에는, 처리는 스텝 S42로 진행된다. 스텝 S42에서는, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 우단의 x좌표 xe2(A)가 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 좌단의 x좌표 x1(B)와 우단의 x좌표 x2(B)와의 사이에 있는지 아닌지를 판별한다. 또한, 스텝 S42에서는, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 상단의 y좌표 ye2(A)가 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 상단의 y좌표 y1(B)와 하단의 y좌표 y2(B)와의 사이에 있는지 아닌지를 판별한다. 스텝 S42에서, x좌표 xe2(A)와 y좌표 ye2(A)가 상기의 조건식, 즉 x1(B) < xe2(A) < x2(B) 및 y1(B) < ye2(A) < y2(B)를 만족한다고 판정된 경우, 처리는 스텝 S38로 진행되어, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역이 추천 프로그램 B에 관한 프로그램 정보의 표시 영역과 겹친다고 판정한다. 한편, 스텝 S42에서, x좌표 xe2(A) 혹은 y좌표 ye2(A)가 상기의 조건식, 즉 x1(B) ≥ xe2(A) 혹은 xe2(A) ≥ x2(B) 혹은 y1(B) ≥ ye2(A) 혹은 ye2(A) ≥ y2(B)을 만족하지 않는다고 판정된 경우에는, 처리는 스텝 S37로 진행된다.
스텝 S37에서는, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역이 추천 프로그램 B에 관한 프로그램 정보의 표시 영역과 겹치지 않는다고 판정하고, 처리는 스텝 S43로 진행된다. 스텝 S38에서, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역이 추천 프로그램 B에 관한 프로그램 정보의 표시 영역과 겹친다고 판정한 후에도, 처리는 스텝 S43으로 진행된다. 스텝 S43에서는, 추천 프로그램 A와의 영역 겹침 판정 처리되지 않은 추천 프로그램이 있는지 아닌지를 판별한다. 스텝 S43에서, 그러한 프로그램이 존재하는 경우, 처리는 스텝 S44로 진행되어, 그 추천 프로그램을 추천 프로그램 B로 설정한다. 그 다음, 처리는 스텝 S32로 돌아와서 스텝 S32~스텝 S43를 반복한다. 스텝 S43에서, 모든 추천 프로그램이 영역 겹침 판정 처리되었다고 판별되면, 영역 겹침 판정 처리를 완료한다.
다음에, 도 10의 스텝 S26의 경계선을 넘은 확장 부분을 삭제하는 처리에 대해 도 12의 플로차트를 참조하여 상세히 설명한다. 도 12에서, 팝업 창으로서 확장된 추천 프로그램을 추천 프로그램 A로 설정하고, 도 10의 스텝 S25에서 추천 프로그램 A와 겹친다고 판정된 추천 프로그램을 추천 프로그램 B로 설정한다. 여기서, 경계선이란, 주목하고 있는 추천 프로그램 이외의 추천 프로그램에 관한 프로그램 정보의 표시 영역의 외주선 혹은 EPG의 표시 범위의 외주선을 가리킨다.
우선, 스텝 S51에서, 추천 프로그램 B가 확장되었는지 아닌지를 판별한다. 추천 프로그램 B가 확장되었다고 판별되었을 경우에는, 처리가 스텝 S52로 진행되어, ye1(A)<ye2(B)<y1(A)가 성립되는지 아닌지를 판별한다. 즉, 스텝 S52에서, 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 하단의 y좌표 ye2(B)가, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 확장 처리 전에 있어서의 상단의 y좌표 y1(A)와 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 확장 처리 후의 상단의 y좌표 ye1(A)와의 사이에 있는지 아닌지를 판별한다. 스텝 S52에서, ye1(A)<ye2(B)<y1(A)가 성립된다고 판정된 경우, 처리는 스텝 S53로 진행되어, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 상단의 y좌표 ye1(A)를 y좌표 ye2(B)로 변경한다. 스텝 S52에서, ye1(A)<ye2(B)<y1(A)가 성립되지 않는다고 판정된 경우, 처리는 스텝 S54로 진행된다.
스텝 S54에서는, y2(A)<ye1(B)<ye2(A)가 성립되는지 아닌지를 판별한다. 즉, 스텝 S54에서는, 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 상단의 y좌표 ye1(B)가, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 확장 처리 전에 있어서의 하단의 x좌표 y2(A)와 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 확장 처리 후의 하단의 y좌표 ye2(A)와의 사이에 있는지 아닌지를 판별한다. 스텝 S54에서, y2(A)<ye1(B)<ye2(A)가 성립된다고 판정된 경우, 처리는 스텝 S55로 진행되어, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 하단의 y좌표 ye2(A)를 y좌표 ye1(B)로 변경한다. 스텝 S54에서, y2(A)<ye1(B)<ye2(A)가 성립되지 않는다고 판정된 경우에, 처리는 스텝 S56으로 진행된다.
스텝 S56에서는, xe1(A)<xe2(B)<x1(A)가 성립되는지 아닌지를 판별한다. 즉, 스텝 S56에서는, 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 우단의 x좌표 xe2(B)가, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 확장 처리 전에 있어서의 좌단의 x좌표 x1(A)와 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 확장 처리 후의 좌단의 x좌표 xe1(A)와의 사이에 있는지 아닌지를 판별한다. 스텝 S56에서, xe1(A)<xe2(B)<x1(A)가 성립된다고 판정된 경우, 처리는 스텝 S57로 진행되어, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 좌단의 x좌표 xe1(A)를 x좌표 xe2(B)로 변경한다. 스텝 SS56에서, xe1(A)<xe2(B)<x1(A)가 성립되지 않는다고 판정된 경우에, 처리는 스텝 S58로 진행된다.
스텝 S58에서는, x2(A)<xe1(B)<xe2(A)가 성립되는지 아닌지를 판별한다. 즉, 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 좌단의 x좌표 xe1(B)가, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 확장 처리 전에 있어서의 우단의 x좌표 x2(A)와 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 확장 처리 후의 우단의 x좌표 xe2(A)와의 사이에 있는지 아닌지를 판별한다. 스텝 S58에서, x2(A)<xe1(B)<xe2(A)가 성립된다고 판정된 경우, 처리는 스텝 S59로 진행되어, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 우단의 x좌표 xe2(A)를 x좌표 xe1(B)로 변경한다. 스텝 S58에서 x2(A)<xe1(B)<xe2(A)가 성립되지 않는다고 판정된 경우에는, 좌표를 변경하지 않고 처리를 완료한다.
스텝 S51에서, 추천 프로그램 B가 확장되지 않았다고 판정된 경우, 처리는 스텝 S60으로 진행되어, ye1(A)<y2(B)<y1(A)가 성립되는지 아닌지를 판별한다. 즉, 스텝 S60에서는, 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 하단의 y좌표 y2(B)가, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 확장 처리 전에 있어서의 상단의 y좌표 y1(A)와 추천 프로그램 A에 관한 프로그램 정보의 표 시 영역의 확장 처리 후의 상단의 y좌표 ye1(A)와의 사이에 있는지 아닌지를 판별한다. 스텝 S60에서, ye1(A)<y2(B)<y1(A)가 성립된다고 판정된 경우, 처리는 스텝 S61로 진행되어, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 상단의 y좌표 ye1(A)를 y좌표 y2(B)로 변경한다. 스텝 S60에서, ye1(A)<y2(B)<y1(A)가 성립되지 않는다고 판정된 경우, 처리는 스텝 S62로 진행된다.
또, 스텝 S62에서, y2(A)<y1(B)<ye2(A)가 성립되는지 아닌지를 판별한다. 즉, 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 확장 처리 전에 있어서의 상단의 y좌표 y1(B)가, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 확장 처리 전에 있어서의 하단의 y좌표 y2(A)와 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 확장 처리 후의 하단의 y좌표 ye2(A)와의 사이에 있는지 아닌지를 판별한다. 스텝 S62에서, y2(A)<y1(B)<ye2(A)가 성립된다고 판정된 경우, 처리는 스텝 S63으로 진행되어, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 하단의 y좌표 ye2(A)를 y좌표 y1(B)로 변경한다. 스텝 S62에서, y2(A)<y1(B)<ye2(A)가 성립되지 않는다고 판정된 경우, 처리는 스텝 S64로 진행된다.
스텝 S64에서는, xe1(A)<x2(B)<x1(A)가 성립되는지 아닌지를 판별한다. 즉, 스텝 S64에서, 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 확장 처리 전에 있어서의 우단의 x좌표 x2(B)가, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 확장 처리 전에 있어서의 좌단의 x좌표 x1(A)와 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 확장 처리 후의 좌단의 x좌표 xe1(A)와의 사이에 있는지 아닌지를 판별한다. 스텝 S64에서, xe1(A)<x2(B)<x1(A)가 성립된다고 판 정된 경우, 처리는 스텝 S65으로 진행되어, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 좌단의 x좌표 xe1(A)를 x좌표 x2(B)로 변경한다. 스텝 S64에서, xe1(A)<x2(B)<x1(A)가 성립되지 않는다고 판정된 경우에는, 처리는 스텝 S66으로 진행된다.
스텝 S66에서는, x2(A)<x1(B)<xe2(A)가 성립되는지 아닌지를 판별한다. 즉, 추천 프로그램 B에 관한 프로그램 정보의 표시 영역의 확장 처리 전에 있어서의 좌단의 x좌표 x1(B)가, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 확장 처리 전에 있어서의 우단의 x좌표 x2(A)와 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 확장 처리 후의 우단의 x좌표 xe2(A)와의 사이에 있는지 아닌지를 판별한다. 스텝 S66에서, x2(A)<x1(B)<xe2(A)가 성립된다고 판정된 경우, 처리는 스텝 S67로 진행되어, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 우단의 x좌표 xe2(A)를 x1(B)로 변경한다. 스텝 S66에서, x2(A)<x1(B)<xe2(A)가 성립되지 않는다고 판정된 경우에는, 좌표를 변경하지 않고 처리를 완료한다.
여기에서는 이 처리의 플로차트는 생략하지만, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역이 도 10의 스텝 S25에 있어서 EPG 화면 밖으로 확장되는지 아닌지의 판정 처리는, 아래와 같다.
우선, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 좌단의 x좌표 xe1(A)가 EPG 화면의 표시 범위의 좌단의 도 9에 나타낸 x좌표 xm1보다 한층 더 우측에 있는지 아닌지를 판별한다. 다음에, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 우단의 x좌표 xe2(A)가 EPG 화면의 표시 범위의 우단의 도 9에 나타낸 x좌표 xm2보다 한층 더 좌측에 있는지 아닌지를 판별한다. 계속해서, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 상단의 y좌표 ye1(A)가 EPG 화면의 표시 범위의 상단의 도 9에 나타낸 y좌표 ym1보다 한층더 아래쪽에 있는지 아닌지를 판별한다. 계속해서, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 하단의 y좌표 ye2(A)가 EPG 화면의 표시 범위의 하단의 도 9에 나타낸 y좌표 ym2보다 한층 더 위쪽에 있는지 아닌지를 판별한다.
상술한 4개의 조건 모두를 만족하고 있는 경우, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역은 EPG 화면의 표시 범위 밖으로 확장되지 않았다고 판정한다. 한편, 상술한 4개의 조건의 어느 쪽이든 1개라도 만족하지 않는 경우, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역은 EPG 화면의 표시 범위 밖으로 확장된다고 판정한다.
또, 추천 프로그램 A에 관한 프로그램 정보의 표시 영역이 EPG 화면의 표시 범위 밖으로 확장되는 경우에, 경계선을 넘은 확장 부분을 삭제하는 처리(도 10의 스텝 S26)는, 아래와 같이 행해진다. 여기서, 경계선이란, EPG 화면의 표시 범위의 외주선, 즉 4개의 좌표점 (xm1, ym1), (xm2, ym1), (xm2, ym2), (xm1, ym2)를 연결하는 선을 가리킨다.
추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 상단의 y좌표 ye1(A)가 EPG 화면의 표시 범위의 상단의 도 9에 나타낸 y좌표 ym1보다 한층 더 위쪽에 있는 경우, y좌표 ye1(A)를 y좌표 ym1로 변경한다. 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 하단의 y좌표 ye2(A)가 EPG 화면의 표시 범위의 하단의 도 9에 나타낸 y좌표 ym2보다 한층 더 아래쪽에 있는 경우, y좌표 ye2(A)를 y좌표 ym2로 변경한다. 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 좌단의 x좌표 xe1(A)가 EPG 화면의 표시 범위의 좌단의 도 9에 나타낸 x좌표 xm1보다 한층 더 좌측에 있는 경우, x좌표 xe1(A)를 x좌표 xm1로 변경한다. 추천 프로그램 A에 관한 프로그램 정보의 표시 영역의 우단의 x좌표 xe2(A)가 EPG 화면의 표시 범위의 우단에 있는 도 9에 나타낸 x좌표 xm2보다 한층 더 우측에 있는 경우, x좌표 xe2(A)를 x좌표 xm2로 변경한다.
다음에, 추천 프로그램에 관한 프로그램 정보의 표시 영역을 확장한 후의 EPG 화면(도 7)과 추천 프로그램에 관한 프로그램 정보의 표시 영역을 확장하기 전의 EPG 화면(도 8)을 비교해서, 본 발명의 제1 실시 예의 효과에 대해 설명한다.
도 8을 참조하면, 추천 프로그램 23의 표시 영역은 가로 폭 7문자(2바이트 문자), 높이 4행을 갖는다. 반면에, 도 7을 참조하면, 추천 프로그램 23의 표시 영역은 상하 좌우로 각 2문자씩 표시 영역을 확장하는 것에 의해, 가로 폭 11문자(2바이트 문자), 높이 8행을 갖는다. 이와 같이, 추천 프로그램에 관한 프로그램 정보의 표시 영역을 팝업 창으로서 확장함으로써, 추천 프로그램에 관한 보다 상세한 정보를 표시할 수가 있다.
또, 도 7에 나타낸 EPG 화면에서는, 추천 프로그램에 관한 프로그램 정보의 표시 영역이 서로 겹치지 않도록 배열되어 있다. 도 10을 이용해 설명한 것처럼, 추천 프로그램 23, 44, 54, 56, 64, 66, 73의 순번으로 재레이아웃 처리가 행해진다. 추천 프로그램 44의 재레이아웃 처리에 있어서는, 우측으로 재레이아웃 처리 전의 추천 프로그램 54가 존재하기 때문에 우측 방향으로의 확장이 제한된다. 추천 프로그램 54의 재레이아웃 처리에 있어서는, 좌측으로 재레이아웃 처리 후의 추천 프로그램 44가 존재하고, 우측으로 재레이아웃 처리 전의 추천 프로그램 64가 존재하기 때문에, 좌측 방향 및 우측 방향으로의 확장이 제한된다. 추천 프로그램 56의 재레이아웃 처리에 있어서는, 위쪽으로 재레이아웃 처리 전의 추천 프로그램 66이 존재하고, 아래쪽으로 EPG 화면의 표시 범위의 경계가 존재하기 때문에, 위쪽 방향 및 아래쪽 방향으로의 확장이 제한된다.
추천 프로그램 64의 재레이아웃 처리에 있어서는, 좌측으로 재레이아웃 처리 후의 추천 프로그램 54가 존재하고, 아래쪽으로 재레이아웃 처리 전의 추천 프로그램 66이 존재하기 때문에, 좌측 방향 및 아래쪽 방향으로의 확장이 제한된다. 추천 프로그램 66의 재레이아웃 처리에 있어서는, 좌측으로 재레이아웃 처리 후의 추천 프로그램 54가 존재하고, 우측으로 재레이아웃 처리 전의 추천 프로그램 73이 존재하기 때문에, 좌측 방향 및 우측 방향으로의 확장이 제한된다. 추천 프로그램 66에 대해서는, 위쪽으로 재레이아웃 처리 후의 추천 프로그램 64가 존재하고, 아래쪽으로 재레이아웃 처리 후의 추천 프로그램 56이 존재하기 때문에, 위쪽 방향 및 아래쪽 방향으로의 확장도 제한된다. 추천 프로그램 73의 재레이아웃 처리에 있어서는, 좌측으로 재레이아웃 처리 후의 추천 프로그램 66이 존재하고, 위쪽으로 재레이아웃 처리 후의 추천 프로그램 64가 존재하기 때문에, 좌측 방향 및 위쪽 방향으로의 확장이 제한된다. 이와 같이, 서로 근접하는 추천 프로그램의 표시 영역이 서로 겹치지 않도록, 표시 영역의 형상을 변화시킨다.
따라서, 제1 실시 예에서는, 각 추천 프로그램에 관한 프로그램 정보의 표시 영역이 다른 추천 프로그램에 관한 프로그램 정보의 표시 영역과 겹쳐지지 않도록 표시될 수가 있다. 확장될 프로그램이 많이 밀집해 있는 경우, 프로그램 정보의 확장을 제한함으로써, 각 프로그램 정보의 표시 영역이 서로 겹치지 않게 된다. 또, 추천 프로그램의 표시 영역을 팝업 창으로서 확장할 때에, 근접하는 추천 프로그램의 위치에 따라, 확장하는 표시 영역의 형상을 변화시킨다. 이와 같이, 확장된 표시 영역이 원래의 표시 위치로부터 상당히 어긋나지 않는다.
이상과 같이, 본 발명의 제1 실시 예에 의하면, 서로 근접해 있는 복수의 추천 프로그램에 관한 프로그램 정보의 표시 영역을 팝업부로서 표시할 때, 유저가 소망하는 프로그램 정보를 인식하기 쉽게 표시하는 것이 가능해진다.
덧붙여 제1 실시 예에서는, 프로그램 정보의 표시 영역의 좌단, 우단, 상단, 하단을 각각 소정 문자 수만큼 확장했다. 그렇지만, 가레이아웃 처리로 결정한 표시 영역의 가로 폭 및 높이를 소정 배율(예를 들면 1.5배) 확장해도 괜찮다.
단형식 이벤트 기술자나 확장 형식 이벤트 기술자의 문자 수가 많은 프로그램은, 프로그램 정보의 표시 영역에 표시해야 할 문자 수가 많다. 이 때문에, 그러한 프로그램의 표시 영역의 확장의 정도를 증가시켜도 괜찮다.
제1 실시 예에서는, 횡축을 채널, 종축을 시간대로 했지만, 그 역이어도 괜찮다. 혹은, 횡축과 종축을 다른 속성, 예를 들면 날짜로 해도 괜찮다.
제1 실시 예에서는, 방송파로부터 추출한 EPG 데이터에 근거해, EPG 화면을 생성한다. 그렇지만, 인터넷을 통해서 취득한 EPG 데이터에 근거해, EPG 화면을 생 성하는 경우도 있다. 또, 퍼스널 컴퓨터상, 혹은 WWW(World Wide Web) 서버상의 프로그램에 의해, EPG 화면을 생성하는 경우도 있다.
(제2 실시 예)
본 발명의 제2 실시 예에 있어서는, 상술한 제1 실시 예와 재레이아웃 처리가 다르다. 제2 실시 예에 있어서의 재레이아웃 처리 이외의 국면은, 제1 실시 예와 같다. 도 13은, 제2 실시 예에 이용된 재레이아웃 처리를 나타내는 플로차트다.
스텝 S71에서, EPG 화면에 표시되는 복수의 프로그램 중에서 추천 프로그램을 특정한다. 구체적으로는, 각 프로그램이 소정 조건과의 일치 정도에 근거해 스코어를 결정해서 프로그램에 할당하고, 스코어가 소정의 값 이상인 프로그램을 추천 프로그램으로서 특정한다. 예를 들면, 유저의 기호와 일치하는 장르나 키워드에 웨이트(weights)를 부여하고, 웨이트가 부여된 장르나 키워드를 미리 등록해 둔다. 그리고, 보다 정확히 등록된 장르나 키워드와 일치하는 프로그램에 스코어를 많이 가점한다. 또, 과거에 더 많이 자주 시청하거나 녹화했던 프로그램에도 스코어를 많이 가점해도 괜찮다. 프로그램 검색 조건(장르나 키워드)이 지정되었을 경우, 각 프로그램이 그 검색 조건과 일치하는 정도를, 프로그램에 가점된 스코어에 반영시켜도 된다. 예를 들면, 복수의 검색 조건이 지정되었을 경우, 더 많은 검색 조건과 일치하는 프로그램에 스코어를 많이 가점한다. 스코어는 우선도를 나타내고, 스코어가 높은 추천 프로그램을 우선해 팝업 창으로서 표시한다.
다음에, 스텝 S72에서는, 스코어(우선도)가 가장 높은 추천 프로그램에 주목한다. 그리고, 스텝 S73에서는, 주목한 추천 프로그램에 관한 프로그램 정보의 표 시 영역을 팝업 창으로서 확장한다. 구체적으로, 가레이아웃 처리로 결정한 좌단, 우단, 상단, 하단의 좌표값 x1, x2, y1, y2을 각각 소정량씩 변경한다. 즉, 좌단 x1를 n문자와 같은 양만큼 좌측으로 시프트키고, 우단 x2를 n문자와 같은 양만큼 우측으로 시프트시키며, 상단 y1를 n문자와 같은 양만큼 위쪽으로 시프트시키고, 하단 y2를 n문자와 같은 양만큼 아래쪽으로 시프트시킨다.
다음에, 스텝 S74에서, 확장 처리의 결과로서, 주목한 추천 프로그램에 관한 프로그램 정보의 확장된 표시 영역이, 다른 추천 프로그램에 관한 프로그램 정보의 표시 영역과 겹치는지 아닌지, 혹은 EPG 화면의 표시 범위 밖으로 확장되는지 아닌지를 판별한다. 스텝 S74에서, 확장된 표시 영역이 다른 추천 프로그램에 관한 프로그램 정보의 표시 영역과 겹친다고 판정된 경우, 또는 EPG 화면의 표시 범위 밖으로 확장된다고 판정된 경우, 처리는 스텝 S75로 진행된다. 스텝 S75에서는, 그 경계선을 넘은 확장 부분을 삭제하고, 확장 부분을 삭제하는 방향 이외의 방향으로 삭제된 면적분만큼 표시 영역을 확장한다. 구체적으로, 확장된 부분을 제거하는 방향과 반대 방향으로 표시 영역을 확장한다. 표시 영역이 반대방향으로 다른 경계선에 도달해, 표시 영역을 반대방향으로 확장할 수 없는 경우, 삭제된 부분을, 2개, 즉 반으로 나누고, 해당 반대방향에 대해 직각인 나머지 2방향으로 각 절반에 해당하는 양만큼 확장한다. 표시 영역이 어느 한쪽의 방향으로 다른 경계선에 도달해, 어느 한쪽의 방향으로 표시 영역을 확장할 수 없는 경우에는, 삭제된 면적분만큼 다른 방향으로만 표시 영역을 확장한다. 이것에 의해, 표시 영역이 상하 좌우의 모든 4 방향으로 경계선에 이르렀을 경우에만 표시 영역의 면적이 작아져야 하고, 그 외의 경우에는, 표시 영역의 본래의 면적을 가능한 한 크게 유지할 수 있다. 이 처리의 상세한 것에 대하여는 후술한다.
다음에, 스텝 S76에서, 주목하고 있는 프로그램이 스코어(우선도)가 가장 낮은 추천 프로그램인지 아닌지를 판별한다. 스텝 S76에서, 주목하고 있는 프로그램이 스코어가 가장 낮은 프로그램이 아니라고 판정되면, 처리는 스텝 S77로 진행된다. 스텝 S77에서, 스코어가 다음으로 높은 추천 프로그램에 주목하고, 처리는 스텝 S73로 돌아온다. 이와 같이, 각 추천 프로그램에 대해서 스코어의 내림차순으로 스텝 S73~S77의 처리를 반복한다. 스코어(우선도)가 가장 낮은 추천 프로그램의 재레이아웃 처리가 끝나면, 재레이아웃 처리를 완료한다.
다음에, 상술한 스텝 S75에 있어서 경계선을 넘은 확장된 부분을 삭제하고, 삭제한 면적분만큼 다른 방향으로 표시 영역을 확장하는 처리에 대해 도 14의 플로차트를 참조하여 자세히 설명한다.
스텝 S81에서, 상하좌우의 4방향 중, 추천 프로그램에 관한 프로그램 정보의 표시 영역이 다른 추천 프로그램에 관한 프로그램 정보의 표시 영역과 겹치거나 EPG 화면의 표시 범위 밖으로 확장하는 1개의 방향에 주목한다. 다음에, 스텝 S82에서, 경계선(다른 추천 프로그램에 관한 프로그램 정보의 표시 영역이나 EPG 화면의 표시 범위)을 넘은 확장 부분을 삭제한다. 구체적으로는, 스텝 S82에서는, 주목한 방향이 좌측 방향이면, 프로그램 정보의 표시 영역의 좌단의 x좌표를 경계선의 x좌표와 일치시킨다. 주목한 방향이 우측 방향이면, 프로그램 정보의 표시 영역의 우단의 x좌표를 경계선의 x좌표와 일치시킨다. 주목한 방향이 위쪽 방향이면, 프로 그램 정보의 표시 영역의 상단의 y좌표를 경계선의 y좌표와 일치시킨다. 주목한 방향이 아래쪽 방향이면, 프로그램 정보의 표시 영역의 하단의 y좌표를 경계선의 y좌표와 일치시킨다.
다음에, 스텝 S83에서, 주목한 방향과 반대 방향으로 표시 영역이 확장 가능한가 아닌가를 판정한다. 이 경우, 주목한 방향과 반대 방향의 1변이 그 방향으로 경계선을 넘지 않으면, 스텝 S83에서, 표시 영역이 반대 방향으로 확장 가능하다고 판정한다. 그리고, 처리는 스텝 S84로 진행되어, 표시 영역을 제거된 면적분만큼 반대 방향으로 확장한다. 한편, 주목한 방향과 반대 방향의 1변이 경계선상에 있으면, 스텝 S83에서, 표시 영역이 확장 불가능하다고 판정하고, 처리는 스텝 S85로 진행된다. 스텝 S85에서는, 표시 영역을, 2개, 즉 반으로 분할하고, 각 절반에 해당하는 양만큼 주목한 방향에 대하여 직각인 2개의 방향으로 확장한다.
다음에, 스텝 S86에서는, 주목한 방향 이외에, 주목한 프로그램에 관한 프로그램 정보의 표시 영역이 다른 추천 프로그램에 관한 프로그램 정보의 표시 영역과 겹치거나 EPG 화면의 표시 범위 밖으로 확장되는 방향이 있는지 아닌지를 판별한다. 스텝 S86에서, 그러한 방향이 있다고 판정되면, 처리는 스텝 S87로 진행되어, 그러한 방향에 주목한다. 그 후에, 처리는 스텝 S82로 돌아온다. 4변(상단, 하단, 좌단, 우단)이 다른 추천 프로그램에 관한 프로그램 정보의 표시 영역과 겹치지 않게 되거나 EPG 화면의 표시 범위 밖으로 확장되지 않게 될 때까지 스텝 S82~S87의 처리를 반복한다. 스텝 S86에서, 주목한 프로그램에 관한 프로그램 정보의 표시 영역이 경계선과 겹치는 방향이 없다고 판정되면, 처리를 완료한다.
도 15a~15e는, 도 14에 나타낸 처리를 설명하기 위한 화면 예를 나타낸다. 도 15a에 있어서, 확장된 추천 프로그램 56의 주변에는, 이미 확장이 끝난 추천 프로그램 54 및 아직 확장되지 않은 추천 프로그램 66이 존재한다. 또, 추천 프로그램 56은 EPG 화면의 하단과 접하고 있다. 추천 프로그램 56의 좌단, 우단, 상단, 하단을 소정량(예를 들면 2 문자) 각각 확장한다(도 13의 스텝 S73).
도 15b에서는, 추천 프로그램 56의 우단이 추천 프로그램 66과 겹치기 때문에(스텝 S81), 경계선을 넘은 확장하는 우단의 부분을 삭제하고(스텝 S82), 삭제한 면적분만큼 추천 프로그램 56의 표시 영역의 좌단을 확장한다(스텝 S83, S84).
도 15c에서는, 추천 프로그램 56의 하단이 EPG 화면 밖으로 확장되어 있기 때문에(스텝 S86 및 S87), EPG 프레임의 경계선을 넘는 확장 부분을 삭제하고(스텝 S82), 삭제한 면적분만큼 추천 프로그램 56의 상단을 확장한다(스텝 S83, S84).
도 15d에서는, 추천 프로그램 56의 상단이 추천 프로그램 54의 표시 영역과 겹치기 때문에(스텝 S86 및 S87), 경계선을 넘은 확장 부분을 삭제하고(S82), 삭제한 면적의 각 절반에 해당하는 양만큼 추천 프로그램 56의 좌단 및 우단을 확장한다(스텝 S83, S85).
도 15e에서는, 추천 프로그램 56의 우단이 추천 프로그램 66의 표시 영역과 겹치기 때문에(스텝 S86 및 S87), 경계선을 넘은 확장 부분을 삭제하고(스텝 S82), 삭제한 면적분만큼 추천 프로그램 56의 좌단을 확장한다(스텝 S83, S84). 도 15e에 나타낸 상태에서는, 추천 프로그램 56의 표시 영역이 4방향 모두 다른 프로그램에 관한 프로그램 정보의 표시 영역과 겹치지 않거나 EPG 화면의 표시 범위 밖으로 확 장되지 않는다. 이와 같이, 추천 프로그램 56의 확장 처리를 완료한다.
다음에, 도 16 및 도 17을 이용해, 추천 프로그램의 스코어(우선도)가 다른 경우의 추천 프로그램의 레이아웃을 비교함으로써, 제2 실시 예의 효과에 대해 설명한다. 도 16은, 추천 프로그램 23, 44, 54, 56, 64, 66, 73의 순으로 재레이아웃 처리를 했을 경우의 EPG 화면을 나타내고 있다. 도 17은, 추천 프로그램 66, 23, 44, 54, 56, 64, 73의 순으로 재레이아웃 처리를 했을 경우의 EPG 화면을 나타내고 있다. 도 16 및 도 17은, 스텝 S24(도 10 참조)에서 상하좌우로 각 방향에 있어서의 2문자에 해당하는 양만큼 표시 영역을 확장했을 경우의 EPG 화면을 나타내고 있다.
도 16에 있어서, 우측방향으로 아직 확장되지 않은 추천 프로그램 73, 좌측 방향으로 확장이 끝난 추천 프로그램 54 및 56, 위쪽 방향으로 확장이 끝난 추천 프로그램 64가 존재하기 때문에, 2번째로 스코어(우선도)가 낮은 추천 프로그램 66의 표시 영역의 확장은, 위쪽 방향 및 좌우 방향으로 제한된다. 이 결과, 추천 프로그램(66)의 표시 영역은, 가로 폭 7문자, 높이 6행을 갖는다.
도 17에 나타낸 EPG 화면에 있어서, 추천 프로그램 66은 가장 스코어(우선도)가 높기 때문에, 다른 추천 프로그램의 확장 전에 우선적으로 확장된다. 다른 추천 프로그램이 존재하므로 추천 프로그램 66의 확장은, 우측방향, 위쪽 방향, 아래쪽 방향으로 제한되기 때문에, 추천 프로그램 66은, 그 제한된 부분에 해당하는 양만큼 좌측방향으로 확장된다. 그 결과, 추천 프로그램 66의 표시 영역은, 가로 폭 14 문자, 높이 8행을 갖는다. 따라서, 추천 프로그램(66)의 문자의 수는 상하 좌우로 각 방향에 있어서의 2문자에 해당하는 양만큼 확장한 추천 프로그램의 문자 수(11 문자×10행)와 거의 같다.
도 16에서, 추천 프로그램 66 이외의 모든 추천 프로그램의 표시 영역의 크기는, 스텝 S24의 재레이아웃 처리에서(도 10 참조) 확장된 표시 영역의 크기로부터 작아지지 않는다. 도 17에서, 추천 프로그램 54 이외의 모든 추천 프로그램의 표시 영역의 크기는, 스텝 S24의 재레이아웃 처리(도 10 참조)에서 확장된 표시 영역의 크기로부터 작아지지 않는다.
이상과 같이, 제2 실시 예에서는, 제1 실시 예와 마찬가지로, 서로 근접해 있는 복수의 추천 프로그램에 관한 프로그램 정보의 표시 영역을 팝업부로서 표시할 때, 유저가 소망하는 프로그램 정보를 인식하기 쉽게 표시하는 것이 가능해진다. 게다가, 확장하는 프로그램이 많이 밀집해 있는 경우에도, 상하 좌우 방향의 어느 1방향이 경계선과 겹치지 않는 한 확장된 표시 영역의 크기가 작아지는 일은 없다. 그 결과, 보다 많은 상세한 프로그램 정보를 표시할 수가 있다.
또, 스코어(우선도)가 높은 추천 프로그램에 관한 프로그램 정보의 표시 영역을 우선적으로 확장할 수가 있다. 그 결과, 많은 상세 정보를 표시할 수 있다.
제2 실시 예에서는, 프로그램 정보의 표시 영역의 좌단, 우단, 상단, 하단을 각각 소정 문자 수에 해당하는 양만큼 확장한다. 또, 가레이아웃 처리로 결정한 표시 영역의 가로 폭 및 높이를 소정 배율(예를 들면 1.5배) 확장해도 괜찮다.
단형식 이벤트 기술자나 확장 형식 이벤트 기술자의 문자 수가 많은 프로그램은, 프로그램 정보의 표시 영역에 표시해야 할 문자 수가 많다. 이 때문에, 그러 한 프로그램의 표시 영역의 확장의 정도를 증가시켜도 괜찮다. 혹은, 스코어(우선도)가 높은 추천 프로그램의 확장의 정도를 증가시켜도 괜찮다.
(제3 실시 예)
본 발명의 제3 실시 예에서는, 상술의 제1 혹은 제2 실시 예와 비교해, 재레이아웃 처리 방법이 다르다. 제3 실시 예에 있어서의 재레이아웃 처리 이외의 국면은 제1 혹은 제2 실시 예와 같다. 도 18은, 제3 실시 예에서 사용한 재레이아웃 처리를 나타내는 플로차트이다. 도 18에서, 스텝 S91~S93, S97, S98은, 각각 도 13의 스텝 S71~S73, S76, S77과 같기 때문에, 여기에서는 그것의 설명은 반복하지 않는다.
스텝 S93에서의 확장 처리의 결과로서, 추천 프로그램에 관한 프로그램 정보의 표시 영역이, EPG 화면의 표시 범위 밖으로 확장되는지 아닌지를 판별한다(스텝 S94). 스텝 S94에서 표시 영역이 EPG 화면의 표시 범위 밖으로 확장된다고 판정된 경우에, 처리는 스텝 S95로 진행된다. 스텝 S95에서, 표시 범위의 경계선을 넘은 확장 부분을 삭제한다. 스텝 S94에서 표시 영역이 EPG 화면의 표시 범위 밖으로 연장되지 않는다고 판정된 경우에는, 처리는 스텝 S96으로 진행된다. 스텝 S96에서는, 추천 프로그램의 표시 영역을, 재레이아웃 처리된 다른 추천 영역의 표시 영역보다 한층 더 아래에 있는 영역에 표시한다. 최초로 재레이아웃 처리되는 스코어(우선도)가 가장 높은 추천 프로그램의 표시 영역은 다른 추천 프로그램의 표시 영역의 위쪽에 있는 영역에 표시되고, 다음에 재레이아웃 처리되는 추천 프로그램의 표시 영역은, 스코어가 가장 높은 추천 프로그램의 표시 영역의 아래에 있는 영역 에 표시되게 된다. 이것에 의해, 복수의 추천 프로그램의 표시 영역이, 스코어의 내림차순으로 서로 겹쳐서 표시된다.
다음에, 스텝 S97에서는, 주목하고 있는 프로그램이 스코어(우선도)가 가장 낮은 추천 프로그램인지 아닌지를 판별한다. 스텝 S97에서, 주목하고 있는 프로그램이 스코어 가장 낮은 추천 프로그램이 아라고 판정되면, 처리는 스텝 S98로 진행된다. 스텝 S98에서는, 스코어가 다음으로 높은 추천 프로그램에 주목하고, 처리는 스텝 S93으로 돌아온다. 이와 같이 함으로써, 스코어의 내림차순으로 스텝 S93~S97의 처리를 반복한다. 스코어가 가장 낮은 추천 프로그램의 재레이아웃 처리가 끝나면, 재레이아웃 처리를 완료한다.
제3 실시 예에 있어서, 스코어의 내림차순으로 추천 프로그램이 순차적으로 재레이아웃 처리된다. 반대로, 스코어의 오름차순으로 추천 프로그램이 순차적으로 재레이아웃 처리되고, 가장 최근에 재레이아웃 처리된 추천 프로그램을 다른 추천 프로그램의 위쪽에 배치해도 괜찮다. 또, 이하의 접근방법에 의해 같은 결과를 얻을 수도 있다. 채널순서 혹은 방송 시각 순서로 추천 프로그램을 재레이아웃 처리하고, 가장 최근에 재레이아웃 처리된 추천 프로그램을 스코어 순으로 배치해도 된다.
재레이아웃 후의 각 프로그램에 관한 프로그램 정보의 표시 영역의 묘화할 때, 추천 프로그램 이외의 프로그램에 관한 프로그램 정보의 표시 영역을 먼저 묘화한 후에, 추천 프로그램에 관한 프로그램 정보의 표시 영역을 아래쪽으로부터 순차적으로 묘화해서 아래쪽으로부터 위쪽으로 겹쳐 간다. 혹은, 윈도우 시스템, 예 를 들면, X-Window 시스템을 이용해, 각 프로그램에 관한 프로그램 정보의 표시 영역을 개개의 윈도우로서 관리할 수 있다. 이 경우, 윈도우 시스템에 대해서, 각 윈도우의 겹침 순서를 지정하는 것으로, 반드시 아래쪽에서 위쪽으로 순차적으로 윈도우를 묘화하지 않아도 지정된 겹침 순서대로 표시된다.
이 제3 실시 예에서의 재레이아웃 처리 후의 각 프로그램에 관한 프로그램 정보의 표시 영역의 좌표값은, 도 6에 나타낸 데이터 형식(xe1, ye1, xe2, ye2)으로 메모리(21)에 기억된다. 게다가, 각 추천 프로그램에 관한 프로그램 정보의 표시 영역이 서로 겹치기 때문에, 그 표시 영역의 겹침 순서를 나타내는 번호(예를 들면, 아래쪽에서 위쪽으로의 순서를 나타내는 1, 2, 3,···)를 결정해, 메모리(21)에 도 6의 데이터 형식으로 기억한다.
다음에, 도 19~21을 이용해, 제3 실시 예의 효과에 대해 설명한다. 도 19는, 스텝 S93(도 18 참조)의 재레이아웃 처리에서 상하좌우로 각 방향에 있어서의 2문자에 해당하는 양만큼 추천 프로그램에 관한 프로그램 정보의 표시 영역을 확장했을 경우의 EPG 화면 예를 나타낸다. 도 19에 나타낸 예에서는, 추천 프로그램 23, 44, 54, 56, 64, 66, 73의 순서 등으로, 스코어(우선도)의 내림차순으로 순차적으로 추천 프로그램을 표시하고 있다.
도 19에 나타낸 EPG 화면이 표시되고 있는 상태로, 유저가 리모콘(2)의 플러스 버튼 54를 누르면, 추천 프로그램의 표시 영역의 확장 정도를 증가시켜 재레이아웃 처리를 한다. 그 결과, 도 20의 EPG 화면에 나타낸 바와 같이, 상하좌우로 각 방향에 있어서의 3문자에 해당하는 양만큼 추천 프로그램의 표시 영역을 확장한다. 또, 도 19에 나타낸 EPG 화면이 표시되고 있는 상태로, 유저가 리모콘(2)의 마이너스 버튼 55를 누르면, 추천 프로그램의 표시 영역의 확장 정도를 감소시켜서 재레이아웃 처리를 한다. 그 결과, 도 21의 EPG 화면에 나타낸 바와 같이, 상하좌우로 각 방향에 있어서의 1문자에 해당하는 양만큼 추천 프로그램의 표시 영역을 확장한다. 이와 같이, 리모콘(2)의 플러스 버튼 54 혹은 마이너스 버튼 55를 이용해 추천 프로그램의 표시 영역의 확장 정도를 증가 혹은 감소시킴으로써, 유저는 추천 프로그램에 관한 상세 정보를 더 많이 표시할지 혹은 이전에 뒤에 숨어 있던 프로그램에 관한 정보를 더 많이 표시할지를 결정할 수가 있다.
이상과 같이, 이 제3 실시 예에서는, 스코어가 높은 추천 프로그램의 표시 영역이 다른 추천 프로그램의 표시 영역과 겹쳐 위쪽에 표시된다. 이 때문에, 많은 추천 프로그램의 표시 영역이 서로 근접해 있는 경우에도, 우선도가 높은 추천 프로그램에 관한 정보가 우선적으로 위쪽에 표시된다.
지금까지, 서로 근접해 있는 많은 추천 프로그램의 표시 영역을 서로 겹치지 않게 시프트시키면, 그 표시 영역의 위치가 추천 프로그램의 본래의 위치로부터 상당한 거리 어긋나 버리는 경우가 있었다. 이 때문에, 추천 프로그램의 채널이나 방송 시각을 유저가 인식하기 어려워진다. 이것에 대해서, 제3 실시 예에서는, 추천 프로그램에 관한 프로그램 정보의 표시 영역을 본래의 위치로부터 상당한 거리 어긋나게 하는 일없이, 스코어(우선도)가 높은 추천 프로그램이 위쪽에 배치된다. 따라서, 서로 근접해 있는 복수의 추천 프로그램에 관한 프로그램 정보의 표시 영역을 팝업부로서 표시할 때, 유저가 소망하는 프로그램 정보를 인식하기 쉬운 형태로 표시하는 것이 가능해진다.
제3 실시 예에서는, 프로그램에 관한 프로그램 정보의 불투명한 표시 영역을 서로 겹친다. 혹은, 아래쪽에 숨어 있는 프로그램의 문자가 얇게 비쳐 보이도록 프로그램 정보의 반투명의 표시 영역을 서로 겹쳐도 괜찮다. 즉, 추천 프로그램 이외의 각 프로그램에 관한 프로그램 정보의 표시 영역을 불투명하게 묘화하고, 다음에 각 추천 프로그램에 관한 프로그램 정보의 표시 영역을 순차적으로 불투명도α(0<α<1)로 묘화해 아래쪽에서 위쪽으로 서로 겹쳐 간다. 묘화된 화소의 RGB 성분값을 (R0, G0, B0)로 표시하고, 그 묘화된 화소의 위쪽에 겹치는 새로운 화소의 RGB 성분값을 (R1, G1, B1)로 표시하면, 겹쳐진 결과의 RGB 성분값은 ((1-α)×R0+α×R1, (1-α)×G0+α×G1, (1-α)×B0+α×B1)로 표시된다. 이 경우, 보다 아래쪽에 위치된 추천 프로그램(즉, 스코어가 낮은 추천 프로그램)의 문자가, 반투명 층을 많이 통과하므로, 보다 콘트라스트가 낮게 표시된다. 즉, 스코어(우선도)가 높은 추천 프로그램의 문자가 보다 더 분명히 표시되게 된다.
(그 외의 실시 예)
상기 실시 예에 기재된 처리는, 전술한 실시 예의 기능을 실현하는 소프트웨어의 프로그램 코드를 기억한 기억 매체를, 시스템 혹은 장치에 제공함으로써 실현될 수도 있다. 그 시스템 혹은 장치의 컴퓨터(또는 CPU나 MPU)로 기억 매체에 기억된 프로그램 코드를 판독하여 실행함으로써, 상기 실시 예의 기능이 실현될 수 있다. 이 경우, 기억 매체로부터 판독된 프로그램 코드는 전술한 실시 예에 따른 기능을 실현하고, 그 프로그램 코드를 기억한 기억 매체는 본 발명을 구성하게 된다. 플로피 디스크, 하드 디스크, 광 디스크, 광자기 디스크 등의 기억매체를 이용해서 상기 프로그램 코드를 제공할 수 있다. 또한, CD-ROM, CD-R, 자기 테이프, 불휘발성 메모리 카드, ROM 등을 이용할 수도 있다.
또한, 전술한 실시 예에 따른 기능은 컴퓨터에 의해 판독된 프로그램 코드를 실행함으로써 실현된다. 또한, 본 발명은, 그 프로그램 코드의 지시에 따라, 컴퓨터상에서 가동하고 있는 오퍼레이팅 시스템(Operating System) 등이 처리의 일부 또는 전부를 수행하여 상기 실시 예에 따른 기능을 실현하는 경우도 포함한다.
게다가, 기억 매체로부터 판독된 프로그램 코드가 컴퓨터에 삽입된 기능확장 카드 혹은 컴퓨터에 접속된 기능 확장 유닛의 메모리에 기록되어도 된다. 그 후, 그 기능 확장 카드 혹은 기능 확장 유닛에 구비된 CPU 등이 상기 프로그램 코드의 지시에 따라 처리의 일부 또는 전부를 수행하여 전술한 실시 예에 따른 기능을 실현하는 경우도 있다.
상기 예시한 실시 예를 참조하면서 본 발명을 설명했지만, 본 발명은 이 예시한 실시 예에 한정되는 것이 아니라는 것이 이해될 것이다. 이하의 특허청구범위는 그러한 모든 변형, 균등구조 및 기능을 포함하도록 가장 넓게 해석될 것이다.