본 발명의 일측면에 의하면, 데이터부를 포함하는 MPEG 개인 테이블 섹션용 데이터 구조가 제공되며, 상기 데이터 구조는 상기 섹션 또는 상기 데이터부의 크기 측도(measure)를 지정하는 크기 지시자(size specifier)를 포함하고, 상기 데이터부는 적어도 하나의 데이터 블록을 포함하고, 상기 또는 각 블록은 그 블록의 크기 측도를 지정하는 추가 크기 지시자를 포함한다.
종래 테이블 섹션에 제공된 지시자 외에, 특정 데이터 블록의 크기 측도를 지정하는 추가 크기 지시자를 가짐으로써, 일반적인 데이터 구조가 정의될 수 있기 때문에, 각 MPEG 개인 테이블 섹션에 상이한 구조를 사용할 필요가 없게 된다. 더욱이, 종래의 크기 지시자를 보유하기 때문에, 테이블 섹션이 호환될 수 있다.
상기와 관련된 MPEG 표준 크기 지시자는 크기 지시자 이후의 섹션의 나머지 바이트수에 관한 섹션 크기를 지정하는 것을 이해할 것이다. 그러나, 섹션 또는 데이터부의 크기의 다른 측도가 본 발명의 범위내에 포함된다.
특히, 보다 복잡한 데이터 구조를 얻기 위해, 바람직하게는, 데이터부는 복 수의 데이터 블록을 포함하고, 각 데이터 블록은 각각 하나의 상기 추가 크기 지시자를 포함한다.
본 발명의 다른 측면에 의하면, 데이터부를 포함하는 MPEG 개인 테이블 섹션용 데이터 구조가 제공되며, 상기 데이터부는 복수의 데이터 블록을 포함하고, 각 블록은 개개의 블록의 크기 측도를 지정하는 크기 지시자를 포함한다.
바람직하게는, 상기 구조는 블록 리스트를 더 포함한다.
이것은 보다 복잡한 데이터 구조를 허용할 수 있다. 리스트는 블록을 포함하지 않거나, 하나의 블록 또는 복수(또는 다중)의 블록을 포함할 수 있다.
바람직하게는, 상기 리스트는 상기 리스트에 상기 블록의 전체 크기 측도를 지정하는 리스트 지시자를 포함시킨다. 이것은 데이터 구조가 파싱될 수 있도록 할 수 있다. 상기 리스트 지시자는, 예를 들어 적절한 블록 수 또는 그들 전체 길이를 지정할 수 있다.
보다 복잡한 데이터 구조를 위해, 바람직하게는, 상기 구조는 복수의 리스트를 포함한다.
바람직하게는, 상기 구조는 상기 복수의 리스트에 공통된 데이터를 갖는 적어도 하나의 블록을 더 포함한다. 이것은 데이터 구조의 변경을 향상시킬 수 있다.
동일한 이유로 인해, 상기 리스트에서의 상기 또는 각 블록은 특정 리스트에 특정한 데이터를 갖는다.
물론, 본 명세서에서 리스트에 대한 참조는 그 리스트가 표시되는 것에 대한 참조를 포함한다고 이해될 것이다.
바람직하게는, 상기 구조는 상기 리스트에 복수의 블록을 포함시킨다.
상기 데이터 구조에 보다 많은 기능성을 제공하기 위해, 바람직하게는, 상기 구조는 각 리스트의 내용을 나타내는 식별자를 더 포함한다.
상기 데이터 구조를 보다 용이하게 파싱하기 위해, 상기 크기 지시자는 상기 블록의 헤더부에 위치된다.
바람직하게는, 적어도 하나의 상기 블록은 그 내용을 나타내는 플래그를 포함한다.
따라서, 요구된 데이터를 갖는 블록이 검색되거나 필터링될 수 있다. 필요에 따라, 태크는 블록 내용에 관련된 어떤 정보를 포함할 수 있다.
MPEG 개인 테이블용 데이터 구조의 바람직한 실시예는 상기에서 설명된 바와 같은 구조만을 포함한다.
MPEG 개인 테이블용 데이터 구조의 대안적인 실시예는 상기에서 설명된 바와 같은 복수의 구조를 포함한다.
따라서, 2가지 일반적인 데이터 구조가 정의될 수 있고, 각 데이터 구조는 단일 전체 구조(single overall structure)를 가질 수 있다. 이 2가지 일반적인 구조는 상황에 따라 사용될 수 있다.
바람직하게는, 상기 구조는 MPEG 표준 헤더와 추가 헤더를 포함한다.
바람직하게는, 상기 추가 헤더는 데이터의 변환 상태를 나타내는 플래그를 포함한다. 예를 들면, 플래그는 데이터의 압축 또는 암호화 상태를 나타낼 수 있다.
대안적으로 또는 부가적으로, 추가 헤더는 데이터부에 적용된 변환 형태를 나타내는 플래그를 포함할 수 있다.
본 발명의 또 다른 측면은 MPEG 개인 테이블을 조합하는 방법을 제공하며, 상기 방법은 데이터부를 제공하는 단계; 및 상기 데이터부의 변환 상태 또는 형태를 나타내는 플래그를 추가하는 단계를 포함한다.
상기에서 설명된 플래그는 변환 상태 또는 형태를 결정하기 위해 후속 프로세서(예를 들어, 리시버/디코더)에서 사용될 수 있다. 예를 들어, 플래그는 압축된 테이블과 압축되지 않은 테이블을 구별하거나, 암호화된 테이블과 암호화되지 않는 테이블을 구별하는데 사용될 수 있다. 또한, 플래그를 사용하는 것은 몇가지 다른 변환 알고리즘이 사용될 수 있게 한다. 이것은 보다 큰 유연성, 예를 들어 다른 알고리즘이 상이한 종류의 데이터에 사용될 수 있게 하는 유연성을 야기한다.
바람직하게는, 데이터부는 압축 또는 암호화 등의 변환이 이루어진다. 바람직하게는, 표준 헤더 및 추가 헤더는 압축되지 않고 암호화되지 않는다. 이것은 현존하는 시스템 하드웨어 및 소프트웨어에 호환성을 보증할 수 있다.
바람직하게는, 상기 추가 헤더는 필터 지시자 및/또는 파서 형태를 지정하는 필드 및/또는 개인 테이블 섹션이 처리될 우선순위를 지정하는 필드를 포함한다. 전형적으로, 파서 형태 필드는 추가 헤더의 제 1 필드에 있다.
본 발명의 다른 측면에 의하면, MPEG 개인 테이블 섹션용 데이터 구조가 제공되며, 상기 데이터 구조는 MPEG 표준 헤더, 추가 헤더 및 데이터부를 포함한다.
MPEG 표준의 존재는 현존하는 개인 테이블 섹션에 호환성을 허용하지만, 추 가 헤더의 존재는 추가 기능을 테이블 섹션에 조합시킬 수 있게 한다.
바람직하게는, 추가 헤더는 데이터부에 적용된 변환 상태 또는 형태를 나타내는 플래그를 포함한다.
바람직하게는, 추가 헤더는 데이터의 압축 상태를 나타내는 플래그를 포함한다. 따라서, 보다 작은 대역폭이 필요로 될 수 있다. 바람직하게는, 상기 표준 헤더 및 추가 헤더는 압축된 형태로 되지 않는다.
또한, 추가 헤더는 데이터의 암호화 상태를 나타내는 플래그를 포함할 수 있다. 따라서, 개인 테이블 섹션은 암호화 코드를 갖는 그들에 의해서만 판독될 수 있다. 바람직하게는, 상기 표준 헤더 및 추가 헤더는 암호화된 형태로 되지 않는다.
바람직하게는, 추가 헤더는 필터 지시자도 포함한다. 따라서, 향상된 기능이 데이터 필터링에 제공될 수 있다.
바람직하게는, 상기 추가 헤더는 파서 형태를 지정하는 필드를 포함한다. 이것은 보다 큰 유용성을 제공할 수 있다.
용이하게 파싱하기 위해, 파서 형태 필드는 추가 헤더의 제 1 필드에 있다.
더욱이, 추가 기능을 위해, 추가 헤더는 개인 테이블 섹션이 처리되는 우선순위를 지정하는 필드를 포함한다. 예를 들면, 몇개의 동종 테이블이 동시에 수신되면, 우선순위 필드는 처리될 순위를 결정하는데 사용될 수 있다.
본 발명의 다른 측면은 데이터부를 포함하는 MPEG 개인 테이블에 변환을 행하는 방법을 제공하며, 상기 방법은 상기 데이터부를 압축하여, 변환된 데이터부를 형성하는 단계를 포함한다.
본 발명의 다른 측면은 데이터부를 포함하는 MPEG 개인 테이블에 변환을 행하는 방법을 제공하며, 상기 방법은 상기 데이터부를 압축해제하여, 변환된 데이터부를 형성하는 단계를 포함한다.
본 발명의 다른 측면은 데이터부를 포함하는 MPEG 개인 테이블에 변환을 행하는 방법을 제공하며, 상기 방법은 상기 데이터부를 암호화하여, 변환된 데이터부를 형성하는 단계를 포함한다.
본 발명의 다른 측면은 데이터부를 포함하는 MPEG 개인 테이블에 변환을 행하는 방법을 제공하며, 상기 방법은 상기 데이터부를 복호화하여, 변환된 데이터부를 형성하는 단계를 포함한다.
바람직하게는, 상기 방법은 상기 변환 데이터부에 행해진 변환 상태 또는 형태를 나타내는 플래그를 추가하는 단계를 더 포함한다.
본 발명의 다른 측면은 복수의 데이터 블록에 변환을 행하는 방법을 제공하며, 상기 방법은 상기 데이터 블록을 조합하여 중간 블록을 형성하는 단계; 및 상기 중간 블록에 변환을 행하는 단계를 포함하여, 변환된 블록을 형성한다.
각 데이터 블록을 독립적으로 그리고 개별적으로 변환하는 것 대신에, 본 발명의 측면에 의하면, 상기 데이터 블록은 중간 블록 형태로 벌크로 처리된다. 이것은 처리 부하를 저감시킨다. 통상적인 변환 처리의 예는 압축, 압축해제, 암호화 및 복호화이다.
바람직하게는, 상기 변환은 블록을 복수의 서브 블록으로 분할하는 단계; 및 상기 데이터의 변환 상태 및/또는 형태를 나타내는 플래그를 각 서브 블록에 선택적으로 추가하는 단계를 포함한다.
변환된 블록은 수신자로 전송 및/또는 송신기로부터 수신될 수 있다.
전형적으로, 상기 방법은 상기 변환된 블록에 추가 변환: 전형적으로 상기 변환의 역변환을 행하는 단계를 포함한다.
전형적으로 상기 추가 변환을 행하는 단계는 상기 서브 블록을 조합하여 추가 중간 블록을 형성하는 단계; 및 상기 추가 중간 블록에 상기 추가 변환을 행하는 단계를 포함한다.
표준 헤더는 각 서브 블록에 추가될 수 있다.
전형적으로, 조합 단계는 각 데이터 블록의 크기를 지정하는 중간 블록 크기 지정자에 포함하는 단계를 포함한다. 이것은 데이터 블록이 후속 처리 단계에서 상기 중간 블록으로부터 추출될 수 있게 한다. 각 지시자는 각 데이터 블록에 선행할 수 있거나, 일부 다른 방법으로 각 데이터 블록과 연관될 수 있다.
대안적으로, 변환된 블록에서의 크기 지시자는 블록이 어떻게 서브 블록으로 분할되어야 하는지를 결정하기 위해 검사될 수 있다. 이것은 이전 데이터 블록 구조가 재생될 수 있게 한다.
상기 변환은 압축, 압축해제, 암호화 또는 복호화일 수 있다.
전형적으로, 상기 복수의 데이터 블록은 MPEG 개인 테이블의 데이터부이다.
전형적으로, 변환된 블록은 변환된 MPEG 개인 테이블의 일부를 형성하는데 사용될 수도 있다.
전형적으로, MPEG 개인 테이블은 복수의 테이블 섹션을 포함하고, 각 테이블 섹션은 표준 헤더와 데이터부를 포함하며, 변환된 MPEG 개인 테이블은 복수의 테이블 섹션을 포함하고, 각 테이블 섹션은 변환된 블록에 의해 제공된 표준 헤더 및 변환된 데이터부를 포함한다.
변환된 MPEG 개인 테이블에서 적어도 헤더 일부는 MPEG 개인 테이블에 있는 표준 헤더 일부와 실질적으로 동일하게 될 수 있다.
상기 방법은 변환 형태 및/또는 상태를 지정하는 변환된 MPEG 개인 테이블에 값을 포함시키는 단계를 더 포함할 수 있다.
바람직하게는, 상기 방법은 상기 데이터의 의도적 수용자인 리시버/디코더 또는 리시버/디코더 그룹을 식별하는 타겟 정보를 추가하는 단계를 포함한다.
타겟 정보는, 예를 들어 식별된 리시버/디코더의 스마트카드 번호를 열람함으로써 특정 리시버/디코더 또는 리시버/디코더 그룹을 직접 식별할 수 있다. 대안적으로, 타겟 정보는 일부 다른 방법으로, 예를 들어 소프트웨어 또는 하드웨어 플랫폼을 식별함으로써 리시버/디코더(들)를 식별할 수 있다.
본 발명의 다른 측면은 복수의 압축된 데이터 블록을 포함하는 데이터 구조를 제공하며, 상기 압축된 데이터 블록은 복수의 압축해제된 데이터 블록을 제공하기 위해 압축해제될 수 있으며, 각 압축해제된 데이터 블록은 데이터부와 상기 데이터부의 크기를 지정하는 크기 지시자를 포함한다.
전형적으로, 압축해제된 데이터 블록수는 압축된 데이터 블록수보다 크다. 이것은 처리 부하를 감소시킨다.
전형적으로, 상기 데이터 구조는 각 압축된 데이터 블록과 연관된 헤더를 더 포함한다.
본 발명의 다른 측면은 복수의 암호된 데이터 블록을 포함하는 데이터 구조를 제공하며, 상기 암호된 데이터 블록은 복수의 복호화된 데이터 블록을 제공하기 위해 복호화될 수 있고, 각 복호화된 데이터 블록은 데이터부와, 상기 데이터부의 크기를 지정하는 크기 지시자를 포함한다.
전형적으로, 상기 데이터 구조는 각 복호화된 데이터 블록과 연관된 헤더를 더 포함한다.
전형적으로, 헤더는 표준 MPEG 헤더이다.
본 발명의 다른 측면은 압축된 MPEG 개인 테이블 섹션 및/또는 압축된 MPEG 개인 테이블을 제공한다. 표준 MPEG 개인 테이블의 압축은 저장 공간과 대역폭을 절약한다.
본 발명의 다른 측면은 암호된 MPEG 개인 테이블 섹션 및/또는 암호된 MPEG 개인 테이블을 제공한다.
본 발명의 다른 측면은 타겟 정보를 포함하는 MPEG 개인 테이블 섹션 또는 MPEG 개인 테이블을 제공하며, 상기 타겟 정보는 상기 MPEG 개인 테이블 섹션의 의도적 수용자인 리시버/디코더 또는 리시버/디코더 그룹을 식별한다.
타겟 정보는, 예를 들어 식별된 리시버/디코더의 스마트카드 번호를 열람함으로써, 특정 리시버/디코더 또는 리시버/디코더 그룹을 직접 식별할 수 있다. 대안적으로, 상기 타겟 정보는 일부 다른 방법으로, 예를 들어 소프트웨어 또는 하드 웨어 플랫폼을 식별함으로써 리시버/디코더를 식별할 수 있다.
본 발명의 다른 측면은 MPEG 개인 테이블 섹션을 조합하는 방법을 제공하며, 상기 방법은 상기 MPEG 개인 테이블 섹션의 의도적 수용자인 리시버/디코더 또는 리시버/디코더 그룹을 식별하는 타켓 정보를 삽입하는 단계를 포함한다.
본 발명의 다른 측면은 MPEG 개인 테이블을 조합하는 장치를 제공하며, 상기 장치는 변환이 이루어진 변환된 데이터부를 제공하는 수단; 및 변환 형태를 나타내는 플래그를 추가하는 수단을 포함한다.
본 발명의 다른 측면은 데이터부를 포함하는 MPEG 개인 테이블에 변환을 행하는 장치를 제공하며, 상기 장치는 상기 데이터부를 압축, 압축해제, 암호화 및/또는 복호화하는 수단을 포함하여, 변환된 데이터부를 형성한다.
본 발명의 다른 측면은 복수의 데이터 블록에 변환을 행하는 장치를 제공하며, 상기 장치는 상기 데이터 블록을 조합하여 중간 블록을 형성하는 수단; 및 상기 중간 블록에 변환을 행하는 수단을 포함하여, 변환된 블록을 형성한다.
본 발명의 다른 측면은 MPEG 개인 테이블 섹션을 조합하는 장치를 제공하며, 상기 장치는 상기 MPEG 개인 테이블 섹션의 의도적 수용자인 리시버/디코더 또는 리시버/디코더 그룹을 식별하는 타겟 정보를 삽입하는 수단을 포함한다.
본 발명의 다른 측면에 의하면, 데이터부를 포함하는 MPEG 개인 테이블 섹션을 파싱하는 파서가 제공되며, 상기 파서는 상기 섹션 또는 상기 데이터부의 크기 측도를 지정하는 크기 지시자를 포함하는 포맷으로 데이터를 파싱하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 포함하고, 상기 데이터부는 적어 도 하나의 데이터 블록을 포함하고, 상기 또는 각 블록은 그 블록의 크기 측도를 지정하는 추가 크기 지시자를 포함한다.
바람직하게는, 상기 파서는 상기 데이터부가 복수의 데이터 블록을 포함하는 포맷으로 데이터를 파싱하도록 만들어지며, 각 블록은 각각 하나의 상기 추가 크기 지시자를 포함한다.
본 발명의 다른 측면에 의하면, 데이터부를 포함하는 MPEG 개인 테이블 섹션을 파싱하는 파서가 제공되며, 상기 데이터부는 복수의 데이터 블록을 포함하고, 각 블록은 각 블록의 크기 측도를 지정하는 크기 지시자를 포함한다.
바람직하게는, 상기 파서는 블록 리스트를 더 포함하는 포맷으로 데이터를 파싱하도록 만들어진다.
바람직하게는, 상기 파서는 상기 리스트가 상기 리스트에 있는 블록의 전체 크기 측도를 지정하는 리스트 지시자를 포함하는 포맷으로 데이터를 파싱하도록 만들어진다.
바람직하게는, 상기 파서는 복수의 리스트를 포함하는 포맷으로 데이터를 파싱하도록 만들어진다.
바람직하게는, 상기 파서는 상기 복수의 리스트에 공통된 데이터를 갖는 적어도 하나의 블록을 더 포함하는 포맷으로 데이터를 파싱하도록 만들어진다.
바람직하게는, 상기 파서는 상기 리스트에서의 각 블록이 특정 리스트에 특정한 데이터를 갖는 포맷으로 데이터를 파싱하도록 만들어진다.
바람직하게는, 상기 파서는 상기 특정 데이터가 상기 공통된 데이터에 우선 하는 방법으로 데이터를 파싱하도록 만들어진다.
바람직하게는, 상기 파서는 상기 리스트에 복수의 블록을 포함시키는 포맷으로 데이터를 파싱하도록 만들어진다.
바람직하게는, 상기 파서는 각 리스트의 내용을 나타내는 식별자를 더 포함하는 포맷으로 데이터를 파싱하도록 만들어진다.
바람직하게는, 상기 파서는 상기 크기 지시자가 상기 블록의 헤더부에 위치되는 포맷으로 데이터를 파싱하도록 만들어진다.
바람직하게는, 상기 파서는 상기 적어도 하나의 블록이 그 내용을 나타내는 태그를 포함하는 포맷으로 데이터를 파싱하도록 만들어진다.
바람직하게는, 상기 파서는 하나의 MPEG 섹션만을 포함하는 포맷으로 데이터를 파싱하도록 만들어진다.
대안적으로, 상기 파서는 복수의 MPEG 섹션을 포함하는 포맷으로 데이터를 파싱하도록 만들어진다.
바람직하게는, 상기 파서는 MPEG 표준 헤더와 추가 헤더를 포함하는 포맷으로 데이터를 파싱하도록 만들어진다.
본 발명의 다른 측면에 의하면, MPEG 개인 테이블 섹션을 파싱하는 파서가 제공되며, 상기 파서는 MPEG 표준 헤더, 추가 헤더 및 데이터부를 포함하는 포맷으로 데이터를 파싱하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 포함한다.
바람직하게는, 상기 파서는 상기 추가 헤더가 상기 데이터부의 변환 상태 또 는 형태를 나타내는 플래그를 포함하는 포맷으로 데이터를 파싱한다.
바람직하게는, 상기 파서는 상기 추가 헤더가 상기 데이터의 압축 상태를 나타내는 플래그를 포함하는 포맷으로 데이터를 파싱한다.
바람직하게는, 상기 파서는 상기 추가 헤더가 상기 데이터의 암호화 상태를 나타내는 플래그를 포함하는 포맷으로 데이터를 파싱한다.
바람직하게는, 상기 파서는 상기 추가 헤더가 필터 지시자를 포함하는 포맷으로 데이터를 파싱한다.
바람직하게는, 상기 파서는 상기 추가 헤더가 파서 형태를 지정하는 필드를 포함하는 포맷으로 데이터를 파싱한다.
바람직하게는, 상기 파서는 상기 파서 형태 필드가 상기 추가 헤더의 제 1 필드에 있는 포맷으로 데이터를 파싱한다.
바람직하게는, 상기 파서는 상기 추가 헤더가, 상기 개인 테이블 섹션이 처리될 우선순위를 지정하는 필드를 포함하는 포맷으로 데이터를 파싱한다.
본 발명의 다른 측면에 의하면, MPEG 표준 헤더와 데이터부를 포함하는 MPEG 개인 테이블 섹션을 파싱하는 파서가 제공되며, 상기 MPEG 표준 헤더는 TID 확장 픽드를 포함하고, 상기 파서는 상기 TID 확장 필드의 값을 출력하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 포함한다. 이전에, TID 확장 필드는 무시되었다.
본 발명의 다른 측면에 의하면, 데이터를 처리하는 장치가 제공되며, 상기 장치는 주어진 포맷과 데이터 간의 데이터를 본 명세서 설명된 바와 같은 데이터 구조의 포맷으로 전환하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태로)을 포함한다.
본 발명의 다른 측면에 의하면, MPEG 개인 테이블을 조합하는 장치가 제공되며, 상기 장치는 데이터부를 제공하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태); 및 상기 데이터부의 변환 상태 또는 형태를 나타내는 플래그를 추가하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 포함한다.
바람직하게는, 상기 데이터부는 변환이 이루어진 변환된 데이터부이다.
본 발명의 다른 측면에 의하면, 데이터부를 포함하는 MPEG 개인 테이블에 변환을 행하는 장치가 제공되며, 상기 장치는 상기 데이터부를 압축, 압축해제, 암호화 또는 복호화하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 포함하여, 변환된 데이터부를 형성한다.
바람직하게는, 상기 장치는 상기 변환된 데이터부의 변환 상태를 나타내는 플래그를 추가하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 더 포함한다.
바람직하게는, 상기 장치는 상기 데이터부에 행해진 변환 형태를 나타내는 플래그를 추가하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 더 포함한다.
본 발명의 다른 측면에 의하면, 복수의 데이터 블록에 변환을 행하는 장치가 제공되며, 상기 장치는 상기 데이터 블록을 조합하여 중간 블록을 형성하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태); 및 상기 중간 블록에 변환을 행하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 포함하여, 변환된 블록을 형성한다.
바람직하게는, 상기 수행 수단은 블록을 복수의 서브 블록으로 분할하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 포함한다.
바람직하게는, 상기 장치는 상기 데이터의 변환 상태를 나타내는 플래그를 서브 블록에 추가하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 더 포함한다.
바람직하게는, 상기 장치는 변환 형태를 나타내는 플래그를 서브 블록에 추가하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 더 포함한다.
바람직하게는, 상기 장치는 상기 변환된 블록을 수신자로 전송하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 더 포함한다.
바람직하게는, 상기 장치는 상기 변환된 블록을 수신하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 더 포함한다.
바람직하게는, 상기 장치는 상기 변환된 블록에 추가 변환을 행하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 더 포함한다.
바람직하게는, 상기 추가 변환은 상기 변환의 역변환이다.
바람직하게는, 상기 장치는 상기 서브 블록을 조합하여 추가 중간 블록을 형성하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태); 및 상기 추가 중간 블록에 추가 변환을 행하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 더 포함한다.
바람직하게는, 상기 장치는 표준 헤더를 각 서브 블록에 추가하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 더 포함한다.
바람직하게는, 상기 장치는 각 데이터 블록을 지정하는 상기 중간 블록 크기에 포함시키는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 더 포함한다.
바람직하게는, 상기 장치는 상기 블록이 서브 블록으로 어떻게 분할되는지를 결정하기 위해 블록에 있는 크기 지시자를 검사하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 더 포함한다.
바람직하게는, 상기 변환은 압축, 압축해제, 암호화 또는 복호화이다.
바람직하게는, 상기 복수의 데이터 블록은 MPEG 개인 테이블의 데이터부이다.
바람직하게는, 상기 장치는 상기 변환된 블록에 의해 제공된 적어도 하나의 변환된 데이터부를 갖는 변환된 MPEG 개인 테이블을 형성하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 더 포함한다.
바람직하게는, 상기 장치는 변환 형태를 지정하는 상기 변환된 MPEG 개인 테이블에 값을 포함시키는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 더 포함한다.
바람직하게는, 상기 장치는 상기 변환된 데이터부의 변환 상태를 지정하는 상기 변환된 MPEG 개인 테이블에 값을 포함시키는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 더 포함한다.
바람직하게는, 상기에서 설명된 바와 같은 파서를 포함하는 리시버/디코더가 제공된다. 그러나, 본 발명은 리시버/디코더로 한정되지 않고, 예를 들어 PC로 실시될 수 있다.
상기 데이터는 방송 스트림으로 전송될 수 있다. 그리고, 상기 데이터는 방송 스트림으로부터 수신자 종단에서 추출될 수 있다.
바람직한 실시예에 있어서, 상기 방법은 디지털 방송 센터 및 복수의 리시버/디코더를 포함하는 시스템에 이용된다.
그리고, 상기 데이터는 다양한 작업에 이용될 수 있다. 예를 들면, 상기 데이터는 리시버/디코더의 기능을 제어하는 동작 통지 데이터를 포함할 수 있다. 대안적으로, 상기 데이터는 조건부 접근 시스템으로의 접근을 얻기 위해 리시버/디코더에서 사용되는 키 데이터를 포함할 수 있다.
대안적으로, 상기 데이터는 주문형 시스템(video-on-demand system)에 사용되는 프로그램 정보를 포함할 수 있다.
바람직하게는, 상기 데이터부 또는 블록은 주어진 카테고리의 적어도 하나의 애샛(asset)용 프로그램 정보를 포함하고, 상기 데이터부 또는 블록은 상기 카테고리를 식별하는 카테고리 식별자를 포함하는 필터 지시자에 의해 수반된다. 바람직하게는, 애셋은 텔레비전 프로그램 또는 주문형 시스템을 통해 이용 가능한 다른 제공(offering)이며, 애셋은 바람직하게는 그들의 내용, 예를 들어 스포츠 카테고리, 필름 카테고리 등에 따라 분류된다. 또한, 서브 카테고리일 수 있다. 이와 같이, 필터링은 소망하는 카테고리에서의 애셋 정보가 보다 용이하게 복원될 수 있도 록 카테고리 식별자에 의해 행해질 수 있다.
대안적으로 또는 추가적으로, 상기 데이터부 또는 블록은 애셋용 프로그램 정보를 포함하고, 상기 데이터부 또는 블록은 상기 애셋을 식별하는 애셋 식별자를 포함하는 필터 지시자에 의해 수반된다. 이것은 특정 애셋의 정보가 보다 용이하게 복원될 수 있게 한다.
바람직하게는, 상기 필터 지시자는 MPEG 테이블 섹션의 TID 확장 필드이다. 다수의 리시버/디코더가 TID 확장 필드를 포함하는 다수의 헤더 필드에 따라 MPEG 테이블 섹션을 필터링하는 편리함을 제공하기 때문에, 그리고 이러한 편리함이 때때로 하드웨어로 제공되기 때문에, 정보는 TID 확장 필드가 상기 방법으로 사용될 때 상기 디코더에 의해 보다 용이하고 빠르게 복원될 수 있다.
바람직하게는, 상기 리시버/디코더는 상기 TID 확장 필드의 값을 수신하여, 상기 값을 처리하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 포함한다.
바람직하게는, 상기 수신 및 처리 수단은 리시버/디코더의 사용에 대한 통지로서 상기 값을 처리한다.
바람직하게는, 상기 수신 및 처리 수단은 상기 리시버/디코더에 의해 수신된 내용에 관한 데이터로서 상기 값을 처리한다.
바람직하게는, 상기에서 설명된 바와 같은, 또는 상기에서 설명된 바와 같이 조합, 처리 또는 변환된 데이터 구조의 데이터를 수신 및/또는 디코딩하는 리시버/디코더가 제공된다.
송신기는 상기에서 설명된 바와 같은, 또는 상기에서 설명된 바와 같이 조합, 처리 또는 변환된 데이터 구조의 데이터를 전송한다.
상기에서 설명된 리시버/디코더와 송신기를 결합한 방송 시스템이 제공된다.
바람직하게는, 방송 시스템에서의 데이터는 조건부 접근 데이터이고, 상기 시스템은 독립된 채널에서 상기 데이터를 전송 및 수신하도록 만들어진다.
또한, 주어진 포맷과 데이터 간의 데이터를 상기에서 설명된 바와 같은 데이터 구조의 포맷으로 변환하는 단계를 포함하는 데이터 처리 방법이 제공된다. 상기 주어진 포맷은 상기와 같은 데이터 구조의 포맷으로부터 데이터를 전환하는데 요구될 수 있는 모든 포맷일 수 있다.
본 발명의 다른 측면에 의하면, MPEG 개인 테이블을 전송하는 방법이 제공되며, 상기 방법은 본 명세서에서 설명된 바와 같은 방법을 사용하여 상기 MPEG 개인 테이블에 변환을 행하는 단계; 및 상기 변환 테이블을 전송하는 단계를 포함한다.
본 발명의 다른 측면은 MPEG 개인 테이블을 수신하는 방법을 제공하며, 상기 방법은 상기 MPEG 개인 테이블을 수신하는 단계; 및 본 명세서에서 설명된 바와 같은 방법을 사용하여 상기 수신된 테이블에 변환을 행하는 단계를 포함한다.
바람직하게는, 상기 데이터부 또는 블록은 상기 리시버/디코더에 의해 수신하고, 상기 리시버/디코더의 기능을 제어하기 위한 동작 통지 데이터(action notification data)를 포함한다.
바람직하게는, 상기 데이터부 또는 블록은 주문형 비디오 시스템에 사용하기 위한 프로그램 정보를 포함한다.
바람직하게는, 상기 데이터부 또는 블록은 주어진 카테고리의 적어도 하나의 애셋용 프로그램 정보를 포함하며, 상기 데이터부 또는 블록은 상기 카테고리를 식별하는 카테고리 식별자를 포함하는 필터 지시자에 의해 수반된다.
바람직하게는, 상기 데이터부 또는 블록은 애셋용 프로그램 정보를 포함하고, 상기 데이터부 또는 블록은 상기 애셋을 식별하는 애셋 식별자를 포함하는 필터 지시자에 의해 수반된다.
바람직하게는, 상기 필터 지시자는 MPEG 테이블 섹션의 TID 확장 필드이다.
바람직하게는, 상기 데이터부 또는 블록은 조건부 접근 시스템으로의 접근을 얻기 위해 리시버/디코더에서 사용되는 키 데이터를 포함한다.
본 발명의 다른 측면은 본 명세서에서 설명된 바와 같은 MPEG 개인 테이블 또는 테이블 섹션을 파싱하거나, 본 명세서에서 설명된 바와 같은 데이터 구조를 갖는 데이터를 파싱하거나, 본 명세서에서 설명된 바와 같은 방법에 의해 처리, 조합 또는 변환된 데이터를 파싱하는 수단(예를 들어, 연관된 메모리를 갖는 프로세서의 형태)을 포함하는 파서를 제공한다.
본 발명의 다른 측면은 본 명세서에서 설명된 바와 같은 MPEG 개인 테이블 또는 테이블 섹션을 전송하거나, 본 명세서에서 설명된 바와 같은 방법에 의해 처리, 조합 또는 변환되는 송신기를 제공한다.
본 발명의 다른 측면은 본 명세서에서 설명된 바와 같은 방법을 행해난 파서를 제공한다.
또한, 본 발명은 실질적으로 첨부된 도면을 참조하여 본 명세서에서 설명된 바와 같은 방법과, 실질적으로 첨부된 도면을 참조하여 본 명세서에서 설명된 바와 같은 장치를 제공한다.
본 발명은 상기에서 설명된 바와 같은 방법을 행하는 컴퓨터 프로그램 제품으로 확장된다.
본 발명은 상기에서 설명된 바와 같은 파서 또는 장치를 이용하는 컴퓨터 판독 가능 매체로 확장된다.
본 발명은 상기에서 설명된 바와 같은 파서 또는 장치를 이용하는 신호로 확장된다.
또한, 본 발명은 본 명세서에서 설명된 모든 방법을 실행 및/또는 본 명세서에서 설명된 모든 장치 특성을 이용하는 컴퓨터 프로그램 및 컴퓨터 프로그램 제품과, 본 명세서에서 설명된 모든 방법을 실행 및/또는 본 명세서에서 설명된 모든 장치 특성을 이용하는 프로그램을 저장하는 컴퓨터 판독가능 매체를 제공한다.
또한, 본 발명은 본 명세서에서 설명된 모든 방법을 실행하는 컴퓨터 프로그램을 이용 및/또는 본 명세서에 설명된 바와 같은 모든 장치 특성을 이용하는 신호와, 본 명세서에서 설명된 바와 같은 모든 방법을 실행 및/또는 본 명세서에서 설명된 바와 같은 모든 장치를 이용하는 컴퓨터 프로그램을 지원하는 운용체제를 갖는 컴퓨터 제품을 제공한다.
하드웨어에 구현된 특징들은 일반적으로 소프트웨어로 구현될 수 있으며, 그 역도 가능하다. 여기서의 소프트웨어와 하드웨어 특징들에 대한 어떠한 언급도 그에 따라 해석되어야 한다.
하나의 측면의 특징은 적절하게 조합하여 본 발명의 다른 측면에 적용될 수 있고, 그 역도 또한 성립한다. 특히, 방법 측면은 장치 측면에 적용될 수 있고 그 역도 가능하다.
이하 첨부 도면을 참조하여 본 발명의 바람직한 실시예를 단지 예로서 설명한다.
시스템의 전체 구성
디지털 텔레비전 시스템(1)의 전체 구성이 도 1에 도시된다. 본 발명은 압축된 디지털 신호를 전송하기 위하여, 알려진 MPEG-2 압축 시스템을 사용하는 통상적인 종래 디지털 텔레비전 시스템(2)을 포함한다. 보다 상세히 말하면, 방송 센터에서의 MPEG-2 압축기(3)는 디지털 신호 스트림(전형적으로, 영상 신호의 스트림)을 수신한다. 압축기(3)는 링크(5)에 의해 멀티플렉서와 스크램블러(4)에 연결된다.
멀티플렉서(4)는 복수의 추가 입력 신호들을 수신하며, 이송 스트림을 조합하여 압축된 디지털 신호들을 링크(7)를 통해 방송 센터의 송신기(6)로 전송하며, 여기서, 링크(7)는 원격 통신 링크를 포함하는 매우 다양한 형태를 취할 수 있다. 송신기(6)는 업링크(8)를 통해 위성 트랜스폰더(9)를 향하여 전자기적 신호를 전송하며, 전자기적 신호들은 위성 트랜스폰더(9)에서 전자적으로 처리되고, 관념상의 다운링크(10)를 통해 최종 사용자에 의하여 소유 또는 임대된 종래의 접시 형태의 지상 수신기(12)로 방송된다. 데이터를 전송하기 위한 다른 전송 채널, 예를 들어 지상 방송, 케이블 전송, 위성/케이블 링크 조합, 전화 네트워크 등이 물론 가능하다.
수신기(12)에 의해 수신된 신호들은 최종 사용자에 의해 소유 또는 임대된 통합 리시버/디코더(13)로 전송되며, 최종 사용자의 텔레비전 세트(14)에 연결된 다. 리시버/디코더(13)는 압축된 MPEG-2 신호를 텔레비전 세트(14)용 텔레비전 신호로 복호화한다. 비록 별개의 리시버/디코더가 도 1에 도시되었지만, 리시버/디코더는 또한 일체화된 디지털 텔레비전의 부분이 될 수 있다. 본 명세서에서 사용된 용어 "리시버/디코더"는 셋탑 박스와 같은 별개의 리시버/디코더와, 통합된 리시버/디코더를 가지는 텔레비전을 포함한다.
다중 채널 시스템에서, 멀티플렉서(4)는 다수의 패러럴(parallel) 소스로부터 수신되는 음성과 영상 정보를 처리하고, 대응하는 수의 채널을 따라 정보를 방송하기 위해 송신기(6)와 상호 작용한다. 시청각 정보외에, 메시지, 애플리케이션 또는 임의의 다른 종류의 디지털 데이터는 전송된 디지털 음성과 영상 정보가 인터레이싱(interlaced)되는 이들 채널의 일부 또는 전체에 도입될 수 있다.
조건부 접근 시스템(15)은 상기 멀티플렉서(4)와 수신기/디코더(13)에 연결되며, 부분적으로 방송 센터와 부분적으로 디코더에 위치된다. 조건부 접근 시스템(15)은 말단 이용자가 하나 이상의 방송 공급자들이 제공하는 디지털 텔레비전 방송에 접근할 수 있게 한다. 상업적인 제공과 관련된 메시지(방송 공급자들이 판매하는 텔레비전 프로그램)을 복호화할 수 있는 스마트카드는 수신기/디코더(13)에 삽입 가능하다. 수신기/디코더(13)와 스마트카드를 사용함으로써, 말단 이용자는 가입자 모드 또는 매 시청 지불(Pay-Per-View)모드로 상업적인 제공을 구매 할 수 있다.
전술한 바와 같이, 상기 시스템에 의해 전송된 프로그램은 멀티플렉서(4)에서 스크램블링되며, 소정의 전송에 적용된 조건들과 암호키는 조건부 접근 시스템(15)에 의해 결정된다. 이와 같이 스크램블링된 데이터의 전송은 유료 TV 시스템 분야에 잘 알려져 있다. 전형적으로, 스크램블링된 데이터는 디스크램블링을 위한 제어 워드와 함께 전송되며, 제어 워드 자체는 소위 '이용 키(exploitation key)'에 의해 암호화되며 암호화된 형태로 전송된다.
스크램블링된 데이터와 암호화된 제어 워드는 수신기/디코더(13)에서 수신되고, 수신기/디코더에 삽입된 스마트카드에 저장된 이용 키의 등가물에 접근함으로써 암호화된 제어 워드를 해독하고 나서 전송된 데이터를 스크램블링한다. 예를 들어, 선불 가입자는 전송 시청을 허가 받기 위해 암호화된 제어 워드를 복호화하는데 필요한 이용 키를 매달 방송되는 권한부여 관리 메시지(EMM)에서 수신한다.
대화식 시스템(16)은 멀티플렉서(4) 및 수신기/디코더(13)에 연결되며, 부분적으로 방송 센터와 부분적으로 디코더에도 설치되며, 말단 이용자가 백 채널(17)을 통해 다양한 애플리케이션과 상호 작용할 수 있게 한다. 예를 들면, 이 백 채널은 일반전화교환망(PSTN) 채널(예를 들어, 모뎀 백 채널) 또는 OOB(Out of Band) 채널일 수 있다. 모뎀 백 채널은 조건부 접근 시스템(15)에서 사용되는 통신을 위해서도 사용된다.
조건부 접근 시스템
도 2를 참조하면, 개략적으로 조건부 접근 시스템(15)은 가입자 인가 시스템(SAS: 30)을 포함한다. SAS(30)은 TCP/IP 또는 다른 종류일 수 있는 링크(34)를 통해 각 방송 공급자에 대응한 하나 이상의 가입자 관리 시스템(SMS:32)에 연결된다. 대안적으로, 하나의 SMS가 2개 방송 공급자 간에 공유될 수 있거나 하나의 방송 공급자가 2개의 SMS를 사용할 수도 있다.
"마더(mother)" 스마트 카드(38)를 이용하는 암호화 장치(36) 형태의 제 1 암호화 장치가 링크(40)를 통해 SAS(30)에 연결된다. 또한, 마더 스마트 카드(44)를 이용하는 제 2 암호화 장치(42)가 링크(46)을 통해 멀티플렉서(4)에 연결된다. 리시버/디코더(12)는 "도터(daughter)" 스마트 카드(48)를 수용한다. 리시버/디코더(13)는 통신 서버(50)와 모뎀 백 채널(17)을 통해 SAS(30)에 직접 연결된다. SAS는 요청시에 그중에서도 특히 예약 권한부여를 도터 스마트 카드(48)로 전송한다.
스마트 카드는 하나 이상의 상업적 운영자에 관련된 비밀 정보를 포함한다. "마더" 스마트 카드는 상이한 종류의 메시지를 암호화하고, "도터" 스마트 카드는 복호에 대한 권한을 갖는 경우, 암호화된 메시지를 복호화한다.
도 2를 참조하면, 방송 센터에서 디지털 비디오 신호는 우선 MPEG-2 압축기(3)를 사용하여 압축(또는 비트율 감소)된다. 이 압축된 신호는 멀티플렉서 및 스크램블러(4)로 전송되어 다른 압축된 데이터 등의 다른 데이터와 멀티플렉싱된다.
스크램블러는 스크램블링 처리에 사용되고, 멀티플렉서(4)에서 MPEG-2 스트림에 포함되는 제어 워드를 생성한다. 제어 워드는 내부적으로 생성되며, 말단 이용자의 통합 리시버/디코더(12)가 프로그램을 디스크램블링할 수 있게 한다.
프로그램이 어떻게 상용화되어 있는지를 나타내는 접근 기준도 상기 MPEG-2 스트림에 추가된다. 프로그램은 다수의 "예약 지불" 모드 및/또는 다수의 "매 시청 지불(PPV)" 모드 또는 이벤트중 어느 하나에 의해 상용화된다. 예약지불 모드에서, 말단 이용자는 하나 이상의 상업적 제공. 즉 "부케(bouquets)"를 예약하여, 부케 내에서 모든 채널을 시청할 수 있는 권한을 얻는다. 매 시청 지불 모드에서, 말단 이용자는 원하는 때 이벤트를 구입할 수 있는 권한을 제공받는다.
제어 워드(control word) 및 접근 표준(access criteria)이 사용되어 권한부여 제어 메시지(ECM)를 만들고, 이것은 하나의 스크램블링된 프로그램에 대하여 전송되는 메시지이며; 이 메시지는 (프로그램의 디스크램블링을 허용하는) 제어 워드 및 방송 프로그램의 접근 표준을 포함한다. 접근 표준 및 제어 워드는 링크(46)를 통해 제 2 암호화 장치(42)로 전송된다. 이 장치에서, ECM이 생성되고 암호화되어, 멀티플렉서 및 스크램블러(4)로 전송된다.
데이터 스트림으로 방송 공급자에 의해 방송되는 각 서비스는 다수의 독특한 구성요소(distinct component)를 포함하고; 예를 들어, 텔레비전 프로그램은 영상 구성요소, 음성 구성요소, 서브 타이틀 구성요소 등을 포함한다. 이러한 서비스 구성요소 각각은 다음 방송을 위해 개별적으로 스크램블링되고 암호화된다. 서비스의 스크램블링된 구성요소 각각에 대해, 별개의 ECM이 요구된다.
멀티플렉서(4)는 SAS(30)로부터 암호화된 EMM을 포함하는 전기적 신호와, 제 2 암호화 장치(42)로부터 암호화된 ECM, 및 압축기(3)로부터 압축된 프로그램을 수신한다. 멀티플렉서(4)는 프로그램을 스크램블링하고, 스크램블링된 프로그램과, 암호화된 EMM 및 암호화된 ECM을 전기적 신호로서 방송 센터(54)로 전송하며, 방송 센터(54)는 도 1에 나타낸 바와 같은 위성 시스템 또는 다른 방송 시스템일 수 있 다. 리시버/디코더(13)는 암호화된 EMM 및 암호화된 ECM과 함께 스크램블링된 프로그램을 얻기 위해 신호를 디멀티플렉싱한다.
리시버/디코더는 방송 신호를 수신하여 MPEG-2 데이터 스트림을 추출한다. 스크램블링된 프로그램이면, 리시버/디코더(13)는 MPEG-2 데이터 스트림으로부터 해당 ECM을 추출하여, ECM을 말단 이용자의 "도터" 스마트 카드(48)로 전달한다. 이것은 리섭/디코더(12) 내에 있는 하우징에 내장되어 있다. 도터 스마트 카드(48)는 말단 이용자가 ECM을 복호화하여 프로그램에 접근하기 위한 권한을 갖고 있는지를 제어한다. 그렇지 않으면, 거부 상태(negative state)가 리시버/디코더(13)로 전달되어, 프로그램이 디스크램블링될 수 없음을 표시한다. 말단 이용자가 권한을 갖고 있다면, ECM이 복호화되어, 제어워드가 추출된다. 그리고, 디코더(13)는 이 제어워드를 사용하여 프로그램을 디스크램블링할 수 있게 된다. MPEG-2 스트림이 압축해제되고, 영상 신호로 변환되어, 텔레비전 세트(14)로 전송된다.
프로그램이 스크램블링되지 않으면, ECM이 MPEG-2 스트림과 함께 전달되지 않고, 리시버/디코더(13)는 데이터를 압축해제하고, 신호를 영상 신호로 변환하여, 텔레비전 세트(14)로 전송한다.
가입자 관리 시스템(SMS: 32)은 그중에서도 특히, 전체 말단 이용자 파일, (관세 및 판촉 상품과 같은) 상업적 제공, 예약시청, PPV 항목 그리고 말단 이용자 소비 및 허가에 관련된 데이터를 관리하는 데이터베이스(52)를 포함한다. SMS(32)는 SAS(30)로부터 물리적으로 떨어져 있을 수 있다.
SMS(32)는 메시지를 SAS(30)로 전달하고, 상기 메시지는 말단 이용자에게 전 송될 권한부여 관리 메시지(EMM)의 변형물 또는 생성물을 포함한다. SMS(32)는 메시지를 SAS(21)로도 전송하고, 상기 메시지는 EMM의 어떠한 변형물 또는 생성물을 포함하지 않고 단지 말단 이용자 상태(프로그램을 주문할 때 말단 이용자에게 허여되는 허가 또는 말단 이용자가 지불하게 될 금액에 관한 사항)의 변화만을 포함한다. 또한, SAS(30)는 메시지(통상 콜백(call-back) 정보 또는 청구내역 정보와 같은 필요 정보)를 SMS(32)로 전송하여, 양자는 양방향 통신을 행한다.
권한부여 관리 메세지(EMM)
단지 하나의 스크램블링된 프로그램 또는 동일한 상업적 제공하에서 스크램블링된 프로그램들 세트로 제공되는 ECM과 비교할 때, EMM은 개별 말단 이용자(가입자) 또는 말단 이용자 그룹에 제공되는 메시지이다.
다양한 특정 형태의 EMM이 가능하다. 개별 EMM은 개별 가입자에게 제공되고, 통상 매 시청 지불 서비스의 제공에 사용되며, 개별 EMM은 그룹 식별자 및 그 그룹에 있는 가입자의 지위를 포함한다. 소위 "그룹" 서브스크립션 EMM은 예를 들어 256명의 그룹에 제공되며, 전형적으로 일부 서브스크립션 서비스의 관리를 위해 사용된다. 시청자 EMM은 전체 시청자에게 제공된다. "시청자"는 동일한 운영자 식별자(OPI)를 제공하는 스마트카드를 갖는 가입자 전체이다. 마지막으로, "고유" EMM은 스마트 카드 고유의 식별자라고 말할 수 있다.
바람직한 실시예에서 사용되는 EMM의 일반적인 구조를 도 3을 참고하여 이하 설명한다. 기본적으로, 일련의 디지털 데이터 비트로 구성되는 EMM은 헤더(60), EMM 자체(62), 및 서명(64)을 포함한다. 헤더(60)은 차례대로 EMM의 형태를 식별하기 위한 형식 식별자(66), EMM의 길이를 나타내는 길이 식별자(68), EMM에 대한 선택 어드레스(70), 운영자 식별자(72), 및 키 식별자(74)를 포함한다. 마지막으로, 선택사항인 서명(64)는 EMM에 있는 나머지 데이터의 손상을 검사하기 다수의 검사 비트를 제공한다. 헤더에서 형식 식별자(66)는 메시지를 EMM으로 식별한다.
가입자 인가 시스템(SAS)
SMS(32)에 의해 생성된 메시지는 링크(23)를 통해 가입자 인가 시스템(SAS: 30)으로 전송되고, SAS(30)는 SMS에 의해 생성된 메시지의 수신을 확인하는 메시지를 생성하여 이들 확인응답을 SMS(32)로 전달한다. SAS로 전달될 수 있는 메시지는 미납입 등에 의한 가입자 정지, 어떤 상업자 제공을 추가 또는 제거하기 위한 것 등의 가입자 변경, 및 PPV 모드의 특정 이벤트용 등의 제공 권리를 포함한다.
SAS(30)는 SMS(32)에 의해 승인된 모든 가입자의 상태를 저장하는 데이터베이스를 관리한다. SMS에 의해 전송된 상태와 다양한 메시지에 따라, SAS는 가입자의 스마트 카드에 대한 EMM을 생성한다. EMM은 SAS 암호화 장치(36)에 의해 암호화되고 나서 멀티플렉서(4)로 전송된다. EMM이 가입자에게 수신되는 것을 보증하기 위해, SAS는 EMM을 주기적으로 전송한다. 전송 주기는 EMM의 형태에 의존하지만 통상 30초에서 30분 사이이다.
SAS(30)의 전형적인 구성이 도 4에 도시된다. 개략적으로, SAS(30)는 서브스크립션 모드에 대한 권리을 부여하고 자동으로 매달 권리를 갱신하기 위한 예약 체 인 영역(100), PPV 이벤트에 대한 권리를 부여하는 매시청지불(PPV) 체인 영역(102), 그리고 서브스크립션 및 PPV 체인 영역에 의해 생성된 EMM을 멀티플렉서 및 스크램블러(4)로 전달하고, MPEG 스트림에 EMM을 공급하기 위한 EMM 인젝터(Injector: 104)를 포함한다. 컴퓨터 소프트웨어를 이용자의 개인 컴퓨터로 다운로드할 경우에 파일 당 지불(Pay per File: PPF) 권리 등의 다른 권리가 승인되어야 한다면, 다른 유사한 영역이 또한 제공된다.
SAS(30)의 기능 중 하나는 서브스크립션 모드로 상업적 제공으로서 이용할 수 있거나, 상업화의 상이한 모드(사전예약 모드, 충동 구매 모드)에 따라 PPV 이벤트로 판매된 텔레비전 프로그램에 대한 접근 권한을 관리하는 것이다. SMS(32)로부터 수신된 권한 및 정보에 따라, SAS(30)는 가입자에 대한 EMM을 생성한다.
서브스크립션 체인 영역(100)은 명령 인터페이스(CI: 106), 가입자 기술적 관리(STM) 서버(108), 메시지 발생기(MG: 110), 및 암호화 장치(36)를 포함한다. PPV 체인 영역(102)은 인가 서버(AS: 112), 말단 이용자의 관련 사항을 저장하는 관계형 데이터베이스를 포함하는 데이터베이스 서버(114, 116), 주문 집중 서버(OCS: 118), 프로그램 방송용 서버(SPB: 120), 상기 서브스크립션 체인 영역의 메시지 발생기(110)와 기본적으로 동일한 기능의 메시지 발생기(MG: 122), 및 암호화 장치(36)를 포함한다.
EMM 인젝터(104)는 다수의 메시지 에미터(ME: 124, 126, 128 및 130)와 소프트웨어 멀티플렉서(SMUX: 132 및 134)를 포함한다. 바람직한 실시예에서, 다른 메시지 발생기(122)에 대해 다른 2개 ME(128, 130)와 함께, 메시지 발생기(110)에 대 해 2개의 ME(124, 126)가 존재한다. ME(128 및 130)은 SMUX(134)에 연결되지만, ME(124 및 126)은 SMUX(132)에 연결된다.
메시지 발생기(110 및 122)는 상기 STM(108)과 OCS(118)에 의해 발생된 명령을 각각 EMM으로 변환시킨다. MG는 EMM의 존속기간과 송출율을 결정한다. 또한, MG는 전용 암호화 장치를 사용하여 EMM을 암호화한다. 그리고, MG는 암호화된 EMM을 각각의 ME로 전달하고, EMM을 주기적으로 전송한다. 도 4에 나타낸 바와 같이, 하나 이상의 ME가 하나의 MG로 연결될 수 있고, 적절한 ME는 EMM에서 관련된 운영자에 따라 MG에 의해 결정된다. 주어진 EMM의 존속기간 동안, MG는 EMM을 자신의 데이터베이스에 저장한다. EMM은 EMM의 송출 존속기간이 경과되자마자 데이터베이스로부터 소거된다.
메시지 에미터(124, 126, 128 및 130)는 각각의 MG 로부터 방송 개시일, 방송 종료일 및 방송 주기와 같은 몇개 파라미터와 함께 EMM을 수신한다. 그리고, MG는 특정 파라미터에 따라 EMM 방송을 관리한다.
리시버/디코더
도 5를 참조하여, 리시버/디코더(13)의 다양한 요소가 기능적인 블록의 형태로 기술될 것이다.
예를 들면, 디지털 셋탑 박스(STB)가 될 수 있는 리시버/디코더(13)는 중앙 프로세서(220)를 포함하는데, 중앙 프로세서(220)는 연관된 메모리 요소들을 포함하고, 직렬 인터페이스(221), 병렬 인터페이스(222), (도 1의 모뎀 백 채널(17)에 연결된) 모뎀(223) 및 디코더의 프런트 패널의 스위치 접촉(224)으로부터 입력 데이터를 수신한다.
리시버/디코더는 제어부(226)를 통해 적외선 리모콘(225)으로부터의 입력을 추가적으로 수신하고, 또한 은행 또는 예약 스마트카드(242, 240) 각각을 판독하는 2개의 스마트카드 판독기(227, 228)를 포함한다. 서브스크립션 스마트카드 판독기(228)는 삽입된 예약 카드(240) 및 조건부 액세스부(229)와 결합하여, 암호화된 방송 신호를 디스크램블링할 수 있게 하기 위해, 필요한 제어 워드를 디멀티플렉서/디스크램블러(230)로 공급한다. 또한, 디코더는 디멀티플렉서/ 디스크램블러(230)에 의해 필러링 및 디멀티플렉싱되기 전에 위성 전송을 수신 및 복조하기 위해, 종래의 튜너(231)와 복조기(232)를 포함한다.
본 설명에서 사용된 바와 같이, 바람직하게 애플리케이션은 리시버/디코더(13)의 하이 레벨의 기능을 제어하기 위한 컴퓨터 코드의 부분이다. 예를 들면, 최종 사용자가 텔레비전(14)의 스크린상에 보여지는 버튼 객체에 리모콘(225)의 초점을 위치시키고 확인키를 누를 때, 버튼과 결합된 명령어 시퀀스가 실행된다.
대화식 애플리케이션은 메뉴를 제시하고, 최종 사용자의 요구에 맞는 명령어를 실행하며, 애플리케이션의 목적에 관련된 데이터를 제공한다. 애플리케이션은 상주 애플리케이션, 즉, 리시버/디코더(13)의 ROM(또는 FLASH 또는 다른 비휘발성 메모리)에 저장되거나, 리시버/디코더(13)의 RAM 또는 FLASH 메모리로 방송 및 다운로드되는 상주 애플리케이션일 수 있다.
애플리케이션은 리시버/디코더(13)의 메모리 위치에 저장되고, 자원 파일로서 표시된다. 자원 파일은 상기에서 설명된 특허 명세서에서 기술된 바와 같이, 그래픽 객체 설명부 파일, 가변 블록부 파일, 지시 시퀀스 파일, 애플리케이션 파일 및 데이터 파일을 포함한다.
리시버/디코더는 RAM 볼륨, FLASH 볼륨 및 ROM 볼륨으로 분할된 메모리를 포함하지만, 이 물리적 구성은 논리적 구성과는 다르다. 메모리는 다양한 인터페이스와 연관된 메모리 볼륨으로 더 분할될 수 있다. 하나의 관점에서는 메모리가 하드웨어의 일부로서 간주될 수 있고, 또 다른 관점에서는 메모리가 하드웨어와는 별도로 나타낸 전체 시스템을 유지 또는 포함하는 것으로 간주될 수 있다.
리시버/디코더의 구조
리시버/디코더는 소프트웨어가 어떠한 리시버/디코더에서, 그리고 어떠한 운영 체제로 실행될 수 있도록 구성되는 5가지의 소프트웨어 층을 포함한다. 도 6을 참조하면, 다양한 소프트웨어 층은 애플리케이션 층(250), 애플리케이션 프로그래밍 인터페이스(API) 층(252), 가상 머신 층(254), 장치 층(256) 및 시스템 소프트웨어/하드웨어 층(258)이다.
애플리케이션 층(250)은 리시버/디코더에 상주 또는 리시버/디코더로 다운로드되는 애플리케이션들을 포함한다. 이 애플리케이션들은 고객에 의해 사용되고, 예를 들어 자바, HTML, MHEG-5 또는 다른 언어로 작성되는 대화식 애플리케이션들이거나, 이와 같은 애플리케이션들을 실행하기 위해 리시버/디코더에 의해 사용되 는 애플리케이션들일 수 있다. 이 층은 가상 머신 층에 의해 제공되는 개방 애플리케이션 프로그래밍 인터페이스(API) 세트에 근거한다. 이 시스템은 애플리케이션이 곧바로 또는 요구가 있는 즉시 리시버/디코더의 FLASH 또는 RAM 메모리로 다운로드될 수 있게 한다. 애플리케이션 코드는 데이터 저장 매체 명령과 제어(DSMCC), 네트워크 파일 서버(NFS) 또는 다른 프로토콜과 같은 프로토콜들을 사용하는 압축된 또는 압축되지 않은 포맷으로 전송될 수 있다.
대화식 애플리케이션은 예를 들어 전자 프로그램 가이드, 텔레뱅킹 애플리케이션 및 게임과 같은 제품과 서비스를 획득하기 위해 사용자와 상호 작용하는 애플리케이션이다. 다음의 상주 애플리케이션은 대화식 애플리케이션을 관리하는데 사용된다.
□ 부트. 부트 애플리케이션(260)은 리시버/디코더에 전원이 인가될 때 시작되는 제 1 애플리케이션이다. 부트 애플리케이션은 그 첫번째가 애플리케이션 관리자(262)인 가상 머신에서의 상이한 "관리자"를 시작한다.
□ 애플리케이션 관리자. 애플리케이션 관리자(262)는 리시버/디코더에서 실행되는 대화식 애플리케이션을 관리하고, 즉, 애플리케이션 관리자는 리시버/디코더는 이벤트를 시작, 중지, 정지, 개재 및 처리하고, 애플리케이션들 사이에서의 통신을 다룬다. 애플리케이션 관리자는 다중 애플리케이션들이 동시에 실행될 수 있게 하여, 다중 애플리케이션들중에서 자원의 할당에 관여한다. 이 애플리케이션은 사용자에게 완전히 투명하게 된다.
□ 설정(SetUp). 설정 애플리케이션의 목적은 주로 설정 애플리케이션(264) 이 사용되는 제 1 시간에 리시버/디코더를 구성하는 것이다. 설정 애플리케이션은 TV 채널을 검색, 데이터 및 시간을 설정, 사용자 선호를 확립하는 것 등과 같은 동작을 행한다. 그러나, 설정 애플리케이션은 리시버/디코더 구성을 변경하기 위해 언제라도 시간에 사용자에 의해 사용될 수 있다.
□ 재핑(Zapping). 재핑 애플리케이션(268)은 프로그램 업, 프로그램 다운 및 숫자 키들을 사용하여 채널을 변경하는데 사용된다. 또 다른 형태의 재핑이 사용될 때, 예를 들어 배너(파일롯) 애플리케이션(실행) 동안은 재핑 애플리케이션이 정지된다.
□ 콜백(Callback). 콜백 애플리케이션은 리시버/디코더 메모리에 저장된 다양한 파라미터의 값을 추출하고, 이들 값을 모뎀 백 채널(17)을 통해, 또는 다른 수단에 의해 상업적 운영자에게로 반환한다.
API 층(252)은 대화식 애플리케이션 개발용의 하이 레벨(high-level)의 유틸리티를 제공한다. API 층은 이 높은 레벨의 API를 구성하는 몇몇 패키지를 포함한다. 이 패키지는 대화식 애플리케이션을 구동하는데 필요한 모든 기능을 제공한다. 패키지는 이 애플리케이션들에 의해 액세스될 수 있다.
바람직한 실시예에서, API는 자바 프로그래밍 언어로 작성된 애플리케이션들을 실행한다. 더욱이, API는 HTML 및 MHEG-5와 같은 다른 포맷을 해석할 수 있다. 이 인터프리터 외에, API는 요구들이 지시될 때 분리되고 확장될 수 있는 다른 패키지와 서비스 모듈을 또한 포함한다.
가상 머신 층(254)은 언어 인터프리터, 다양한 모듈 및 시스템으로 구성된다. 가상 머신 층은 이하를 포함하는 리시버/디코더에서 대화식 애플리케이션을 수신하고 실행하는데 필요한 모든 것으로 구성된다.
장치 인터페이스 층(256)은 장치 관리자 및 장치들을 포함한다. 장치들은 외부 이벤트를 관리하는데 필요한 논리적인 자원들과 물리적인 인터페이스들로 구성된 소프트웨어 모듈들이다. 장치 층은 드라이버와 애플리케이션 사이의 통신 채널을 관리하고, 강화된 에러 제외 검사를 제공한다. 관리되는 장치들의 일부 예들은 카드 판독기, 모뎀, 네트워크, PCMCIA(개인 컴퓨터 메모리 카드 국제 협회), LED 디스플레이 등이다. API 층은 상기 장치들을 제어하기 때문에, 프로그래머는 직접 이 층을 다룰 필요는 없다.
시스템 소프트웨어/하드웨어 층(258)은 리시버/디코더의 제조업자에 의해 제공된다. 시스템의 모듈 방식 때문에, 그리고 (이벤트 스케줄링과 메모리 관리와 같은) OS에 의해 공급되는 서비스가 가상 머신의 일부이기 때문에, 상위 층은 특별한 실시간 운영 체제(RTOS) 또는 특별한 프로세서에 연결되지 않는다.
MPEG 시스템
종래의 디지털 방송 시스템은 데이터를 이산 전송 스트림 패킷 또는 전송 패킷의 형태로 전송하며,각 패킷은 소정 길이로 되고, 헤더와 바디를 포함한다. MPEG 표준은 이 영역에서 현재 지지되고 있는 표준이고, 그 중에서도 특히, 이러한 패킷 에 대한 소정 포맷을 제시한다.
패킷 헤더는 패킷에 관한 일반적인 기술적 데이터를 포함하지만, 바디는 리시버/디코더에서 소유될 데이터를 포함한다. 패킷 헤더는 패킷을 식별하는 적어도 패킷 ID, 즉 PID를 포함한다. 패킷의 바디는 음성, 영상,또는 애플리케이션, 특히 조건부 접근 시스템 데이터 등의 다른 데이터를 포함할 수 있다.
전형적으로, 입력되는 데이터 스트림은 각 패킷의 PID에 따라 리시버/디코더에 의해 필터링된다. 순간 처리를 요구하는 데이터, 예를 들어 음성 또는 영상 데이터는 패킷화 기본 스트림, 즉 PES로 종래에 알려진 형태로 적합한 프로세서로 전달된다. 전송 패킷의 바디를 조합함으로써 형성되는 연속 플러스 데이터 자체는 패킷 시퀀스를 포함하고, 각 PES 패킷은 패킷 헤더 및 바디를 포함한다.
또한, 순간 처리를 요구하지 않는 다른 데이터는 전송 패킷의 바디내에서 캡슐화될 수 있다. 실시간 출력을 생성하기 위해 프로세서에 의해 즉시 처리되는 PES 데이터와 달리, 이러한 종류의 데이터는 리시버/디코더 프로세서에 의해 비동기 방법으로 통상 처리된다. 이 경우, 데이터는 단일 데이블 또는 일련의 테이블 섹션으로 포맷팅되고, 각각은 헤더와 바디를 포함하며, 섹션 또는 테이블의 헤더는 테이블 IP, 즉 TIP를 포함한다.
종래의 MPEG 데이터스트림의 다양한 측면이 WO98/43431에 또한 포함되고, 본 명세서에서 참조로서 포함되는 도 7a, 7b 및 7c를 참조하여 설명될 것이다.
알려진 바와 같이, 도 7a를 참조하면, MPEG-2 비트스트림은 0의 패킷 식별("PID")을 갖는 프로그램 접근 테이블("PAT"; 310)를 포함한다. 상기 PAT 는 다수의 프로그램들의 프로그램 맵 테이블들("PMTs"' 312)의 PID에 대한 기준(reference)를 포함한다. 각각의 PMT는 프로그램용 음성 MPEG 테이블(314)과 영상 MPEG 테이블(316)의 스트림의 PID에 대한 기준을 포함한다. 0의 PID를 갖는 프로그램 접근 테이블(310)인 패킷은 모든 MPEG 접근을 위한 진입점(entry point)을 제공한다.
애플리케이션들과 이들의 데이터를 다운로딩하기 위해서, 두가지 새로운 스트림 형태들이 정의되며, 적절한 PMT는 또한 MPEG 테이블들(또는 이들의 섹션; 318)과 데이터 MPEG 테이블들(또는 이들의 섹션; 320)의 스트림 PID에 대한 기준을 포함한다.
도 7b를 참조하면, 애플리케이션(322)를 다운로딩하기 위해서, 애플리케이션은 MPEG 테이블에 의해 각각 형성되는 모듈(324)들로 분할되고, 이들중 일부는 단일 섹션(318)으로 구성되고, 나머지는 다수의 섹션(318)으로 이루어질 수 있다.전형적인 섹션(318)은 1 바이트의 테이블 식별("TID"; 28)을 포함하는 헤더(326), 테이블에서의 그 섹션의 섹션 번호(330), 테이블에서의 섹션의 총수(332) 및 2 바이트 TID 확장자(34)를 갖는다. 또한, 각 섹션은 데이터부(336)와 CRC(338)를 포함한다. 특정 모듈/테이블(324)에 대해, 테이블(24)로 이루어진 섹션(318) 전체는 동일한 TID(328)와 동일한 TID 확장자(334)를 갖는다. 특정 애플리케이션(322)에 대해, 애플리케이션(322)으로 이루어진 테이블(24) 전체는 동일 TID(28)를 갖지만, 각각 상이한 TID 확장자를 갖는다.
각 애플리케이션(322)에 대해, 디렉토리로서 사용되는 단일 MPEG 테이블(324)이 있으며, 도 7c에서 보다 상세하게 도시된다. 디렉토리 테이블(340)은 헤더(326), 디렉토리부(342), 키 식별자(344), 암호화된 서명(346) 및 CRC(338)를 포함한다. 상기로부터, 디렉토리 테이블(340)은 자신의 헤더(326)에 애플리케이션을 구성하는 다른 모듈들/테이블(324)로서 동일 TID(328)를 갖는 것이 이해될 것이다. 그러나, 디렉토리 테이블은 소정의 0의 TID 확장자(334)을 갖고, 나머지 모듈(324) 전체는 0이 아닌 TID 확장자들을 갖는다. 또한, 헤더는 디렉토리 테이블(340)용의 버전 번호(348)를 포함한다. 애플리케이션(322)으로 이루어진 나머지 모듈/테이블(324)의 각각에 대해, 디렉토리부(342)는 그 모듈의 명칭(350), 그 모듈에 대한 TID 확장자(334), 및 그 모듈의 서명(352)을 포함한다. 나머지 모듈/테이블(324) 각각에 대해, 디렉토리부(342)는 또한 그 모듈의 길이와 모듈의 버전 번호를 포함할 수 있다.
다시 도 7a를 참조하면, 작동시, PAT(310), PMT(312) 및 애플리케이션과 데이터 스트림 구성요소(318, 320)는 주기적으로 전달되며, 필요시 업데이트된다. 전송되는 각 애플리케이션은 각각 소정의 TID(328)를 갖는다. 애플리케이션을 다운로드하기 위해, 적합한 TID와 0의 TID 확장자를 갖는 MPEG 테이블은 리시버/디코더(13)로 다운로드된다. 따라서, 이것은 요구된 애플리케이션에 대한 디렉토리 테이블(340)이다. 그리고, 디렉토리의 데이터는 요구된 애플리케이션을 구성하는 모듈 테이블의 TID 확장자(334)를 결정하도록 리시버/디코더(13)에 의해 처리되고, 디렉토리 테이블로서 동일 TID를 갖는 어떠한 요구된 모듈 테이블과 디렉토리로부터 결정된 TID 확장자가 다운로드될 수 있다.
리시버/디코더(13)는 디렉토리 테이블의 어떠한 갱신에 대한 디렉토리 테이블들을 검사하기 위해 배열된다. 이것은, 예를 들어 30초, 1분 또는 5분마다 주기적으로 다시 디렉토리 테이블을 다운로드함으로써 행해질 수 있고, 이전에 다운로드된 디렉토리 테이블과 새롭게 다운로드된 디렉토리 테이블의 버전 번호를 비교할 수 있다. 새롭게 다운로드된 버전 번호가 보다 나중에 다운로드되면, 모듈은 이전 디렉토리 테이블 또는 최근의 버전 번호인 어떤 이와 같은 모델들과 연관된 모듈이 설치되지 않고, 최근의 모듈이 다운로드되어 설치된다. 대안적인 구성에 있어서, 수신 비트스트림은 TID, 애플리케이션의 TID를 설정하는 값을 갖는 TID 확장자와 버전 번호, 0의 TID 확장자와 현재 다운로드된 디렉토리의 버전 번호보다 하나 큰 버전 번호에 대응하는 마스크를 사용하여 필터된다. 따라서, 버전 번호의 증가가 검출될 수 있고, 일단 검출되면, 상기에서 설명된 바와 같이 디렉토리가 다운로드되고, 애플리케이션이 업데이트된다. 더욱이, 이러한 필터링(filtering)의 설명은 특허 출원 WO98/43415에 포함되어 있다. 애플리케이션이 종료되면, 다음 버전 번호를 갖는 빈 디렉토리는 디렉토리에서 어떠한 모듈들의 리스트 없이 전송되다. 이러한 빈 디렉토리의 수신에 응답하여, 리시버/디코더(13)는 애플리케이션을 설치하지 않도록 프로그램된다.
전송으로의 접근이 제한되는 경우, 예를 들어 지불 TV 시스템에서 조건부 접근 시스템은 전송 메시지와 함께 전송 스트림의 테이블 또는 섹션 방송에 포함될 수 있다. 이 조건부 접근 데이터는 디코더에 의해 필터링되어, 디코더에 삽입되는 휴대용 보안 모듈, 예를 들어 스마트카드로 전달된다. 그리고, 데이터는 예를 들어 전송 메시지를 디스크램블링하는 디코더에 의해 이어서 사용되는 제어 워드를 생성하기 위해 스마트카드에 의해 처리된다.
하나의 문제점은 디코더에 의해 수신되어 처리되는 데이터 볼륨과, 특히 보안 모듈로 결국 전송되는 조건부 접근 데이터 볼륨에 있다. 특히, 보안 모듈 프로세서의 처리 능력과 디코더와 보안 모듈 사이의 통신 채널의 능력이 메시지의 주어진 볼륨을 처리하는에 불충분하다. 이 문제점은 상이한 운영자에 의해 동일한 프로그램(예를 들어, 풋볼 매치 또는 주제 텔레비전 채널)으로 접근할 수 있는 다중 조건부 접근 메시지와 함께 전송될 프로그램에 대해 증가하는 경향에 의해 악화된다. 따라서, 정보 방송을 감소 또는 적어도 보다 양호하게 관리하는 방법이 현재 연구될 것이다.
개인 MPEG 테이블 섹션은 하기 표 1에 나타낸다. 이 포맷은 미가공 데이터를 MPEG 섹션에 배치하는데 유일하게 사용된다. 섹션의 최대수는 section_syntax_indicator에 의존한다.
표 1은 if/else문으로 표시되는 가변 데이터 구조로서 롱 테이블 데이터 구조와 쇼트 테이블 섹션 구조 모두를 나타낸다. 즉, section_syntax_indicator가 0과 같으면, 상기 테이블은 쇼트 테이블 데이터 구조를 가지고, 그렇지 않으면 상기 테이블은 롱 테이블 데이터 구조를 가질 것이다. 쇼트 테이블이 단일 세션만으로 구성되지만, 롱 테이블은 다중 섹션으로 구성될 수 있다.
상기에서 설명한 본 발명의 2가지 실시예에서, 구조적 정보는 양자에 대해 새로운 데이터 포맷을 산출하여 롱 및 쇼트 테이블 섹션 데이터 구조의 미가공 데이터부를 대체한다. 미가공 데이터부는 private_data_byte 필드의 루프에 의한 표 1에 표시되고, 섹션 body로서 참조될 것이다. 이들 실시예들의 구조는 도 8에서 일반적인 데이터 구조로서 나타낸다.
데이터 구조는 종래의 MPEG 개인 테이블 섹션 헤더(400)를 포함한다. 종래 헤더(400)의 table_id_extension 필드(402)는 애플리케이션 특정 필터링 능력을 제공하기 위해 일부 실시예에서 사용된다. 예를 들면, table_id_extension 필드(402)는 하드웨어 필터링을 사용하여 그 내용(content)을 고속으로 검색할 수 있도록 테이블 내용용 식별자로서 사용될 수 있다. 종래의 CRC 정보(420)는 계속 유지된다.
표준 MPEG 개인 데이터 섹션의 미가공 데이터부(또는 바디)는 추가 헤더 필드를 포함하는 추가 헤더(404)에 더하여 구조적 데이터부로 대체된다. 추가 헤더(404)에서의 추가 헤더 필드는 테이블의 압축 및 암호화, 우선순위, 파싱 포맷 및 필터 확장 필드에 관한 정보를 포함한다. 또한, 추가 헤더 필드는 공통 속성 리스트(408)의 크기를 지정하는 필드를 포함한다. 공통 속성 리스트(408)는 데이터 아이템 리스트(410)에서의 모든 데이터 아이템(412)에 공통인 속성(406)을 포함한다. 구조적 데이터부는 데이터 아이템(412)의 가변 길이 리스트(410)를 더 포함하고, 각각은 범용 데이터 아이템 식별자와 그 데이터 아이템에 특정한 속성(416)의 가변 길이 리스트(414)를 포함한다. 특정 속성 리스트(414)의 길이는 데이터 아이템(412)에 지정된다. 아이템 특정 속성 리스트(414)에서의 속성(416)은 공통 속성 리스트(408)에서 동일한 공통 속성(406)에 우선될 수 있다.
이 구조는 모든 데이터 아이템에 공통된 속성이 일단 포함시킬 수 있다. 더욱이, 일부 데이터 아이템에 공통된 속성은 특정 속성에 우선하여 포함하는 이들 공통 속성과 상이한 값을 갖는 데이터 아이템과 함께, 공통 속성 리스트에 나타날 수 있다. 이것은 포맷된 데이터에 의해 요구된 공간이 최소로 유지될 수 있도록 한다.
또한, 속성은 이하 MPEG 표준 용어를 사용하는 라인에서 기술자(descriptor)로서 참조될 것이다. 또한, 리스트는 루프 구조가 하기에서 주어지는 특정 테이블 포맷 정의에서 리스트를 정의하는 형식으로서 사용될 때, 루프(loop)로서 참조될 것이다. 따라서, 속성 리스트(408 및 414)는 각각 기술자 루프(descriptor loops), 즉 공통 및 특정 기술자 루프(common and specific
descriptor loops)로서 참조될 것이다. 또한, 루프(410)는 식별자 루프로서 참조될 것이다.
또한, 특정한 예들에서는 어떤 데이터 구조 요소에 특정 명칭이 주어질 수 있다.
기술자은 그 자체로서 표시될 속성에 따라 임의의 데이터 구조일 수 있다. 바람직하게는, 기술자는 기술자를 자동으로 파싱할 수 있도록 하는 기술자 태그와 기술자 크기를 포함하는 단순 헤더를 포함할 것이다.
표 1의 현존 테이블 구조의 미가공 데이터부 또는 바디내의 구조적 데이터와 더불어 추가 헤더를 캡슐화함으로써, 현존 구조와의 호환성이 유지될 수 있다. 또한, 이것은 하드웨어와 소프트웨어를 처리하는 현존 MPEG 테이블와 호환성을 제공 한다.
개인 테이블 섹션은 일반적으로 방송 센터에서 생성되고, 여기서 정보는 상기에서 설명된 구조에 따라 포맷된다. 일단 데이터 구조가 방송 센터에 있는 메모리에서 조합된 경우, 데이터 구조는 MPEG 스트림에 삽입되어, 리시버/디코더로 방송된다. 그리고, 리시버/디코더는 MPEG 스트림으로부터 정보를 복원하고, 하기에서 설명될 바와 같이 처리하기 위해 파서로 데이터 구조를 전송하기 전에 메모리에서 데이터 구조를 재생한다.
롱 개인 테이블 섹션의 특정 예가 하기 표 2에 주어진다. 이러한 테이블은 256 섹션까지 구성될 수 있다. 이 테이블은 필드 명칭, 비트의 필드 크기, 2진 데이터 포맷 및 디폴트 값이 주어진다. 2진 데이터 포맷은 MPEG 표준에 정의된 간략 기호를 사용하여 주어진다.
last_section_number과 CRC_32을 제외하고, last_section_number과 CRC_32 사이의 필드는 표 1의 현존 테이블 포맷의 미가공, 포맷되지 않은 데이터 섹션을 대체한다. 예약 필드를 제외하고 새로운 필드가 이하 설명될 것이다.
Private_Filter_extension : 하드웨어 필터의 사용을 최적화하기 위해, 이 16비트 필드는 하드웨어 필터링이 MLOAD_table, MLOAD_group 또는 MLOAD_section 호출로 행해지는 헤더부에 추가 기준을 포함시킴으로써 개인 필터링을 확장하는데 사용될 수 있다.
Data_Parsing_Format : 이 8비트 필드는 상기 테이블에서 다음 데이터의 데이터 파싱 포맷을 나타낸다. 이것은 다음 데이터의 포맷이 미래 버전으로 변경되면 자동적으로 파싱을 돕는다. 이 필드는 256 파싱 이상이 요구되는 경우에 테이블 버전 번호 모듈(256)과 동등하게 됨으로써 해석될 수 있다. 이 경우, 추가 헤더 필드 는 파싱 포맷을 지정할 목적으로 새로운 테이블 포맷에 도입될 수 있다.
Data_Cyphered_flag : 이 플래그는 데이터부 또는 바디에서의 데이터, 즉 추가 헤더와 CRC_32 필드를 제외하고 추가 헤더와 CRC_32 필드 사이의 데이터가 암호화되었는지 어떤지를 나타낸다. 이 데이터가 암호화되어 있으면, 암호 알고리즘의 선택이 Data_Cyphering_Algorithm 필드의 도움으로 이루어진다.
Data_Compressed_flag : 이 플래그는 데이터부 또는 바디에서의 데이터, 즉 추가 헤더와 CRC_32 필드를 제외하고 추가 헤더와 CRC_32 필드 사이의 데이터가 압축되었는지 어떤지를 나타낸다. 데이터가 압축되었으면, 압축 알고리즘의 선택이 Data_Compressing_Algorithm 필드의 도움으로 이루어진다.
Data_Cyphered_flag와 Data_Compressed_flag가 설정되면, 암호화가 데이터 압축후에 행해진다. 수신측에서, 리시버/디코더(13)는 압축해제 전에 복호화한다.
Data_Cyphering_Algorithm : 이 2비트 필드는 4개의 상이한 알고리즘중 하나가 섹션 바디에서의 데이터를 암호화/복호화하는데 사용하기 위해 지정될 수 있게 한다.
Data_Compressing_algorithm : 이 2비트 필드는 4개의 상이한 알고리즘중 하나가 섹션 바디에서의 데이터를 압축하기 위해 지정될 수 있게 한다.
Prority : 4개의 우선순위 레벨 중 하나는 우선순위 레벨이 개인 데이터와 연관될 수 있게 하는 2비트 필드에 지정될 수 있다. 값(0)은 최상위 우선순위 레벨을 나타내고, 값(3)은 최하위 우선순위 레벨을 나타낸다.
Common_Descriptor_info_length : 이것은 다음 명령 기술자 리스트의 길이를 (요소 개수가 상기 길이를 부여하는데 사용될 수 있어도) 바이트 크기로 지정한다.
기술자 리스트(Descriptor list) : 이것은 기술자 요소(Descriptor element)의 리스트이다. 기술자 요소는 다양한 내부 구조로 될 수 있고, 데이터 요소 속성을 나타낸다. 이 리스트는 루프 구조에 의한 표 3에 나타낸다.
예비 식별자 리스트(Extra identifier list) : 이 리스트는 루프 구조에 의한 표 2에 나타낸다. 이 리스트는 0 이상의 예비 식별자를 포함하고, 각각은 기술자 리스트를 갖는다. 예비 식별자의 각 요소는 다음 필드를 포함한다:
Extra_Identifier_length : 이 8비트 필드는 가변 길이의 Extra_identifier 필드에 사용된 바이트수(N)를 지정한다.
Extra_Identifier : 이 8*N 비트 필드는 다음 예비 식별자 기술자 루프를 기술하는 식별자 또는 식별자 그룹을 지정한다.
예비 식별자 기술자 루프(Extra identifier descriptor loop) : 이것은 기술자 요소의 리스트이다. 기술자 요소는 다양한 내부 구조로 될 수 있고, 데이터 요소 속성을 나타낸다. 이 리스트는 루프 구조에 의한 표 2에 나타낸다.
상기 표 1에 있어서, 필드(private_section_length)는 다음 필드로부터 섹션 종단까지 개인 섹션의 나머지 부분의 크기를 지정한다. 동일한 함수가 표 2에 있는 Section_length 필드에 의해 행해진다. 표 2에서, 2개의 기술자 루프(바이트 크기로서, 기술자의 번호가 사용될 수 있지만)가 필드(Common_Descriptor_info_ length(디폴트 값(N1))과 Extra_Identifier_descriptor_length(디폴트 값(N3)))에 의해 추가적으로 지정될 수 있다.
쇼트 개인 테이블 형태의 실시예가 하기 표 3에 주어진다. 쇼트 개인 테이블은 단일 섹션으로 구성된다.
Section_length와 CRC_32를 제외하고, Section_length와 CRC_32 사이의 필드는 현존 테이블 포맷의 미가공, 포맷되지 않은 데이터부 또는 바디를 대체한다. 예약 필드와 상기에서 설명된 필드를 제외하고 새로운 필드가 이하 설명될 것이다.
Private_Filter_extension : 하드웨어 필터의 사용을 최적화하기 위해, 이 16비트 필드는 하드웨어 필터링이 MLOAD_table, MLOAD_group 또는 MLOAD_section 호출로 행해지는 헤더부에 추가 기준을 포함시킴으로써 개인 필터링을 확장하는데 사용될 수 있다. 이 필터 확장 필드는 쇼트 롱 포맷(표 2를 참조)에서의 등가 필드보다 길다. 이것은 크기가 동일한 양 포맷의 헤더를 이루는 것이고, 헤더는 테이블의 파싱을 보다 용이하게 한다.
Prority : 4개의 우선순위 레벨 중 하나는 우선순위 레벨이 개인 데이터와 연관될 수 있게 하는 2비트 필드에 지정될 수 있다. 값(0)은 최상위 우선순위 레벨을 나타내고, 값(3)은 최하위 우선순위 레벨을 나타낸다.
Common_Descriptor_info_length : 이것은 다음 명령 기술자 리스트의 길이를 (요소 개수가 길이를 부여하는데 사용될 수 있어도) 바이트 크기로 지정한다.
기술자 리스트(Descriptor list) : 이것은 기술자 요소(Descriptor element)의 리스트이다. 기술자 요소는 내부 구조가 변경될 수 있고, 데이터 요소 속성을 나타낸다. 이 리스트는 루프 구조에 의한 표 3에 나타낸다.
예비 식별자 리스트 : 이 리스트는 루프 구조에 의한 표 3에 나타낸다. 이 리스트는 0 이상의 예비 식별자를 포함할 수 있고, 각각은 기술자 리스트를 갖는다. 예비 식별자의 각 요소는 다음 필드를 포함한다;
Extra_Identifier_length : 이것은 가변 길이의 Extra_identifier 필드에 사용된 비트수(N)를 지정한다.
Extra_Identifier : 이것은 다음 예비 식별자 기술자 루프를 기술하는 식별자 또는 식별자 그룹을 지정한다.
예비 식별자 기술자 루프(Extra identifier descriptor loop) : 이것은 기술자 요소의 리스트이다. 기술자 요소는 내부 구조가 가변될 수 있고 데이터 요소 속성을 나타낸다. 이 리스트는 루프 구조에 의한 표 3에 나타낸다.
상기 롱 섹션과 쇼트 섹션 포맷 모두의 예는 암호화의 압축에 관련된 추가 헤더 필드를 제공한다. 이들은 포맷된 데이터부 및 추가 헤더 정보 부분을 암호화 및 압축할 수 있게 한다. 섹션 바디의 압축 및 암호화의 설명이 하기에 주어진다. 또한, 우선순위 필드는 개인 테이블 섹션에 포함된 정보의 우선순위화를 할 수 있게 한다.
설명된 개인 테이블 포맷은 다수의 상이한 애플리케이션, 예를 들어 주문형 애플리케이션 또는 조건부 억세스 시스템에서 셋탑박스으로의 명령어를 전달하는데 사용될 수 있다. 이들 예중 일부는 하기에 보다 상세하게 설명된다.
파서
상기에서 설명된 일반적인 테이블 구조를 해석하기 위해, 파서는 셋탑 박스의 운영체제의 일부로서 제공된다. 정의된 데이터 구조가 주어진 상기 파서의 구조는 당업계에서 숙련된 기술자에 의해 용이하게 행해질 수 있다. 따라서, 일부 기본 요구조건만이 여기서 기술될 것이다.
파서의 역할이 도 9에 도시된다. 파서를 포함하는 파서 층(506)은 애플리케이션 층(508)과 MPEG 테이블 수신 및 필터링 층(504) 사이의 추상층을 제공하고, 데이터 스트림(502)을 통해 방송 시스템(500)에 의해 전송된 정보를 추출한다.
이 추상화의 결과는 상기 애플리케이션이 처리하는 상이한 종류의 데이터에 대한 다수의 상이한 테이블 포맷에 명확하게 적용되지 않아야 하는 것이다. 파서는 수신된 테이블 섹션을 처리하여, 관련 정보를 추출하고, 애플리케이션 층의 애플리케이션으로 관련 정보를 전달한다.
상기에서 설명된 일반적인 테이블 포맷은 상이한 형태의 데이터가 동일한 테이블 구조내에 구성될 수 있게 한다. 공통 및 특정 속성 기술자의 집합으로서 테이 블 섹션에 저장된 개별 데이터 아이템은 애플리케이션에 의해 요구된 정보를 포함한다. 기술자 포맷은 변경될 수 있고; 정보 형태와 크기 속성을 지정하는 태그를 포함하는 상기 예에서는 파서가 정보를 정확하게 추출할 수 있게 하고, 추출된 정보를 애플리케이션으로 전달한다.
더욱이, 기술자 리스트의 크기가 Common_Descriptor_info_length와 Extra_Identifier_descriptor_length 필드의 형태로 제공되어, 파서가 그들을 정확하게 추출할 수 있도록 한다. 파서는 개별 데이터 아이템의 의미 또는 기능에 관련될 필요가 없고; 파서는 단순히 데이터를 애플리케이션으로 전송한다. 따라서, 파서는 수신할 수 있는 상이한 형태의 정보를 인식할 필요가 없고; 정보의 해석이 애플리케이션에 의해 행해진다. 파서는 단지 헤더에 포함된 전송 관련 정보를 제거하여 적합한 일반적인 형태의 애플리케이션으로 실제 데이터 내용을 전달한다.
따라서, 파서는 가변 길이이고 상이한 형태의 테이블을 처리할 수 있다. 파서의 설계는 상이한 애플리케이션에 의해 사용된 상이한 형태의 정보에 의해서가 아니라 범용 테이블의 설계에 의해서만 제어된다.
추가 테이블 섹션 포맷을 허용하기 위해, 현재 포맷은 파싱 포맷 필드(Data_Parsing_Format)를 제공한다. 이 필드 전의 헤더 섹션은 전체 테이블 포맷의 크기 일정하게 유지되어, 파서는 필드를 정확하게 식별하고, 파서는 개인 테이블 섹션의 포맷을 결정하는데 사용하며, 따라서 개인 테이블 섹션의 포맷을 파싱하기 위한 적합한 방법을 선택한다.
개인 테이블의 압축 및 암호화
또한, 상기에서 설명된 바와 같은 테이블 포맷은 압축 및/또는 암호화된 개인 테이블을 제공한다. 개인 테이블의 압축은 테이블이 주문형 애플리케이션에서의 프로그램 카탈로그 등의 다량의 정보를 전송하는데 사용될 때 유용할 수 있다. 디지털 방송 시스템에서의 대역폭은 때때로 고가이고, 따라서 요구되는 대역폭을 감소하는 것이 이익으로 될 수 있다. 테이블의 암호화는 테이블에 저장된 정보, 예를 들어 조건부 접근 정보가 기밀 특성으로 되어 있을지라도 유용할 수 있다.
개인 테이블의 압축이 이제 설명될 것이다.
상기에서 설명된 바와 같은 추가 헤더(표 2를 참조)는 2개의 압축 관련 필드를 포함한다. Data_Compressed_flag 플래그는 개인 테이블 섹션의 데이터가 압축되었는지 어떤지를 나타내는데 사용된다. 더욱이, 추가 헤더에서의 Data_compressing_Algorithm 필드는 압축에 사용된 알고리즘이 지정될 수 있게 한다. 따라서, 시스템은 다수의 상이한 압축 알고리즘을 동시에 사용할 수 있다. 표 2에서 설명된 실시예에서, 이것은 2비트 필드이고; 따라서 4개의 알고리즘이 지정될 수 있다.
하기에서 설명되는 바람직한 실시예에서, 상기 명칭의 필드를 포함하는 추가 헤더뿐만 아니라 표준 헤더와 풋터는 압축되지 않아, 압축된 테이블은 표준 MPEG 하드웨어 및 소프웨어를 이용하여 처리 및 전송될 수 있으며, 리시버는 테이블이 압축되고, 알고리즘이 테이블을 압축하는데 사용되었는지 어떤지를 결정할 수 있다. MPEG 개인 테이블의 바디만이 압축된다. 다른 예에서, 추가 헤더의 압축 관련 필드와 풋터 모두는 추가 헤더에 일부 필드를 포함하여 압축된다.
일부 실시예에서, 섹션 바디는 간단히 개별적으로 압축된다. 테이블은 전체적으로 압축 후의 동일수의 섹션을 유지한다.
그러나, 바람직한 실시예에서는 전체 테이블 섹션의 섹션 바디가 테이블 섹션으로부터 추출되어 큰 데이터 블록을 형성하기 위해 조합된다. 원래 테이블 섹션이 압축해제 후에 재생될 수 있게 하기 위해, 블록에서의 각 바디는 그 길이가 주어지는 지시자에 의해 선행된다.
각각의 길이와 함께 전체 섹션 바디를 포함하는 중간 데이터 블록은 새롭고 압축된 데이터 블록이 주어지도록 압축된다. 그리고, 새로운 개인 MPEG 테이블은 이 블록이 다수의 세그먼트로 분할됨으로써 상기 블록으로부터 만들어지고, 각각은 새로운 테이블의 섹션 바디에 위치된다. 각 새로운 테이블 섹션의 추가 헤더에서의 압축 플래그가 그에 따라 설정된다. 섹션 번호와 크기에 관련된 이들 플래그와 필드 외에, MPEG 표준 및 추가 헤더는 다른 방법으로 원래 테이블과 동일하게 남아있다. 따라서, 압축된 테이블은 원래 압축되지 않은 테이블과 동일한 방법으로 처리될 수 있다.
압축된 테이블은 통상 전송될 데이터 양이 압축에 의해 감소됨으로써, (획득된 압축률에 따라) 원래 테이블보다 작은 섹션을 포함한다.
그리고, 이 압축된 개인 테이블은 통상적인 채널을 통해 전송된다. 수신되면, Data_Compressed_flag는 테이블이 압축되는 것을 나타내지만, Data_Compressing_Algorithm 필드는 압축에 사용된 알고리즘이 주어지고, 압축해 제에 사용되어야 하는 알고리즘이 리시버/디코더로 표시된다.
그리고, 리시버/디코더는 각 압축된 테이블 섹션으로부터 바디를 추출하고, 원래 압축된 데이터 블록을 형성하기 위해 바디를 다시 조합한다. 이것이 압축해제되고, 길이 지시자의 도움으로 구성 섹션 바디로 분해된다. 그리고, 이 압축해제된 바디는 원래 개인 테이블 섹션, 그리고 원래 개인 테이블을 재생하는데 사용된다.
각 섹션 바디를 개별적으로 압축하는 것보다 모든 섹션 바디로 구성된 큰 블록의 데이터를 압축하는 이점은 보다 높은 압축률이 달성될 수 있는 것이다. 또한, 전송될 섹션의 수가 감소될 수 있다. 따라서, 압축된 개인 테이블을 전송하는데 요구되는 대역폭과 계산 부하도 감소된다.
압축 및 압축해제가 도 11a 및 11b를 참조하여 보다 상세하게 하기에서 설명될 것이다.
도 11a를 참조하면, 개인 MPEG 테이블(700)은 N 개인 테이블 섹션(702 내지 704)를 포함한다. 각 테이블 섹션은 표준 MPEG 개인 테이블 섹션 헤더(A), 추가 헤더(B), 바디(C1 내지 Cn) 및 풋터(D)를 포함한다. 일부 실시예에서, 테이블 섹션 구조는 다른 구조가 가능하지만, 상기 표 2 또는 표 3에 정의된 바와 같다. 다른 예에서, 추가 헤더는 표 2 및 표 3에 주어진 필드 외에 또는 필드 대신에 다른 필드를 포함하거나, 상기 필드들을 생략한다. 또한, 롱 테이블 포맷 실시예에서, 풋터는 CRC 체크섬을 제공한다. 쇼트 테이블 포맷 실시예에서 풋터는 생략된다.
테이블(700)을 압축하기 위해, 섹션 바디(C1 내지 Cn)가 테이블 섹션(1 내지 N)으로부터 추출된다. 각 바디의 길이가 결정되고, 테이터 블록(706)이 바디를 조 합하고, 그 바디의 길이를 지정하는 크기 지시자로 각 바디를 선행함으로써 만들어진다. 그리고, 데이터 블록은 섹션 바디(C1 내지 Cn)를 포함하고, 각각은 각 크기 지시자(C1_length 내지 Cn_length)에 의해 선행된다. 크기 지시자를 포함하는 것은 섹션 바디가 압축해제 후에 정확하게 추출될 수 있게 한다. (각각 표 2 및 표 3에서 설명된 바와 같은) 롱 및 쇼트 테이블 포맷에서의 섹션 길이 필드는 12비트 필드이고, 본 예에서서는 2바이트의 길이 지시자로 충분하다. 각 2바이트 길이 지시자 중 사용하지 않는 4비트는 1로 설정된다.
그리고, 데이터 블록(706)은 어떤 적합한 압축 알고리즘을 이용하여 압축된다. 이것은 압축된 블록(708)으로 된다.
그리고, 압축된 MPEG 개인 테이블(710)은 압축된 블록(708)으로부터 다음 방법으로 만들어진다. 압축된 블록(708)은 다수의 세그먼트(C'1 내지 C'p)로 분할된다. 그리고, 각 세그먼트는 섹션 바디로서 테이블(710)의 섹션에 위치된다. 그리고, 압축된 테이블(710)은 압축된 데이터 블록(708)의 세그먼트(C'1 내지 C'p)를 포함하는 P 테이블 섹션(712 내지 714)을 포함한다.
그리고, 압축된 테이블(710)은 전송 또는 저장될 수 있다. 압축된 테이블은 MPEG 표준 개인 테이블 뿐만 아니라 상기에서 설명된 바와 같은 일반적인 개인 테이블 포맷과 호환될 수 있고, 따라서 동일한 방법으로 처리될 수 있다.
압축된 테이블(710)은 압축된 테이블에 저장된 데이터 양이 압축을 통해 감소되었고, 압축된 데이터가 재분배, 바람직하게는 균등하게 됨으로써, (반드시 필요한 것은 아니지만) 전형적으로 압축되지 않은 원래 테이블(700)보다 작은 섹션을 가질 것이다. 따라서, 테이블 전송은 전송되는 데이터 양을 감소시킴과 더불어 전송되는 테이블 섹션의 수를 감소시킴으로써 보다 효과적으로 된다. 또한, 개별적으로보다는 전체 섹션 바디를 모두 압축함으로써, 보다 높은 압축률이 달성될 수 있다.
다시 도 11b로 되돌아가서, 압축된 MPEG 개인 테이블(710)은 다음 방법으로 압축해제된다. 섹션 바디(C'1 내지 C'p)가 추출되어, 압축된 데이터 블록(716)을 제공하기 위해 조합되고, 압축된 데이터 블록(716)은 적합한 압축해제 알고리즘을 사용하여 압축해제된다. 이것은 각각의 크기 지시자와 함께 최초 섹션 바디(C1 내지 Cn)를 포함하는 압축되지 않은 원래 데이터 블록(718)으로 된다. 크기 지시자를 사용하면, 데이터 블록(178)은 그 최초 구성요소, 즉 섹션 바디(C1 내지 Cn)으로 분할되며, 테이블 섹션(722 내지 724)을 갖는 압축되지 않은 원래 개인 MPEG 테이블(720)은 이들 섹션 바디로부터 재구성된다.
테이블을 압축하기 위해, 상기에서 설명된 바와 같은 동일한 절차가 개인 테이블을 암호화하는데 사용된다. 이를 위해, 추가 헤더는 2개의 필드(Data_Cyphered_Flag 및 Data_Cyphering_Algorithm)를 제공한다. 이들은 유사한 명칭의 압축 관련 필드와 유사하고; 첫 번째는 테이블이 암호화되는지 어떤지를 나타내는 플래그이지만, 두 번째는 사용된 암호화 알고리즘과 복호화하는데 요구되는 복호화 알고리즘을 지정하는데 선택적으로 사용될 수 있다(다른 예에서, 이 필드는 이전에 리시버로 전송된 몇 개의 암호키중 하나를 지정하는데 또한 사용될 수 있다). DES 또는 RSA 등의 어떤 적합한 암호 알고리즘이 사용될 수 있다. 압축과 함께, 일부 실시예에서는 암호화가 개별적으로 테이블 섹션에 행해지지만, 본 명세서에서 설명되는 바람직한 실시예에서는 크기 지시자와 함께 전체 테이블 섹션 바디를 포함하는 데이터 블록에 행해진다. 후자 기술은 테이블 구조가 유지되지 않는 동안 향상된 보안을 제공할 수 있다. 그리고, 테이블을 암호화하는 절차는 상기에서 설명된 압축 방법과 유사하다. 실제로, 상기 기술은 어떤 동작 또는 변환으로 사용될 수 있다. 압축 및 암호화 형태로의 변환은 본 명세서에서 예로서 설명되었다.
더욱이, 테이블은 암호화 및 압축될 수 있다. 이 경우, 도 11a에 나타낸 바와 같은 데이터 블록(706)이 우선 압축되고 나서 암호화된다. 그리고, 리시버에서는 압축 및 암호화된 테이블이 우선 복호화하고 나서 압축해제된다(또 다른 예에서, 테이블이 우선 암호화되고 나서 압축되고, 리시버에서는 암호화 및 압축된 테이블이 우선 압축해제되고 나서 복호화된다).
리시버/디코더에서는 압축해제 및 복호화가 파서 모듈에 의해 제 1 스테이지로서 행해진다. 대안적인 실시예에서, 압축해제 및 복호화는 개별적으로, 그리고 테이블이 파서로 전달되기 전에 행해진다. 압축해제 및 복호화는 전송된 압축 및/또는 암호화된 개인 테이블로부터 섹션 개인 테이블을 생성하기 때문에, 전송된 테이블에 의해 얻어진 메모리는 일단 압축해제/복호화된 테이블이 생성되면, 압축/암호화된 테이블이 더 이상 필요하지 않을 때 제거된다. 리시버/디코더는 테이블 구조의 정보와 테이블 섹션에 대한 포인터를 포함하는 테이블이 수신될 때, 테이블 기술자를 생성한다. 테이블 기술자는 메모리로부터 압축/암호화된 테이블을 제거하 기 위해 사용된다. 그리고, 새로운 테이블 기술자는 압축해제/복호화된 테이블에 생성되고, 예를 들어 또 다른 소프트웨어 모듈이 압축해제/복호화된 테이블을 접근할 수 있도록, 또 다른 모듈로 전송된다.
압축해제/복호화 모듈은 테이블이 Data_Compressed_flag 및 Data_Cyphered _flag를 검사함으로써 압축 및/또는 암호화되는지 어떤지를 검출한다. 이들 중 어느 하나가 설정되면, 적합한 압축해제 및/또는 복호화 알고리즘이 Data_Compressing_Algorithm 및 Data_Cyphering_Algorithm 필드에 근거하여 선택된다. 그리고, 압축해제 및/또는 복호화가 추가 파싱이 발생되기 전에 행해진다.
따라서, 테이블의 압축 및 암호화가 애플리케이션에 투명하게 되고, 전부가 아닐지라도 대부분의 파서에 투명하게 된다. MPEG 표준 헤더는 압축 및/또는 암호화된 테이블에 변경되지 않은 채로 남아있고, 따라서 표준 MPEG 개인 테이블 섹션 구조가 유지되며, 또한 압축/암호화는 MPEG 테이블의 전송, 수신 및 필터링과 관련된 하위레벨 MPEG 호환 모듈에 투명하게 된다. 리시버/디코더에서는 압축 및/또는 암호화된 테이블이, 예를 들어 테이블 ID와 테이블 ID 확장 필드를 필터링함으로써, 표준 필터링 방법을 사용하여 입력되는 스트림으로부터 복원된다. 따라서, MPEG 스트림에서의 압축/암호화 정보로의 각 접근이 유지된다.
압축/암호화 기술은 이전에 논의된, 그리고 표 2 및 표 3에서 예시된 일반적인 MPEG 개인 테이블 구조의 내용에 기술되었다. 그러나, 동일한 기술을 사용하여 압축 및 암호화될 수 있는 표준 MPEG 개인 테이블에 적용될 수 있다. 일부 예에서, 기술된 바와 같은 플래그 속성은 개인 테이블 섹션 바디의 시작에 단순히 추가된 다. 다른 실시예에서는, 개인 테이블 섹션 바디의 압축 또는 암호화된 상태에 대한 사전 동의가 전송자와 수신자 사이에 존재하면, 상기 플래그가 요구되지 않는다. 또한, 상기 기술은 MPEG 개인 테이블이 아닌 다른 유사 데이터에 적용될 수 있다.
응용예
상기에서 설명한 실시예들은 많은 다른 응용에 이용될 수 있다. 그러한 응용의 몇가지 예가 여기에 제시될 것이다.
첫번째 예는 셋탑 박스에 의해 행해지는 셋탑박스의 동작을 통지하는 수단을 제공한다.
응용예 : 동작 통지 테이블
동작 통지 테이블(ANT)는 이미 논의된 바 있는 범용 테이블(general-purpose table) 구조에 기반을 두고 있다. 이는 셋탑 박스, 또는 셋탑 박스 그룹이 특정 동작을 행하도록 지시하는데 이용될 수 있다.
리시버/디코더에 의해 행해지는 동작의 예는 소프트웨어의 다운로딩; 자동적 채널 스캐닝; 리시버/디코더의 재부팅; (주문형 카탈로그와 같은) 프로그램 카탈로그; 및 메시지를 셋탑박스의 사용자에게 디스플레이(청취 메시징)하는 것을 포함한다. 요구된 동작을 식별하기 위해, 테이블 ID 확장 필드가 ANT에 이용된다.
타겟팅 기술자(targeting descriptor)로 ANT가 (예를 들어, 특정 제조업자로부터의) 특정 종류의 셋탑박스 또는 개별 셋탑박스까지도 목표로 될 수 있다. 이들 은, 예를 들어 ANT 테이블의 공통 기술자 루프에 위치될 수 있다. 공통 기술자에서 타켓팅 기술자를 처리하므로써, 셋탑박스는 동작이 그 셋탑박스에 의해 행해져야 하는지 여부를 결정할 수 있다. 타켓팅 및 동작 정보의 이러한 처리는, 예를 들어 그 셋탑박스에서 구동하는 응용 프로그램에 의해 행해될 수 있다.
ANT는 모든 형태의 동작 및 선택 기준을 지원하기 위해, 기술자 및 루프의 리스트를 갖는 테이블이다. 새로운 기술자를 생성하는 데에는 제한이 없다. 따라서, 이러한 접근은 어떠한 새로운 발전에 개방적이다. 하기 섹션에 있어서, ANT 테이블의 기본 구조 뿐만 아니라, 기본 다운로드 목적에 필요한 몇가지 기본 기술자가 개시되었다.
다중-섹션 데이블을 허용하는 추가 헤더 필드를 갖는 롱 테이블과, 단일-섹션 테이블을 허용하는 쇼트 버젼의, 두가지 테이블 포맷이 있을 수 있다. 이들은 상술한 본 발명의 실시예에 따른다. 롱 테이블 포맷은 하기 테이블 4a에 도시된다.
Action_identifier : 테이블 식별자 확장 필드(Tid_ext)는 본 명세서에서 다른 목적, 즉 동작을 식별하는데 이용된다. 동작 및 그들의 엔코딩의 예는 하기 표 4b에 주어진다.
Filter_extension : 이 필드의 의미는 Action_identifier 필드의 값에 의존한다. 가능한 값 및 의미의 예가 하기 표 4c에 주어진다.
쇼트 테이블 포맷 동작 통지 테이블은 상기에서 설명한 쇼트 테이블 포맷에 근거하여 유사하게 구성될 수 있다.
기본 기술자의 일부 예가 표 4d 내지 4k를 참조하여 하기에 기술된다.
Code_download_descriptor
하나의 디스크립터가 유효한 각 코드 로더에 제공된다.
이 기술자가 ANT 테이블 내부의 아이템 루프에 배치되고, 코드 다운로드 스케쥴을 정의한다.
필드 설명
Download_flag :
Type : 이 필드는 다운로드 처리가 개시될 때 STB 동작을 정의한다.
스케쥴링된 동작은 STB로 하여금 주기적인(이를테면, 매월 하루의 오전 03:00) 자동 소프트웨어 다운로드를 프로그램하고, 이러한 동작이 성공적일 때까지 프로그램하는 것을 가능하게 한다.
주기(Periodicity) : 이 필드는 스케쥴링된 동작에 대해 다운로드 처리가 개시될 때 STB 행동을 정의한다. 이 주기는 스케쥴링된 액션에 대하여 단지 UTC_date_time_start와 UTC_date_time_estimated_stop 사이에서만 유효하다.
UTC_date_time_start : 이 필드는 STB의 강제 재부팅이 발생될 경우, 스케쥴 링된 날짜와 시간을 지시한다. 이는 UTC 내에, TDT 및 TOT 테이블의 DVB에 의해 특정된 것과 동일한 포맷으로 엔코딩된다.
UTC_date_time_estimated_stop : 이 필드는 코드 다운로드에 대한 가능 데이트를 지시한다.
ANT 확장(ANT extension)
ANT는 다른 형태의 이벤트 통지에 이용될 수 있다. 제한이 없으며; 이 예는 하기에서 다른 목적을 위한 이러한 솔루션을 이용하는 방법을 개시한다:
Scanning_Descriptor
이 기술자를 이용하면, 셋탑박스가 스캔을 행하도록 지시받을 수 있다. 이는, 예를 들어 유효 채널에 대한 정보를 포함하는 서비스 맵을 획득하는 것과 관련된다. 이 스캔은 즉시 요구되거나, 스케쥴링된 기준에 따라 요구될 수 있다.
필드 설명 :
Service_map_version_number : 이 필드는 사용된 서비스 맵의 버전 넘버를 식별한다.
Original_network_id, Transport_stream_id : 이들 DVB 값은 스캐닝 정보가 제공되는 전송 스트림을 식별한다.
Scanning_flag :
Type : 이 필드는 스캐닝 처리가 개시될 때 STB 행동을 정의한다.
스케쥴링된 동작은 STB로 하여금 주기적인(이를테면, 매월 하루의 오전 03:00) 자동 소프트웨어 다운로드를 프로그램하고, 이러한 동작이 성공적일 때까지 프로그램하는 것을 가능하게 한다.
주기(Peridicity) : 이 필드는 스케쥴링된 동작에 대해 다운로드 처리가 개시될 때 STB 행동을 정의한다. 이 주기는 스케줄된 액션에 대하여 단지 UTC_date_time_start와 UTC_date_time_estimated_stop 사이에서만 유효하다.
UTC_date_time_start : 이 필드는 STB의 강제 재부팅이 발생할 경우, 스케쥴 링된 날짜 및 시간을 지시한다. 이는 UTC 내에, TDT 및 TOT 테이블의 DVB에 의해 특정된 것과 동일한 포맷으로 엔코딩된다.
UTC_date_time_estimated_stop : 이 필드는 코드 다운로드에 대한 가능 데이트를 지시한다.
동작 통지 테이블(ANT)는, 예를 들어 셋탑 박스가 정보를 다운로드하도록 지시하는데 이용될 수 있다.
데이터를 다운로딩하는 것은 신호 메커니즘; 다운로드 메커니즘; 및 부트스트랩 메커니즘의, 세가지 메커니즘을 필요로 한다. 다음 설명에서, 신호 메커니즘은 NIT(네트워크 정보 테이블) 또는 PMT에 대한 BAT 내부의 링크 기술자의 사용에 근거한다. (상기 도 7a에 도입된) PMT는 데이터 다운로드에 필요한 모든 정보를 전달하고 다운로드 스트림의 위치를 식별하는 테이블이다.
다운로드 처리는 운영자, 네트워크 및 셋탑박스(STB) 제조업자가 사용하는 것에 따라, 다수의 상이한 형태의 정보를 요구할 수 있다. 따라서, 매우 개방적이고 유연한 테이블 컨셉이 요구된다.
플랫폼은 OUI 식별자에 의해 제 1 레벨에서 식별된다. OUI 식별자는 특정 STB 제조업자를 표시한다. 제 2 레벨에서는 시리얼 번호, 맥(Mac) 어드레스, CAS_ID와 연계된 스마트카드 번호 등의 다양한 파라미터를 사용하기 위해, 정확한 타켓팅이 개방된 채로 남겨진다. 추가 하드웨어 또는 소프트웨어 버젼 및 서브-버전이 허용된다. 하기의 솔루션은 필터링을 위해 사용되는 모든 종류의 식별 기술자를 허용한다.
도 10에 도시한 바와 같이, 다운로드 서비스의 신호 전송은 PMT(606)에 대한 NIT 또는 BAT(602)의 링크 기술자에 근거한다. SDT(서비스 설명 테이블)의 service_descriptor 뿐만 아니라, NIT의 service_list_descriptor, 서비스 형태 "다운로드"가 이러한 특정 서비스를 선언하기 위해 (다운로드 서비스가 스크린 상에서 프로그램으로서 표시되는 것을 피하기 위해서) 정의된다.
스트림 형태 "통지" (600)를 정의함으로써 PMT(606)은 ANT(동작 통지 테이블; 608)을 참조한다. 다중 ANT 테이블이 지원될 수 있기 때문에, ANT 테이블(608)의 첫번째 선택이 사용되도록 하기 위해, OUI 셀렉터가 PMT(606)에 사용된다. 리시버/디코더(13)가 정확한 OUI 및 대응하는 ANT를 찾으면, 리시버/디코더(13)는 ANT(608)에서 기술자가 다른 선택 기준과 매칭되어 데이터 캐러셀(data-carousel)의 진입 포인트를 얻는지 여부를 체크할 것이다.
PMT(606)은 ANT(608)이 다운로드 서비스 또는 다른 어떤 통지 기술자를 갖는지의 여부를 즉시 볼 수 있도록, AIT 테이블과 유사한 선택 기술자를 갖는다.
OUI에서의 필터링이 이 레벨에서 행해진다. OUI의 예약된 값은 어떤 제조업자의 STB를 선택하도록 정의된다.
OUI 데이터 구조가 하기 표 4j에 도시된다.
Action_Identifier 필드는 ANT의 동작 코드 값 즉, ANT의 TID_Ext와 동일하다.
모든 테이블이 버전 번호를 포함할 경우, PMT 버전 넘버 변화를 필터링하므로써, 각 ANT를 개별적으로 체크하지 않고, ANT 버전 넘버가 변화되었는지 여부를 보여질 수 있다.
NIT 또는 BIT 링크 기술자는 표 4k에 도시된 구조를 갖는다.
이 링크 기술자는 다운로드 서비스를 가리키는데, 여기서 PMT는 하나 또는 여러개의 ANT 구성요소를 말한다.
제 1 단계에서, 목표는 유효 통지의 모든 설명을 갖는 서비스에 도달하는 것이다. 제 2 단계에서, 이러한 서비스의 PMT 분석이 행해진다. 각 통지 테이블은 요구된 STB에만 영향을 주는 특정 셀렉터를 포함하는 특정 동작을 위해 만들어진다. OUI 필터링을 허용하기 위해, 각 ANT PID 하에서의 Action_Notification_ List_descriptor의 존재는 필수적이다. ANT PID는 동일한 OUI 제공자로부터의 상이한 동작 통지에 대응하는 하나 이상의 ANT sub_table을 가질 수 있다. 각 ANT는 TID_Extension 필드와는 다르다. "다운로드"가 가능한 동작으로 기술되고, OUI 코드가 리시버와 매칭되면, ANT가 STB에 의해 다운로드된다. 일단 로딩되면, ANT의 분석은 때 맞춰 유효한 매칭 다운로드를 보다 정확하게 기술하는데 도움이 된다. 다운로드 코드가 프로그래밍 시간에 스트림에 존재하지 않고도 장래에 다운로드를 참조 및 프로그램하는 것이 가능하도록 스케쥴링이 가능하다.
매치가 상이한 유효 기술 코드 내부의 다운로드 설명과 STB 특성 사이에 발견될 때, STB가 association_tag(610)에 의해, 또는 또 다른 서비스에서는 deferred_association_tag(612)에 의해, 기술된 다운로드 코드 entry_point로 점프할 수 있으며, 또는 코드가 아직 유효하지 않다면, STB에 의해 스타트 타임 및 위치가 기억되어야 한다. 그 후, 기억된 entry_point(ON_ID, TS_id, SV_ID 및 association_tag)에 의해 지적된 데이터를 분석 및 이용하는 것은 STB 제공기의 역할이다. 다운로드된 데이터의 포맷은 상기 제공기가 원하는 어떠한 포맷일 수 있다.
그럼에도 불구하고, 데이터는 다음의 방법으로 지시받는다.
ㆍ 제 1 필터링과 나란히, STB 특성과 다운로드 코드 사이의 체크가 다운로드를 행하기 전에 이루어진다 ⇒ 상기 코드의 명확한 일치가 정의되어야 한다
ㆍ 다중 다운로드 코드- 예를 들어 하드웨어 버전 당 하나-를 갖는 동일한 데이터 PID에서의 능력은 현재 데이터의 전체 세트 중에서 각 버전에 대하여 데이터를 구별하는 방식을 의미한다(data_carousel에서 모듈의 선택)
ANT 및 관련 메커니즘은 하나 또는 여러개의 셋탑박스로 전송 스트림 또는 또다른 전송 스트림 내의 위치를 표시하는 기존의 신호 방법의 확장을 제공하고, 여기서 새로운 로더 버전, 즉 새로운 다운로드 가능 버전의 소프트웨어 코드가 발견될 수 있다.
특히, 상기에서 설명한 테이블 구조는 스케쥴링된 다운로드의 경우에 유용하다.
응용 예: 타켓된 테이블
ANT 테이블에 대해 상기에서 설명된 바와 같이, 테이블의 타켓팅은 기술자 루프에 타켓 기술자를 포함시킴으로써 가능해진다. 타켓 기술자의 2가지 예가 하기에 주어진다. 첫번째는, 특정한 스마트카드를 목표로 정하는데 이용되는 Target_RSM_Descriptor이다. 두번째는, 특정 하드웨어 및/또는 소프트웨어 플랫폼을 목표로 정하는데 이용되는 Target_Platform_Descriptor이다.
Target_RSM_Descriptor
하기 테이블 5에 기술된 이 기술자는 동작이 스마트카드 식별자의 리스트에 대해 행해질 수 있게 하고, ANT 테이블의 공통 기술자 루프에 위치된다. 여러개의 연속적인 기술자가 테이블에 나타날 수 있다.
필드 설명 :
Number_of_tester : 이 번호는 다운로드에 관련된 RSM의 번호를 식별한다.
RSM_serial_number : 키 에테스 부(Qui etes Vous: 미디어가드 스마트카드에 유용)
Qev : 키 에테스 부(미디어가드 스마트카드에 유용)
Target_Platform_Descriptor
하기 표 6에 기술된 이 기술자는 액션이 플랫폼 식별자의 리스트에 대해 행해지도록 한다. 이는 ANT 테이블의 공통 기술자 루프에 위치된다. 여러개의 연속적인 기술자가, 플랫폼 당 하나인, 테이블에 나타날 수 있다.
필드 설명 :
Hardware_version_number : 이 번호는 하나의 제조업자 내부내의 하드웨어 플랫폼을 식별한다.
Number_of_versions_concerned : 이 번호는 다운로드에 관련된 소프트웨어 플랫폼의 번호를 식별한다.
Global_soft_id : 이 필드는 하드웨어 플랫폼 마다 코드 다운로드에 관련된 STB의 소프트웨어 버전을 식별한다.
Target_RSM_Descriptor(표 5) 및 Target_Platform_Descriptor(표 6)가 특정 스마트카드 및/또는 플랫폼에 대한 타겟 테이블 및 데이블 섹션에 이용된다. 이와 같이, 이들은 상기에서 설명된 동작 통지 테이블 이외의 애플리케이션과, 하기에 설명될 주문형 애플리케이션에 사용될 수 있다. 이러한 타켓팅 기능은 테스트 장치 의 한정된 세트에서 애플리케이션과 관련 정보를 타켓팅함으로써, 새로운 애플리케이션을 테스트하는데 특히 유용할 수 있다. 하기에서 설명될 주문형 애플리케이션에서, 타겟팅은 상이한 소비자를 위해 예를 들어 다른 언어 또는 다른 가격을 제공하는 데 이용될 수도 있다. 다중 언어를 제공하기 위해 타겟팅 기술자를 이용함으로써, 단지 프로그램의 사운드 요소만이 복제될 필요가 있고; 그림 요소는 언어와 상관없이 동일하게 남겨짐으로써, 전송 대역폭이 절약될 수 있다. 타겟팅 기술자는 본질적으로 일반적인 테이블 필터링 방법에 대한 확장을 제공한다.
타켓팅 기술자는 공통 및 특정 기술자 루프 모두에 배치된다. 제 1 공통 기술자의 사용은 모든 가능 필터에 이용할 수 있는 통상의 필터링 파라미터가 주어지는 제 1 레벨 필터를 제공한다. 이 테이블에 관한 다른 공통 정보는 이 공통 기술자 루프에 포함될 수 있다.
그리고, 식별자 루프는 OR 조건으로 해석될 수 있고, 내부의 특정 기술자 루프는 AND 조건을 제공한다. 예를 들면, 각기 2개의 링크된 조건을 갖는 3개의 필터가 선언되면, 식별자 루프는 각각 2개의 기술자를 포함하는 3개의 아이템을 포함할 것이다.
응용 예: 주문형 애플리케이션
제 2 응용 예에서, 롱 및 쇼트 테이블 섹션 포맷 모두는 주문형 전송에 관련된 리시버/디코더로 정보를 전송하는데 이용된다.
주문형(VoD) 애플리케이션의 문맥에 있어서, 애셋 카테고리(asset catalogue)(애셋은 특정 VOD 제공, 예를 들어 필름)는 메타데이터로 구성된다. 이 메타데이터는 (XML 포맷의) 내용 제공자(Content Provider)로부터 나오고, MPEG 개인 섹션에 삽입된다. STB로 전송된 이들 섹션은 캐러셀 모드로 방송된다.
VoD 시스템을 통해 제공된 다수의 애셋이 존재할 수 있다. 따라서, 다수, 즉 예를 들어 즉 예를 들어 수만 또는 수십만의 애셋에 사용될 수 있는 데이터 포맷이 제공되어야 한다.
각 에셋에 대한 데이터 크기를 고려하면, 2가지 레벨의 정보가 제공된다:
제 1 레벨 : 애셋의 타이틀, 시청률 및 카테고리를 제공.
제 2 레벨 : 요약, 배우 리스트, 언어 및 부제 정보 및 다른 프로그램 관련 정보를 제공.
제 1 레벨에서, 테이블 세트는 TV 프로그램 등의 애셋 리스트 작성이 제공될 수 있다. 테이블로 용이하게 접근하기 위해, 이들 테이블은 상이한 테이블 ID 확장 외에 동일한 테이블 ID를 갖는다. 테이블 ID 확장은 애셋을 분류하는데 사용된다. 예를 들면, 하나의 테이블은 또 다른 스포츠 이벤트와 동시에 필름을 열거할 수 있다. 이것은 애셋의 요구 카테고리에 관련된 테이블이 하드웨어 필터링을 통해 MPEG 스트림으로부터 용이하게 추출될 수 있게 한다. 예를 들면, 사용자는 스포츠 프로그램 리스트를 보는 것을 요구할 수 있다. 애셋 테이블에 대한 테이블 ID와 스포츠 프로그램에 대한 카테고리 코드를 테이블 ID 확장 필드에 조합함으로써, 올바른 애셋 테이블이 용이하게 복원될 수 있다.
이 테이블은 모든 애셋 리스트, 즉 본 예에서는 모든 스포츠 프로그램을 그 카테고리에 포함시킬 것이다. 그리고, 이 리스트는 사용자에게 디스플레이될 수 있다. 사용자가 이들 프로그램에 대한 추가 정보를 요구하면, 제 2 레벨 테이블은 이 특정 애셋에 관련된 추가 정보, 예를 들어 프로그램의 비용과 내용 설명을 포함하여 복원된다. 여기서, 애셋 식별자는 테이블 식별자 확장(Table Identifier Extension)으로 사용되어, 애셋 식별자에 대한 하드웨어 필터링이 가능하고, 따라서 관련 애셋 정보의 빠른 복원이 가능하다.
또한, 가능한 유효 카테고리가 또 다른 MPEG 개인 데이터 테이블에 전송된다.
유효 애셋 리스는 프로그램 카테고리를 구성한다. 추가 테이블이 하기에서 설명되는 바와 같이 카테고리를 업데이트하기 위해 제공된다.
다음 포맷은 파싱 모듈의 재사용성을 보증하기 위해 개인 테이블에 대한 상기 일반적인 포맷 설명에 근거한다. 이들 포맷은 디코더에서의 섹션 필터링 모듈이 하드웨어 8바이트 마스크(tid_ext를 포함하여, tid_ext 필드로부터 table_id + 7바이트)에 근거되는 것을 사용한다.
다음 테이블에서 카테고리와 애샛의 우선순위는 상위 우선순위를 갖는 하위 값으로 지시되어, 정보가 tid_ext 필드에 저장될 때 최상위 우선순위 데이터가 우선 복원되는 것을 유념한다.
Categories_Description_Table
(하기 도 7에 도시된) Categories_Description_Table은 입력되는 스트림으로부터 복원되고, 유효 카테고리 리스트를 제공하는 제 1 테이블이다. 이 테이블은 미리 기술된 일반적인 롱 테이블 섹션 포맷에 근거한다. Category_id는 추가 정보가 다음 기술자 리스트에 제공되는 카테고리를 식별하는 2바이트 필드이다. Category_id의 값의 범위는 하기에서 보다 상세하게 설명될 바와 같이, 카테코리 정의와 서브 카테고리 정의를 사용할 수 있다.
Category_id의 상위 바이트는 카테고리를 정의한다. Category_id의 하위 바이트는 서브 카테고리를 정의한다. 따라서, 예를 들어 Category_id 0x1200은 카테고리 0x12와 서브 카테고리 0x00을 정의한다. 유사하게, Category_id 0x1234는 상이한 서브 카테고리 0x34 외에 동일한 카테고리 0x12를 정의한다.
예를 들면, Category_id 0x1200에 이어지는 category_name_descriptor는 카테고리의 시각정보 명칭을 나타낼 수 있고, Category_id 0x1234에 이어지는 category_name_descriptor는 동일한 카테고리의 상이한 서브 카테고리의 명칭을 나타낼 수 있다.
카테고리 0x00은 일반적인 sub_category 정의가 사용될 수 있게 하는 예약된 값이다. 예를 들면, 모든 가능 카테고로서 일반적인 sub_category "live_event"를 서브 카테고리 0x01으로 정의할 필요가 있으면, 0x0001 값을 category_id로서, 그리고 "live_event"를 갖는 기술자를 텍스트 내용으로서 정의할 수 있다.
category_descriptor_loop에 저장될 기술자가 하기 표 8에 도시된다.
Category_name_descriptor
애셋 테이블(ASSET tables)
애셋 정보의 제 1 레벨은 개인 섹션에 대한 롱 포맷 신텍스(Section_ syntax_indicator=1)에 근거한다.
각 테이블은 각각의 식별자에 의해 정의된 특정 카테고리와 sub_category에 해당된다. 테이블은 각각 4000바이트의 256섹션으로 이루어질 수 있기 때문에, 10000 애셋 이상을 기술할 수 있다.
카테고리와 (tid_ext 필드를 대신하는) sub_category 시청률은 시청률 기준에 근거하여 애셋 그룹의 고속 필터링을 보증하기 위해 하드웨어 필터 심도(depth) 에 집중된다. 시청률은 예를 들어 매지불시청(Pay-Per-View) 애플리케이션에 사용되는 DVB parental_rating_descriptor과 일차하는 8비트로 인코딩된다.
각 테이블은 asset_id 루프로 이루어진다. 제 1 기술자 루프는 모든 asset_id에 제공되는 공통 속성을 갖는다.
제 2 기술자 루프는 특정 애셋에 제공하는 특정 속성을 갖는다. 속싱이 제 1 및 제 2 루프에 정의될 때, 제 2 정의는 공통 정의에 우선한다.
애셋 정보 테이블 섹션의 구조가 표 9에 도시된다.
Asset_id_length : 값 필드를 정의하는데 사용되는 바이트수.
Asset_id : 다음 기술자 루프를 기술하는 식별자 또는 식별자 그룹.
애셋 정보의 제 2 레벨은 개인 섹션에 대한 쇼트 포맷 신텍스(Section_ syntax_indicator=0)에 근거한다.
하드웨어 필터 심도로 인해, 특정 asset_id에 접근하는 필터를 설정할 수 있다. 24비트 예약 필드는 쇼트 섹션 신텍스에 대한 일반적인 포맷과 일치하는 것이 정의된다. 이것은 실제로 하드웨어 필터 마스크를 보완한다.
기술자 루프는 애셋에 관련되는 속성을 인코딩하는데 사용된다.
테이블 섹션 구조가 표 10에 기술된다.
Asset_information_section 또는 Asset_more_information_section중 하나의 기술자 루프에 포함되는 일부 가능 기술자가 이제 기술된다.
Asset_name_descriptor
이 기술자는 애셋 정보 테이블(sset Information Table)의 애셋 루프에 배치된다. 그 구조가 표 11에 기술된다.
다음 기술자는 전형적으로 Asset_more_information_table에 배치된다. 그러나, 이들중 일부는 Asset_Information_Table에서 속성으로서 사용될 수도 있다.
source_descriptor
하기 표 12에 정의된 이 기술자는 애셋의 표시 포맷의 측면에 대한 정보를 제공한다.
Asset_more_info_descriptor
하기 표 13에 정의된 이 기술자는 애셋에 관한 보조 정보를 제공한다.
Asset_description_descriptor
하기 표 14에 정의된 이 기술자는 애셋의 문맥 설명(textual description)을 제공한다.
Actors_descriptor
하기 표 15에 정의된 이 기술자는 필름 등의 애셋에 표시되는 배우에 관한 정보를 제공한다.
Package_descriptor
하기 표 16에 정의된 이 기술자는 애셋의 패키지에 관한 정보를 제공한다.
다음 기술자가 모든 에셋에 적용하여, 애셋 정보 테이블(Asset Information Table)의 공통 기술자 루프에 위치되어야 하거나, 특정 애셋에 우선할 필요가 있으면, asset_loop에 반복될 수 있다.
Checkout_Length_descriptor
하기 표 17에 정의된 이 기술자는 검사 길이에 관한 정보를 제공한다. 이것은 VoD 서버로의 연결 시간을 맞추는 매커니즘을 제공한다.
Stream_control_descriptor
하기 표 18에 정의된 이 기술자는 스트림 제어 정보를 제공한다. 이것은 하기에서 if-구문을 사용하는 가변 데이터 구조로서 정의된다.
Control_flag는 하기 표 19에 기술된다.
카탈로그 업데이트(Catalogue update)
VoD 애플리케이션이 론치될 때, 애셋 정보 테이블(Asset Information Table)은 유효한 애셋을 디스플레이하기 위해 로딩된다. (카테고리 시청률은 카테고리를 인가되지 않은 영화로 숨기기 위해 계산서로 취해진다.)
가입자는 특정 애셋에 대한 추가 정보를 필요로 할 때, 그것은 해당 Asset_more_information_table을 로딩한다.
더욱이, 애셋 정보를 업데이트하기 위해, 표 20에 기술된 바와 같이, 업데이트되어야 하는 카테고리와 서브 카테고리를 나타내는 다음 Catalog_Update _table가 방송될 수 있다.
update_counter : 이 카운터는 카테고리가 모두 업데이트 될 때마다 하나씩 증가된다. 일부 변경이 발생할 때만, 이 카운터가 하나씩 증가된다. Update_Counter의 제 1 값은 0이다. 데이터베이스 추출기가 리셋되면, 이 카운터는 0의 값으로 리셋될 수 있지만, Current_Action_Flag 필드는 완전한 데이터베이스의 풀 업데이트(full update)를 나타내는 0001로 설정된다. 필드 크기가 8비트로 제한되기 때문에, 상기 값은 모듈(256)으로 표시되는 STB에 의해 알게 된다. 업데이트 카운터는 새로운 정보가 언제 다운로드될 필요가 있는지를 STB가 결정할 수 있게 한다.
Category_counter_descriptor : 이 카운터 기술자는 애셋 정보 테이블에 대한 버전 카운터를 식별한다. 이것은 STB가, 애셋 정보가 업데이트되어 최신 정보를 다운로드할 수 있도록 할 수 있다.
Current_action_flags : 다양한 플래그가 내부 루프에서 유효 category_descriptor에 해당되어 동시에 제기될 수 있다. 개개의 플래그가 표 21에 열거된다.
Calalog_update_section의 기술자 루프에 표시될 수 있는 일부 기술자가 이제 설명된다.
Category_Counter_descriptor
하기 표 22에 정의된 이 기술자는 카테고리/서브카테고리 업데이터 카운터를 제공한다.
counter : 이 8비트 필드는 특정 카테고리와 서브 카테고리에 대한 Asset_Information_Table과 관련 Asset_more_information_table의 업데이트를 카운트한다.
Category_Action_descriptor
하기 표 23에 정의된 이 기술자는 특정 카테고리와 서브 카테고리 조합에 요 구되는 업데이트 종류에 관련된 정보를 제공한다.
Action : 이 8비트 필드는 루프에 포함된 카테고리와 서브 카테고리 리스트의 카테고리 업데이트 동안 행해지는 동작을 지정한다. 가능 동작이 표 24에 주어진다.
Plant_Id 메커니즘(Plant_Id mechanism)
plant_id 메커니즘은 선택된 서버와의 VOD 세션 연결을 확립하는데 사용된다. 우선, 리시버/디코더(13)는 하기 표 25에 정의된 초기 파일을 복원하여, 스캔된 주파수중 하나에 동조될 수 있을 때까지 하기 표 27에 도시된 lookup_ frequency_list_descriptor 루프에 유효한 모든 주파수를 스캔한다. 하나의 주파수가 발견되면, 정확한 Service_Group_Id를 복원하기 위해, 동일한 기술자에 기술된 PID 상에서 (항상 동일한 기술자에 있는) Plant_id_selection_field와 동일한 tid_ext으로 Plant_Id 정의 테이블을 필터링할 수 있다. 동시에, 애플리케이션은 VOD 서버의 IP 어드레스를 복원하기 위해 VOD_initialization_table의 common_ descriptor_loop에 유효한 routing_ip 기술자를 사용하여 http 서버에 연결된다.
VOD_initialization_section의 신텍스가 하기 표 25에 도시된다.
Private_Filtering_Extension : 하드웨어 필터의 사용을 최적화하기 위해, 이 56비트 필드는 개인 필터링을 MLOAD_table, MLOAD_group 또는 MLOAD_section 호출로 확장하는데 사용된다.
Plant_id_length : Extra_identifier 필드를 정의하는데 사용된 바이트수.
Plant_id : 다음 기술 루프에 의해 기술된 하나의 식별자 또는 식별자 그룹.
표 25의 VOD_initialisation_section에 사용된 기술자가 하기에 기술된다.
Cable_delivery_system_descriptor
하기 표 26에 정의된 Cable_delivery_descriptor는 0000.0000MHz로 설정된 frequency_field를 갖는 common_descriptor_loop에 위치될 수 있다. 이것은 모든 다음 주파수에 대한 디폴트 변조 파라미터를 주는데 도움이 될 것이다.
plant_id_descriptor_loop에서의 가능 기술자는 다음과 같다:
Lookup_Frequency_List_descriptor
이 기술자가 표 27에 정의된다.
Frequency : 이것은 8캐릭터의 주파수 값을 지정하는 4비트 BCD 값이 주어지는 32비트 필드이다. 주파수는 소수가 4번째 캐릭터 후에 발생되는 MHz에 코딩된다.
Plant_Id_PID : 리시버/디코더(13)가 plant_ID 파일을 발견할 수 있는 PID 값.
Plant_id_Selection : 이 16비트 필드는 PID에서 필터링될 Tid_ext 값일 수 있고, TID 값은 정확한 Plant_Id_Definition_Table을 복원하기 위해 정적이다. 이 필드는 미래 확장에 대해서만 선택적이다. 선택적인 그 값이 0xFFFF로 설정된다면.
다른 예에서, 예약 및 Plant_Id_PID 필드는 실제의 PID 값을 발견하는데 도움을 주는 연결 태크(association tag)가 주어지기 위해 병합될 수 있고, 정적 데 이터 PID 참조를 갖는 시스템을 이용하는 것이 항상 어렵다.
3개의 다음 기술자가 Http ODA 서버로서 공통 기술자 루프에 설정되어야 한다.
Connection_data_descriptor
이 기술자가 표 28에 정의된다.
Routing_Ipv4_descriptor
이 기술자가 표 29에 정의된다.
Component_tag 필드는 본 예에서 사용되지 않는다. 그 값은 0으로 설정된다.
Routing_ipv6_descriptor
이 기술자가 표 30에 정의된다.
Component_tag 필드는 본 예에서 사용되지 않는다. 그 값은 0으로 설정된다.
표 31은 Plant_ID_Definition_Sectiion의 신텍스를 정의한다.
VOD_Service_Group_Descriptor
하기 표 32에 정의된 이 기술자는 Plant_Id_definition_section내에서 사용된다.
VOD 신호화의 사용
이하, 이 섹션이 스트림으로부터 전용 VOD 테이블을 복원하기 위해 표준 및 개인 C+ 신호화를 사용하는 방법을 논의한다.
우선, VOD 휴대 서비스를 선언할 필요가 있다. 이것은 이 서비스가 하나의 VOD인 것을 나타내는 개인값(0xD0)과 동일한 서비스 형태의 도움으로 행해진다. 이 서비스 형태는 CNIT의 service_list_descriptor와 SNT(서비스 네트워크 테이블)의 service_descriptor에 기록되는 것이다.
이 서비스는 VOD 애플리케이션을 활성화시키는데 필요한 선언을 찾아야 하고; VOD 서비스 형태 선언은 이것을 달성할 만큼 충분할 수 있다.
그리고, 이 서비스에 속하는 PMT의 구성요소 루프에서, stream_type 0xC1과 부착 PID를 갖는 개인 데이터 기본 스트림의 루프가 발견될 것이다. 이 stream_type의 각 스트림은 이들 데이터가 이 PID를 사용하여 방송되는 것을 정의하는 appli_list_descriptor를 포함할 것이다.
appli_list_descriptor의 신텍스가 하기 표 33에 주어진다.
Appli_name은 (8 캐릭터로 제한된) 다음 값을 취할 수 있다.
□ VDO_Initialization_Table에 대한 VOD_INIT.
□ Asset_Information_Table(명칭이 8비트까지 공백으로 채워진다)에 대한 ASSET.
□ Asset_More_Information_Table에 대한 DETAILS.
□ Categrories_Definition_Table에 대한 CATEGORY.
□ Catalog_Update_Table(명칭이 8비트까지 공백으로 채워진다)에 대한 UPDATE.
방송을 위해, ASSET와 CATEGORY는 동일한 PID로 삽입되어, 2개의 appli_ list_descriptors는 분할이 장래에 소거되기 위해 이 PID 아래에 존재한다.
데이터와 순환 주기의 양으로 인해, DETAILS은 ASSET와 CATEGORY와 상이한 PID로 되어야 한다.
개시시에 VOD 애플리케이션은 우선 카테고리를 디스플레이하고, 사용자가 요구하면, ASSET 테이블에 존재하는 상세사항을 나타낸다. 일단 데이터의 PID가 정의되면, 정보로의 접근 속도를 향상시키는 완전한 DMT 메커니즘 대신에 필터링을 행하기 위해, 직접 할당된 TID 값을 사용하는 것이 허용된다. (DMT는 TID와 table_name -appli_list_descriptor 등- 사이의 분석을 제공하여 방송될 것이다.
카탈로그를 파싱하는 동안, UPDATE 테이블은 변경이 카테고리 또는 애셋에서 발생되는 경우에 모니터링될 것이다.
그리고, 일단 사용자가 선택하면, VOD 애플리케이션은 그 허브 주파수를 스캔하기 위해 VOD_INIT 데이터를 사용한다. 보다 상세사항에 대해서는 상기 Plant_Id_mechanism을 참조하기 바란다.
일단 정확한 주파수가 복원되어 튜닝이 가능하면, 적어도 하나의 Plant_ Id_Definition_Table이 전송 스트림의 제 1 PMT에 정의된 PID 상에서 방송되는 것이다. 제 1 PMT는, 이것이 PAT 내에 있는 PLANT_ID 명칭을 포함하는 appli_list_descriptor을 갖는 stream_type 0xC1의 하나의 기본 스트림을 포함해야 하는 PAT내에 선언된 제 1 서비스인 것을 의미한다. 또한, 이러한 주파수에 대한 VOD_initialization_table의 lookup_frequency_list_descriptor에 기술된 PID 값이 다. 이 메커니즘은 유순한 DVB이기 위해, 그리고 고스트 PID를 갖지 않도록 하기 위해 확립된다.
그리고, 이 PID상에서, plant_Id_definition_Table은 현재 동조된 주파수에 대한 VOD_initialization_table의 lookup_frequency_list_descriptor에 이미 정의된 Plant_Id_Selection 값과 동일한 TIDExt 값으로 방송된다. 이 필터링이 매매치되지 않으면, 또 다른 주파수로의 시도가 이루어진다. 더욱이, 주어진 주파수에 대한 Plant_Id_Definition_Table를 복원하기 위한 타임 아웃(time-out)은 VOD_initialization_table의 현재 lookup_frequency_list_descriptor내에 다음 기술된 주파수로의 점프를 포함한다.
완전한 푸르가 어떠한 매치도 없이 이루어지면, 명시된 에러가 디스플레이되거나, 새로운 시도가 유효한 완전 주파수 리스트에 대해 이루어진다.
명시된 에러는 다음 가능성중 하나를 의미한다 :
● 주파수가 발견되지 않음
● Plant_id 테이블이 동조된 주파수에 대해 발견되지 않음
● 주파수상에서의 PAT 신호화가 발견되지 않음
● 주파수상에서의 PMT 신호화가 발견되지 않음
이와 달리, VOD_initialization_Table에서의 IP_descriptor의 도움으로, 서버의 어드레스가 VOD 세션 연결을 확립하기 위해 발견된다.
상기 설명은 다음 접근법에 근거하여 개인 테이블 구조를 정의하였다 :
● 쇼트 섹션에 대한 모델
● 롱 섹션에 대한 모델; 및
● 애플리케이션 내용 종속 기술자의 예.
상기에서 설명된 본 시스템은 다음 전략적인 이점을 제공한다 :
● 본 시스템은 보다 유효한 개발을 허용하고;
● 본 시스템은 리시버/디코더(13)의 제조업자와 조건부 접근 시스템의 제조업자와 독립적으로 애플리케이션 구현의 생성을 허용하고;
● 비용을 증가시키지 않고 사용될 수 있는 데이터 양의 증가- 이것은 데이터 압축을 통해 행해지며;
● 제품 업데이트을 보다 용이하게 개발한다.
또한, 상기 시스템은 애플리케이션 방송에 대해 다음 이점을 제공한다 :
● 일반적인 테이블 파서를 준비한다;
● 파서의 변경이 존재하는 애플리케이션에 큰 영향을 주지 않는다;
● 개인 테이블의 정의를 표준화한다;
● 개발자는 요구되는 데이터 필터링과 특정 기술자에 집중할 수 있다;
● 테이블 내용을 보다 용이하게 처리한다;
● 데이터 추출이 파서에 의해 행해진다;
● 데이터 포맷과의 역방향 호환성을 유지한다;
● 존재하는 포맷과의 통합 - 개인 테이블은 존재하는 DVB 기술자를 사용할 수 있지만, DVB 테이블은 개인 기술자를 사용할 수 있다;
● 회귀되지 않는 것을 보증한다;
● 객체 메소드와 기술자를 통합한다;
● 하나의 테스트와 통합이 용이하다;
● (사이트에서, 생방송을 부정적으로 영향을 주지 않는) 운용 통합이 용이하다;
● 애플리케이션을 개발하는데 필요한 시간이 감소된다.