KR100348789B1 - 방송 수신장치 및 방법 - Google Patents

방송 수신장치 및 방법 Download PDF

Info

Publication number
KR100348789B1
KR100348789B1 KR1019990059495A KR19990059495A KR100348789B1 KR 100348789 B1 KR100348789 B1 KR 100348789B1 KR 1019990059495 A KR1019990059495 A KR 1019990059495A KR 19990059495 A KR19990059495 A KR 19990059495A KR 100348789 B1 KR100348789 B1 KR 100348789B1
Authority
KR
South Korea
Prior art keywords
html
data
text
processing unit
interpreter
Prior art date
Application number
KR1019990059495A
Other languages
English (en)
Other versions
KR20010065000A (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 KR1019990059495A priority Critical patent/KR100348789B1/ko
Publication of KR20010065000A publication Critical patent/KR20010065000A/ko
Application granted granted Critical
Publication of KR100348789B1 publication Critical patent/KR100348789B1/ko

Links

Classifications

    • 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/41Structure of client; Structure of client peripherals
    • H04N21/418External card to be used in combination with the client device, e.g. for conditional access
    • H04N21/4181External card to be used in combination with the client device, e.g. for conditional access for conditional access
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42653Internal components of the client ; Characteristics thereof for processing graphics
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • H04N21/4355Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reformatting operations of additional data, e.g. HTML pages on a television screen
    • 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/4435Memory management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6118Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving cable transmission, e.g. using a cable modem

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

방송수신장치 및 방송수신방법에 관한 것으로, 텍스트 인터프리터와 HTML 인터프리터 사이의 빈번한 소프트웨어 동작 절환 현상을 방지하는 데에 그 목적이 있으며, 케이블 방송장비의 POD(Point Of Deployment) 모듈을 통해 전송된 텍스트 파일을 해석하는 텍스트 처리부, 상기 텍스트 처리부에서 해석된 데이터를 HTML(Hyper Text Markup Language) 형식으로 변환하는 HTML 변환부, 상기 HTML 변환부에서 변환된 데이터와 상기 POD 모듈을 통해 전송된 HTML 파일을 HTML 파일 처리 방식으로 해석하는 HTML 처리부, 그리고 상기 HTML 처리부에 입력된 데이터 중, 그래픽 데이터를 전담하여 처리하는 그래픽 처리부를 포함하여 구성된 것이 특징으로서, 텍스트 인터프리터와 HTML 인터프리터 간의 작업절환(task switch)이 방지되고, 작업절환의 반복으로 인한 메모리 조각의 흩어짐 현상이 줄어들어 시스템이 안정적으로 작동하고, 리소스가 효율적으로 관리되는 효과가 있다.

Description

방송 수신장치 및 방법{Method and apparatus for broadcasting receiver}
본 발명은 암호모듈(Security module, 이하 POD : Point Of Deployment 모듈이라 칭함)이 분리된 오픈케이블 셋톱박스(Open Cable Set-top box)에 관한 것으로, 특히 텍스트 데이터와 HTML 데이터를 모두 처리할 수 있는 오픈케이블 셋톱박스에 관한 것이다.
미국의 케이블 방송국과 방송장비 회사들은 디지털 케이블 방송을 위한 오픈케이블(OpenCable)이란 표준규격을 제정하였다. 그로 인하여 여러 제조회사가 케이블 티브이용 셋톱박스(set-top box)를 제조하여 일반 판매점에서 판매할 수 있게 되었다.
이러한 오픈케이블 표준규격에 해당하는 셋톱박스는 도 1에 도시된 것과 같이 구성된다. 오픈케이블의 개념은 기존의 케이블 셋톱박스 내에 존재하던 POD 모듈을 셋톱박스로부터 분리하고, 셋톱박스와 POD 모듈 간의 인터페이스를 표준화한 것이다. 따라서, 어떤 업자든지 이러한 POD 모듈의 인터페이스를 표준규격에 적합하게 제조할 수 있다면, 자유자재로 셋톱박스를 제조할 수 있게 되었다. 그 결과, 소비자는 셋톱박스의 선택폭을 넓힐 수 있게 되었고, 케이블 방송업자들은 가입자에게 POD 모듈만 제공함으로써, 장비 제조에 대한 부담을 덜 수 있게 된 것이다.
현재의 POD 모듈은 PCMCIA 카드 형태로 구성되며, In-band 대역을 통해 수신된 케이블 프로그램을 디스크램블(discramble)하여 셋톱박스로 전송하는 역할을 수행한다. 그리고, 셋톱박스에서 제공하는 송/수신기를 이용하여 헤드엔드(head-end)로부터 명령을 입력받는다.
또한, POD 모듈은 헤드엔드로부터 입력받은 명령을 해석하여 데이터 채널(data channel)과 확장 채널(extended channel)을 통해 셋톱박스의 중앙처리장치(CPU)와 신호를 교환하면서, 헤드엔드가 지시한 사항을 수행하거나, 사용자가 입력한 내용을 헤드엔드로 전달하는 역할을 함께 수행한다.
POD 모듈과 셋톱박스 간에 이루어지는 데이터 채널의 프로토콜은 도 2에 도시된 것과 같이 정의되어 있다.
POD 모듈의 프로토콜에서 PC 카드 물리적계층과, 링크계층, PC 카드 전송 부계층과, 총체적 전송 부계층, 그리고 세션층은 모든 응용 프로그램에 공통적으로 사용된다. 그리고, 세션층의 상위 계층인 리소스 계층은 여러 가지로 나뉘어져 필요에 따라 서로 다른 내용을 POD 모듈에 지원하게 된다. 이 때, 리소스 계층은 object 라고 명명된 소프트웨어 모듈을 교환하면서 그 응용 프로그램들에 필요한 내용을 지원한다.
현재 미국의 오픈케이블 표준규격에서 정의하고 있는 리소스 계층의 종류는 다음의 표 1에 도시된 것과 같다.
리소스 DVS 064 Part B 오픈케이블(OpenCable)
Resource Manager Yes Yes
MMI Yes Yes
Application Info Yes Updated
Low Speed Communication Yes Updated
Conditional Access Support Yes Yes
Smart Card Reader Optional Optional
Copy Protection No Yes
Host Control - Info Resource Yes Updated
Extended Channel Support No Yes
Generic IPPV Support No Yes
Specific Application Support No Yes
이 리소스들 중에서 MMI(Man-Machine Interface) 리소스는 POD 모듈이 사용자에게 보여 주고 싶은 내용을 표시하거나, 사용자가 선택한 입력을 전달받고자 할 때에 사용하는 리소스이다.
만약, 사용자가 방송 프로그램을 시청하려고 한다면, POD 모듈은 MMI 리소스를 통하여 그 방송 프로그램을 표현한 파일을 셋톱박스에 전송하고, 셋톱박스는 그 파일의 내용을 해석하여 그래픽 시스템을 이용하여 사용자에게 방송 화면을 제공한다. 이 때, 사용되는 파일의 형태는 텍스트 파일과 HTML 파일의 2 가지 형태가 있으며, 오픈케이블의 셋톱박스는 MMI 를 지원하기 위한 텍스트 인터프리터(text file interpreter)와 HTML 인터프리터(HTML interpreter)를 보유해야 한다.
도 3은 종래의 셋톱박스가 텍스트 파일과 HTML 파일을 처리하여 방송화면으로 제공해 주는 소프트웨어의 구조(software architecture)를 도시한 것이다.
텍스트 인터프리터(10)는 실시간 운영체제(Real-time OS)가 제공해 주는 그래픽 라이브러리(Graphic library)(31)와 그래픽 원시함수(Graphic primitive function)(30)들을 이용하여 그래픽을 처리한다. 따라서, 텍스트 인터프리터(10)는 소프트웨어 계층을 많이 사용하지 않고, 메모리를 적게 차지하는 장점이 있다.
반면, HTML 인터프리터(20)는 실시간 운영체제가 제공해 주는 그래픽 라이브러리(31) 외에도 다른 소프트웨어 계층을 많이 사용하므로, 텍스트 인터프리터(10)에 비하여 상당히 복잡한 과정을 거쳐 데이터를 처리한다. 뿐만 아니라, HTML 인터프리터(20) 자체의 규모가 텍스트 인터프리터(10)에 비하여 매우 방대하므로, 많은 메모리 공간이 필요하다.
따라서, HTML 인터프리터(20)가 정상적으로 동작하려면, 소프트웨어 계층의 셋업(set-up)과 릴리즈(release)가 반복적으로 이루어져야 한다. 동시에 메모리 할당(memory allocation)과 비할당(memory de-allocation)이 반복되어야 한다. 이러한 과정들이 반복되면, 메모리 내에 작은 크기를 갖는 빈 영역이 여러 장소에 흩어져 생성되는 메모리 조각의 흩어짐(memory fragmentation)이 많이 발생된다.
상술한 바와 같은 메모리 조각의 흩어짐이 심해질수록 동일한 프로그램이 로드될 수 있는 한 덩어리의 메모리 영역의 크기는 점점 작아지게 된다. 이러한 현상이 심화되면, 결국 메모리 할당이 불가능해져 시스템의 동작이 멈추는 문제가 발생될 수도 있다.
그러나, POD 모듈은 MMI 리소스를 통해 텍스트 파일과 HTML 파일을 사용하는 데에 특별한 제약이 없다. 따라서, 사용자가 동작시킴에 따라 POD 모듈은 텍스트 파일과 HTML 파일을 연속적으로 번갈아 사용할 수도 있다. 이 경우, 상술한 바와 같은 메모리 조각의 흩어짐 등을 포함한 소프트웨어 동작 절환(software task switch) 현상으로 인하여 시스템 동작에 심각한 장애가 발생하는 문제가 발생한다.
본 발명은 상술한 문제점을 해결하기 위한 것으로, MMI 리소스를 통해 전송된 텍스트 파일과 HTML 파일을 충실히 지원하도록 텍스트 인터프리터와 HTML 인터프리터 사이의 빈번한 소프트웨어 동작 절환 현상을 방지하는 데에 그 목적이 있다.
도 1은 일반적인 오픈케이블 표준규격의 셋톱박스를 도시한 블록도.
도 2는 POD 모듈의 프로토콜의 구조를 도시한 도면
도 3은 종래의 방송처리장치의 소프트웨어 구조를 도시한 블록도.
도 4는 본 발명의 방송처리장치의 소프트웨어 구조를 도시한 블록도.
도면의 주요부분에 대한 기호설명
100 : 텍스트 처리부 200 : HTML 변환부
300 : HTML 처리부 400 : 그래픽 처리부
본 발명은 HTML(Hyper Text Markup Language) 인터프리터를 지원하기 위한 그래픽 처리 소프트웨어를 고정적으로 셋업하고, MMI 리소스를 통해 입력된 텍스트(text) 파일을 HTML 파일로 변환하는 것이 특징이다.
본 발명의 방송수신장치는 케이블 방송장비의 POD(Point Of Deployment) 모듈을 통해 전송된 텍스트 파일을 해석하는 텍스트 처리부, 상기 텍스트 처리부에서 해석된 데이터를 HTML(Hyper Text Markup Language) 형식으로 변환하는 HTML 변환부, 상기 HTML 변환부에서 변환된 데이터와 상기 POD 모듈을 통해 전송된 HTML 파일을 HTML 파일 처리 방식으로 해석하는 HTML 처리부, 그리고 상기 HTML 처리부에 입력된 데이터 중, 그래픽 데이터를 전담하여 처리하는 그래픽 처리부를 포함하여 구성되어 있다.도 4는 본 발명의 방송수신장치의 일부를 도시한 블록도이다.
텍스트 처리부(100)는 외부에서 전송된 텍스트 파일을 해석하고, HTML 변환부(200)는 텍스트 처리부(100)에서 해석된 데이터를 HTML 파일의 형식으로 변환한다. 즉, 본 발명의 방송처리장치는 외부에서 전송되는 데이터들의 형식이 텍스트 형식이면, HTML 형식으로 변환하여 처리하고, HTML 형식의 데이터는 변환하지 않고 직접 처리하는 것이다.
HTML 변환부(200)는 텍스트 처리부(100)에서 해석된 데이터를 HTML 형식으로 변환하여 HTML 처리부(300)에 입력한다.
HTML 처리부(300)는 데이터를 티브이의 화면에 표시할 수 있도록 외부에서 전송된 HTML 파일을 해석한다. 이 때, HTML 처리부(300)는 HTML 데이터를 소정의 HTML 파일처리방식에 의해 처리한다.
그래픽 처리부(400)는 HTML 처리부(300)에 입력된 데이터 중에 포함된 그래픽 데이터를 전담하여 처리한다. 이러한 그래픽 처리부(400)는 시스템의 운영체제 소프트웨어(OS : Operating System Software)에서 제공되는 것으로서, HTML 처리부(300)에 가해지는 부하를 줄여준다.
상기 텍스트 처리부(100)와 HTML 처리부(300)가 해석하는 데이터는 케이블 방송장비의 POD 모듈을 통해 입력되며, 특히 POD 모듈의 MMI 리소스를 이용하여 제공된다.
본 발명의 방송수신장치는 다음과 같이 동작한다.
본 발명의 방송수신방법은 텍스트 데이터와 HTML 데이터 중, 적어도 한 가지이상의 데이터를 입력받는 단계와, 입력된 텍스트 파일을 HTML 형식으로 변환하는 단계, 그리고 HTML 형식의 데이터를 해석하는 단계를 포함하여 구성되어 있다.
먼저, POD 모듈의 MMI 리소스를 통하여 텍스트 데이터 혹은, HTML 데이터가 입력된다. 입력된 텍스트 데이터는 텍스트 인터프리터와 같은 텍스트 처리부(100)에서 해석되고, HTML 데이터는 HTML 인터프리터와 같은 HTML 처리부(300)에서 해석된다.
텍스트 처리부(100)에서 해석된 텍스트 데이터는 HTML 변환부(200)를 거쳐 HTML 파일 형식으로 변환된다. HTML 형식으로 변환된 데이터는 HTML 처리부(300)에 입력되어 외부에서 입력된 HTML 데이터를 처리하는 과정과 동일한 과정으로 해석된다. 이 때, HTML 인터프리터는 자체에 그래픽 처리루틴을 구비하지 않고, 외부에 설치된 그래픽 처리루틴을 이용하여 HTML 데이터에 포함된 그래픽 데이터를 처리한다.
상기 HTML 데이터에 포함된 그래픽 데이터를 처리하는 그래픽 처리루틴은 본 발명이 적용된 시스템의 운영체제 소프트웨어에 포함된 것이다. 따라서, 본 발명의 HTML 처리부(300)의 용량 및, 필요한 메모리 영역의 크기는 종래보다 작아진다.
본 발명의 방송수신장치 및 방송수신방법은 외부에서 수신된 모든 데이터를 HTML 형식으로 통일하여 운용하고, HTML 형식의 데이터에 포함된 그래픽 데이터는 운영체제에서 제공되는 그래픽 처리루틴을 이용하여 처리하므로, 종래의 기술에 비하여 텍스트 인터프리터와 HTML 인터프리터 간의 작업절환(task switch)이 방지된다. 그 결과, 작업절환의 반복으로 인한 메모리 조각의 흩어짐 현상이 줄어들어 시스템이 안정적으로 작동하고, 리소스가 효율적으로 관리되는 효과가 있다.

Claims (5)

  1. 케이블 방송장비의 POD(Point Of Deployment) 모듈을 통해 전송된 텍스트 파일을 해석하는 텍스트 처리부,
    상기 텍스트 처리부에서 해석된 데이터를 HTML(Hyper Text Markup Language) 형식으로 변환하는 HTML 변환부,
    상기 HTML 변환부에서 변환된 데이터와 상기 POD 모듈을 통해 전송된 HTML 파일을 HTML 파일 처리 방식으로 해석하는 HTML 처리부, 그리고
    상기 HTML 처리부에 입력된 데이터 중, 그래픽 데이터를 전담하여 처리하는 그래픽 처리부를 포함하여 구성됨을 특징으로 하는 방송수신장치.
  2. 삭제
  3. 제 1 항에 있어서, 상기 그래픽 처리부는 시스템의 운영체제 소프트웨어(OS)에서 제공됨을 특징으로 하는 방송수신장치.
  4. 케이블 방송장비의 POD(Point Of Deployment) 모듈을 통해 텍스트 데이터와 HTML 데이터 중, 적어도 한 가지 이상의 데이터를 입력받는 단계,
    상기 텍스트 데이터를 HTML 형식으로 변환하는 단계,
    외부의 그래픽 전담처리 루틴을 이용하여 변환된 HTML 데이터와 외부에서 전송된 HTML 데이터 중, 적어도 한 가지 이상의 데이터를 HTML 파일 처리 방식으로해석하는 단계를 포함하여 구성된 방송수신방법.
  5. 제 4 항에 있어서, 상기 외부의 그래픽 전담처리 루틴은 상기 방송수신방법이 수행되는 장치의 운영체제 소프트웨어에서 제공받음을 특징으로 하는 방송수신방법.
KR1019990059495A 1999-12-20 1999-12-20 방송 수신장치 및 방법 KR100348789B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990059495A KR100348789B1 (ko) 1999-12-20 1999-12-20 방송 수신장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990059495A KR100348789B1 (ko) 1999-12-20 1999-12-20 방송 수신장치 및 방법

Publications (2)

Publication Number Publication Date
KR20010065000A KR20010065000A (ko) 2001-07-11
KR100348789B1 true KR100348789B1 (ko) 2002-08-17

Family

ID=19627374

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990059495A KR100348789B1 (ko) 1999-12-20 1999-12-20 방송 수신장치 및 방법

Country Status (1)

Country Link
KR (1) KR100348789B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10234018A (ja) * 1996-10-21 1998-09-02 Nextlevel Syst Inc テレビ表示および制御のためのhtmlプロトコル
JPH1118060A (ja) * 1997-06-27 1999-01-22 Matsushita Electric Ind Co Ltd テレビジョン受信機
JPH1132314A (ja) * 1997-07-14 1999-02-02 Matsushita Electric Ind Co Ltd データ放送受信装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10234018A (ja) * 1996-10-21 1998-09-02 Nextlevel Syst Inc テレビ表示および制御のためのhtmlプロトコル
JPH1118060A (ja) * 1997-06-27 1999-01-22 Matsushita Electric Ind Co Ltd テレビジョン受信機
JPH1132314A (ja) * 1997-07-14 1999-02-02 Matsushita Electric Ind Co Ltd データ放送受信装置

Also Published As

Publication number Publication date
KR20010065000A (ko) 2001-07-11

Similar Documents

Publication Publication Date Title
US7992187B2 (en) System and method of dual-screen interactive digital television
CA2622900C (en) Self-contained mini-applications system and method for digital television
US8209717B2 (en) Receiver with concurrent multi-user electronic program guide
US20090265723A1 (en) Electronic device and control method of the same
CN100440924C (zh) 数字有线电视接收机及其诊断方法
DE69909255T2 (de) Multimediaterminal für mehrere benutzer
US20020067766A1 (en) Broadcast system and method for browsing the web
JP4776050B2 (ja) 配信コンテンツ生成方法、コンテンツ配信方法および装置、並びに、コード変換方法
DE69938273T2 (de) Verfahren und Vorrichtung für verbesserte DVB-CI Funktionalität durch Ermöglichung eines direkten Zugriffs auf das Conditional Access Modul
EP0996894B1 (en) Ieee1394 set top box device driver
JP2006054867A (ja) 伝送規格に依存しない放送メタデータフォーマット
CN113038213B (zh) 电视应用一键唤起方法、系统、存储介质及usb软件狗
WO2005109865A1 (en) A method for realizing embedded digital television service platform
CN100574393C (zh) 使用屏幕的复位菜单初始化有线卡和频道表的方法和设备
EP1241566A1 (en) A system and method of the cable network defined by a software
RU2181905C2 (ru) Разработка системы управления телевидением или радиовещанием
KR100348789B1 (ko) 방송 수신장치 및 방법
US20020120945A1 (en) Software bus and interface for digital television application software environments
US20040194153A1 (en) Conservation of system resources by efficiently activating/de-activating applications
JP3299821B2 (ja) 番組選択メニュー方式および映像配信システム
CN112770070B (zh) 一种双主控芯片显示设备的控制方法及装置
US20040194145A1 (en) Leveraging PC processing power to handle CPU intensive tasks
CN101262572A (zh) 数字数据广播接收器及控制其分辨率的方法
WO1999018513A1 (en) Modem control
WO1998043172A2 (en) Access control system

Legal Events

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

Payment date: 20060616

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee