KR20090039766A - Sigcomp udvm 성능의 최적화를 위한 방법 및 장치 - Google Patents

Sigcomp udvm 성능의 최적화를 위한 방법 및 장치 Download PDF

Info

Publication number
KR20090039766A
KR20090039766A KR1020097002890A KR20097002890A KR20090039766A KR 20090039766 A KR20090039766 A KR 20090039766A KR 1020097002890 A KR1020097002890 A KR 1020097002890A KR 20097002890 A KR20097002890 A KR 20097002890A KR 20090039766 A KR20090039766 A KR 20090039766A
Authority
KR
South Korea
Prior art keywords
decompression
data content
bytecode
communication device
compressed
Prior art date
Application number
KR1020097002890A
Other languages
English (en)
Other versions
KR101055503B1 (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 콸콤 인코포레이티드
Publication of KR20090039766A publication Critical patent/KR20090039766A/ko
Application granted granted Critical
Publication of KR101055503B1 publication Critical patent/KR101055503B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

통신 네트워크 및 무선 사용자 장치 사이의 신호 압축 최적화 시스템은 바람직하게는 감소된 컨텐트 프로세싱 레이턴시로 실행가능할 때 최적화된 압축 해제기를 선택하거나, 그렇지않으면 수신된 압축 해제 바이트코드를 해석하는 범용 압축 해제기 버추얼 머신(UDVM)과 같은 버추얼 머신 압축 해제기를 선택한다. UDVM은 임의의 특정한 압축 해제 알고리즘에 대하여 최적화되지 않고 실행 전에 바이트코드에 있는 각각의 명령문의 분석과 관련된 요구되는 지연들을 가지기 때문에, 가능할 때마다 UVDM을 사용하지 않도록 할 수 있는 것은 무선으로 수신된 시그널링 메시지들 또는 미디어 컨텐트를 제공하는데 있어서 사용자 경험을 향상시킨다.

Description

SIGCOMP UDVM 성능의 최적화를 위한 방법 및 장치{METHOD AND APPARATUS FOR OPTIMIZATION OF SIGCOMP UDVM PERFORMANCE}
본 발명은 무선 통신을 위한 압축 방법들에 관한 것이다.
본 출원은 출원번호가 60/830,545이고, 출원일이 2006년 7월 12일이고, 발명의 명칭이 "Method and Apparatus for Optimization of SigComp UDVM Performance"이며, 본 출원의 양수인에 의해 양수되고 여기에 참조로서 통합된 가출원에 대한 우선권을 주장한다.
세션 개시 프로토콜(SIP: Session Initiation Protocol)은 제3세대 파트너쉽 프로젝트(3GPP) 릴리스 5로부터 개시되는 제3세대 모바일 네트워크에서 호출 제어를 위해 사용되는 프로토콜이다. SIP는 텍스트 인코딩을 사용하며, 텍스트 인코딩은 SIP에 기반하여 서비스들을 구성하고, SIP에 대한 익스텐션(extension)들을 설계하고, 프로토콜을 디버깅하는 것을 보다 용이하게 한다. 그러나, SIP의 텍스트 인코딩은 또한 심각한 단점을 가진다; SIP 메시지들이 모바일 통신을 위한 글로벌 시스템(GSM) 호출 제어에서의 인스턴스를 위해 사용되는 프로토콜들의 메시지들보다 상당히 크다는 것은 잘 알려져 있다. 낮은-대역폭 무선 인터페이스를 통해 보다 많은 데이터가 전송될 필요가 있기 때문에, 큰 메시지 크기들은 증가된 호출 설 정 지연을 초래하게 된다. 이러한 관찰을 통해 호출 설정 시간을 줄일 수 있는 솔루션을 개발할 필요성이 제기되었다. 하나의 이러한 솔루션은 인터넷 엔지니어링 태스크 포스(IETE)에 의해 설계된 시그널링 압축(SigComp: Signaling Compression) 프로토콜이다. SigComp는 두 개의 네트워크 엘리먼트들 사이에서 애플리케이션-계층 시그널링의 압축을 위한 프레임워크를 제공한다. SigComp 아키텍처의 중심 부분은 범용 압축 해제기 버추얼 머신(UDVM: Universal Decompressor Virtual Machine)이며, UDVM은 압축 해제 알고리즘들을 실행하기 위해 최적화된 버추얼 머신이다. UDVM로 인하여, SigComp는 하나의 알고리즘이 모든 SigComp 엔드포인트들에 의해 지원되도록 명령하는 대신에 넓은 범위의 압축 해제 알고리즘들을 지원할 수 있다.
SigComp는 3GPP 릴리스 5 IP 멀티미디어 서브시스템(IMS)의 필수적인 부분이다. SigComp는 터미널 및 프록시 호출 세션 제어 펑션(P-CSCF: Proxy Call Session Control Function) 사이의 인터페이스를 통해 적용되며, P-CSCF는 IMS 내에 있는 터미널에 대한 첫번째 콘택트 포인트이다. SigComp는 호출 설정에서 유휴(idle) 시간을 줄임으로써 사용자가 인식하는 서비스 품질을 향상시킨다. SigComp는 또한 가입자마다 소비되는 자원들의 양을 줄임으로써 네트워크가 더 많은 수의 사용자들을 지원하도록 허용한다.
SigComp를 위한 주요 목표는 셀룰러 시스템들이며, 여기서 모바일 터미널들은 다양한 기능들을 가지며 탐지되지 않은 에러들이 셀룰러 링크 상에 발생할 수 있다. SigComp는 또한 셀룰러 시스템들을 포함하는 제한된 스루풋(throughput)을 가지는 통신 링크들을 다룬다.
다음은 제시된 버전들의 몇몇 양상들에 대한 기본적인 이해를 제공하기 위해 단순화된 요약을 제공한다. 이러한 요약은 광범위한 개관은 아니며, 키 또는 결정적인 엘리먼트를 식별하기 위한 의도가 아니고 또한 이러한 버전들의 범위를 기술하기 위한 의도도 아니다. 이러한 요약의 목적은 아래에서 제공되는 보다 상세한 설명에 대한 서론으로서 단순화된 형태로 설명된 버전들의 몇몇 개념들을 제공하는 것이다.
일 양상은 다수의 압출 알고리즘들 중 하나에 의해 압축된 데이터 컨텐트의 통신을 제공한다. 각각의 압축 알고리즘은 압축된 데이터 컨텐트로부터 데이터 컨텐트를 재생성할 수 있는 대응하는 압축 해제 알고리즘을 가진다. 증가된 유연성을 제공하기 위해, 압축 해제 버추얼 머신이 해석하도록 의도된, 압축 해제 알고리즘을 수행하기에 충분한 바이트코드가 압축된 데이터 컨텐트와 함께 데이터 패킷 프로토콜의 일부로서 전송된다. 압축 해제 알고리즘을 해석하는데 요구되는 프로세싱 시간을 줄임으로써 사용자 경험을 향상시키기 위해, 버추얼 머신을 사용하기 보다는 검출된 바이트코드와 관련된 머신 코드로 이루어진 압축 해제 알고리즘의 액세스가능하고 실행가능한 버전이 데이터 컨텐트를 압축 해제하기 위해 위치되어(located) 사용된다.
다른 양상에서, 적어도 하나의 프로세서가 압축 해제 소스 코드의 실행가능한 버전을 위치시킴으로써 데이터 컨텐트를 압축 해제하는 방법을 수행하도록 구성된다. 특히, 제 1 모듈은 소스 코드를 검출한다. 제 2 모듈은 소스 코드와 관련된 압축 해제 알고리즘의 액세스가능하고 실행가능한 버전을 위치시킨다. 제 3 모듈은 결정된 압축 해제 알고리즘의 액세스가능하고 실행가능한 버전을 사용하여 압축된 데이터 컨텐트를 압축 해제한다.
또다른 양상에서, 컴퓨터 프로그램 제품은 컴퓨터가 적어도 하나의 메시지에 포함된 소스 코드를 검출하도록 하기 위한 코드들의 제 1 세트를 포함하는 컴퓨터-판독가능 매체를 포함한다. 코드들의 제 2 세트는 컴퓨터가 검출된 소스 코드와 관련된 대응하는 압축 해제 알고리즘의 액세스가능하고 실행가능한 버전을 위치시키도록 하기 위한 것이다. 그 다음에, 코드들의 제 3 세트는 컴퓨터가 위치된 대응하는 압축 해제 알고리즘의 액세스가능하고 실행가능한 버전을 사용하여 압축된 데이터 컨텐트를 압축 해제하도록 하기 위한 것이다.
또다른 양상에서, 바이트코드를 머신 코드로 조기에(early) 컴파일하기 위한 수단은 압축 해제 알고리즘들의 매우 효율적인 실행을 제공한다. 예를 들어, 신호 압축(SigComp)을 이용하여 압축된 세션 개시 프로토콜/세션 서술 프로토콜(SIP/SDP) 메시지들을 가지는 이러한 방법의 이용은 프로세싱의 레이턴시와 메시지의 호출 설정 시간을 단축시킨다.
일 구현예에서, 수신된 각각의 SIP/SDP 메시지의 압축 해제를 위해 범용 압축 해제 버추얼 머신(UDVM) 해석기를 실행하지 않도록 위한 메커니즘이 제공된다. UDVM 해석기의 실행을 피하는 것은 모바일 스테이션에서의 계산 요구들을 감소시키며 SIP/SDP 프로세싱에서의 가능성 있는 지연을 감소시킨다. 이러한 접근은 SIP-기반 호출 플로우들에 대한 호출 설정/해제 시간들을 감소시킨다.
다른 양상에서, 인터넷 프로토콜(IP) 멀티미디어 서브시스템(IMS) 데이터 컨텐트를 통신 디바이스로 배포(disseminate)하기 위한 방법은 압축 알고리즘을 이용하여 IMS 데이터 컨텐트를 압축하는 단계를 포함한다. 상기 방법은 압축 해제 바이트코드를 포함하는 데이터 구조를 생성하는 단계 및 압축된 IMS 데이터 컨텐트 및 압축 해제 바이트코드를 통신 디바이스로 전송하는 단계를 더 포함한다. 추가적으로, 상기 방법은 통신 디바이스로부터의 요청에 응답하여 압축 해제 바이트코드의 실행가능한 버전을 통신 디바이스로 전송하는 단계를 포함한다.
일 양상에서, 인터넷 프로토콜(IP) 멀티미디어 서브시스템(IMS) 데이터 컨텐트를 통신 디바이스로 배포하도록 구성된 적어도 하나의 프로세서는 압축 알고리즘을 이용하여 IMS 데이터 컨텐트를 압축하기 위한 제 1 모듈을 포함한다. 상기 적어도 하나의 프로세서는 압축 해제 바이트코드를 포함하는 데이터 구조를 생성하기 위한 제 2 모듈 및 압축된 IMS 데이터 컨텐트 및 압축 해제 바이트코드를 통신 디바이스로 전송하기 위한 제 3 모듈을 더 포함한다. 추가적으로, 상기 적어도 하나의 프로세서는 통신 디바이스로부터의 요청에 응답하여 압축 해제 바이트코드의 실행가능한 버전을 통신 디바이스로 전송하기 위한 제 4 모듈을 포함한다.
추가적인 양상에서, 컴퓨터 프로그램 제품은 다수의 코드들의 세트들을 포함하는 컴퓨터 판독가능 매체를 포함한다. 코드들의 제 1 세트는 컴퓨터가 압축 알고리즘을 이용하여 인터넷 프로토콜(IP) 멀티미디어 서브시스템(IMS) 데이터 컨텐트를 압축하도록 하기 위해 동작가능하다. 코드들의 제 2 세트는 컴퓨터가 압축 해제 바이트코드를 포함하는 데이터 구조를 생성하도록 하기 위해 동작가능하다. 코드들의 제 3 세트는 컴퓨터가 압축된 IMS 데이터 컨텐트 및 압축 해제 바이트코드를 통신 디바이스로 전송하도록 하기 위해 동작가능하다. 그리고, 코드들의 제 4 세트는 통신 디바이스로부터의 요청에 응답하여 압축 해제 바이트코드의 실행가능한 버전을 통신 디바이스로 전송하도록 하기 위해 동작가능하다.
또다른 양상에서, 인터넷 프로토콜(IP) 멀티미디어 서브시스템(IMS) 데이터 컨텐트를 통신 디바이스로 배포하기 위한 장치는 압축 알고리즘을 이용하여 IMS 데이터 컨텐트를 압축하기 위한 수단을 포함한다. 상기 장치는 압축 해제 바이트코드를 포함하는 데이터 구조를 생성하기 위한 수단 및 압축된 IMS 데이터 컨텐트 및 압축 해제 바이트코드를 통신 디바이스로 전송하기 위한 수단을 더 포함한다. 추가적으로, 상기 장치는 통신 디바이스로부터의 요청에 응답하여 압축 해제 바이트코드의 실행가능한 버전을 통신 디바이스로 전송하기 위한 수단을 포함한다.
전술한 그리고 관련된 목적들을 달성하기 위해, 하나 이상의 버전들은 아래에서 자세하게 설명되고 특히 청구항들에 기재되는 특징들을 포함한다. 다음의 설명 및 도면들은 특정한 예시적인 양상들을 상세하게 설명하며 상기 버전들의 원리들이 적용될 수 있는 몇몇 다양한 방식들을 나타낸다. 다른 장점들 및 신규한 특징들은 도면들과 관련하여 고려될 때 다음의 상세한 설명으로부터 명백할 것이며, 제시된 버전들은 이러한 양상들 및 이들의 등가물(equivalent)들 모두를 포함하도록 의도된다.
도 1은 통신 네트워크에서 통신하는 무선 디바이스에 대한 신호 압축 최적화 시스템의 블록 다이어그램이다.
도 2는 도 1의 시스템의 무선 디바이스들의 컴포넌트들의 일 양상에 대한 도식적인 다이어그램이다.
도 3은 3세대 파트너쉽 프로젝트(3GPP) 릴리스 5 네트워크 아키텍처의 추가적인 특징들을 도시하는 도 1의 무선 디바이스 및 통신 네트워크의 다이어그램이다.
도 4는 도 1의 신호 압축 최적화 시스템에 대한 인터넷 프로토콜(IP) 멀티미디어 서브시스템(IMS) 엔티티들의 구성 다이어그램이다.
도 5는 신호 압축(SigComp) 엔드포인트들의 위치들에 대한 블록 다이어그램이다.
도 6은 도 5의 SigComp 엔드포인트들의 아키텍처의 블록 다이어그램이다.
도 7은 도 1의 시스템에 의해 구현되는 신호 압축 최적화 방법의 플로우 다이어그램이다.
도 8은 도 1의 무선 디바이스에 대한 연산들의 신호 압축 최적화 시퀀스의 하나의 버전을 도시하는 다이어그램이다.
도 9는 도 1의 무선 비다이스에 대한 연산들의 신호 압축 최적화 시퀀스의 하나의 버전을 도시하는 다이어그램이다.
도 10은 도 1의 신호 압축 최적화 시스템의 하나의 버전을 도시하는 다이어그램이다.
도 11은 도 1의 신호 압축 최적화 시스템의 하나의 버전을 도시하는 다이어그램이다.
도 12는 정적 DEFLATE 성능을 도시하는 차트이다.
도 13은 LZSS(Lempei-Ziv-Storer-Szymanski) 압축 알고리즘 성능을 도시하는 차트이다.
이제 다양한 양상들이 도면들과 관련하여 설명된다. 다음의 설명에서, 설명하기 위한 목적으로, 하나 이상의 양상들의 철저한 이해를 제공하기 위해 다수의 특정한 세부사항들이 설명된다. 그러나, 다양한 양상들은 이러한 특정한 세부사항들 없이도 실시될 수 있다는 것은 명백할 수 있다. 다른 예들에서, 잘-알려진 구조들 및 디바이스들은 이러한 버전들을 간결하기 설명하기 위해 블록 다이어그램 형태로 도시된다.
상기 장치 및 방법들은 특히 무선 환경들에서 사용하기에 적합하지만, 통신 네트워크들, 인터넷과 같은 공용 네트워크들, 가상 사설 네트워크들(VPN)과 같은 사설 네트워크들, 로컬 영역 네트워크들, 광역 네트워크들, 롱 홀(long haul) 네트워크들, 또는 임의의 다른 타입의 데이터 통신 네트워크를 포함하나 이에 한정되지는 않는 임의의 타입의 네트워크 환경에 적합할 수 있다.
도 1은 통신 네트워크(12) 및 무선 사용자 장치(통신 디바이스)(14) 간의 신호 압축 최적화 시스템의 일 양상을 나타낸다. 통신 네트워크(12) 내에서, 멀티미디어 컨텐트(16)로서 도시되는 미디어 또는 시그널링(예를 들어, 오디오, 이미지, 비디오, 브레일(Braille) 등)(일반적으로 "데이터")은 데이터 압축 알고리즘(20)을 이용하는 압축기(18)에 의한 데이터 압축을 거친다. 데이터 압축 해제 바이트코드(22)는 압축된 미디어 컨텐트(26)가 뒤따르는 무선 통신 링크(24)에 의한 무선 전송에 적합한 형태의 소스 코드 또는 바이트코드를 사용자 장치(14)의 무선 통신 링크(28)로 제공한다. 수신된 바이트코드(22)에 응답하여 프로세서(30)는 바람직하게는 매 인스턴스에서 버추얼 머신 압축 해제기의 사용을 피하기 위해 감소된 셋업 레이턴시에 대하여 편리한 때에 최적화된 압축 해제기(32)를 선택한다. 대안적으로, 상기 구현은 최적화된 압축 해제기(32)가 액세스 가능하지 않은 인스턴스들을 가질 수 있다. 그 다음에 프로세서(30)는 범용 압축 해제기 버추얼 머신(UDVM)(34)으로서 도시되는, 버추얼 머신 압축 해제기를 선택할 수 있다. UDVM(34)는 수신된 바이트코드(22')에 의해 지시되는 바와 같은 일정 범위의 압축 해제 알고리즘들을 플렉서블하게 수행할 수 있는 일반화된 아키텍처를 가진다; 그러나 UDVM(34)은 임의의 특정한 압축 해제 알고리즘을 위해 최적화되지 않으며 실행 전에 바이트코드(22)에 있는 각각의 명령문(statement)을 분석하는 것과 관련하여 요구되는 지연들을 겪게 된다.
이러한 실행 지연들에 대한 바람직한 회피를 수행하기 위해, 프로세서(30)는 바이트코드(22")의 액세스 가능한 카피가 수신된 바이트코드(22')와 동일한 것을 인식한다. 그 다음에 상기 바이트코드'를 수행하기 위한 실행가능한 압축 해제 알고리즘(38)의 일부로서 머신 코드(36)가 최적화된 압축 해제기(32)에 의해 사용된다. 머신 코드(36) 및/또는 최적화된 압축 해제기는 버추얼 머신에서 소스 코드 (즉, 바이트코드(22'))를 해석하는 것과 비교할 때 압축 해제를 위해 감소된 시간에 대하여 최적화된다. 가능할 때마다 UDVM(34)의 사용을 피할 수 있도록 함으로써, 사용자 장치(14)는 지연된 셋업을 피하여 미디어 컨텐트 플레이어(38)를 통해 미디어 컨텐트(160)를 제공하는데 있어서 사용자 경험을 향상시킨다.
머신 코드(36)가 로컬하게 저장된 라이브러리의 일부로서 액세스될 수 있고, 미래의 사용을 위해 로컬하게 컴파일되어 저장될 수 있고, 원격 라이브러리로부터 무선으로 액세스될 수 있고, 요청에 따라 원격으로 컴파일되고 미래의 사용을 위해 저장될 수 있고, 그리고/또는 펌웨어 또는 최적화된 압축 해제기로 통합된 다른 형태의 회로로서 제공될 수 있는 본 발명의 장점을 이해해야 할 것이다. 컴파일링 및/또는 원격으로 컴파일된 머신 코드(36)에서의 지연들은 무선 사용자 장치(14)에 대한 감소된 복잡도 요구들 및 UDVM을 통한 온-고잉(on-going) 압축 해제 효율들에서의 장점들에 의해 오프셋될 것이다.
몇몇 양상들에 따르면, 통신 디바이스(14)는 임의의 타입의 컴퓨터화된 통신 디바이스를 포함할 수 있다. 예를 들어, 도 1에 도시된 바와 같이, 통신 디바이스(14)는 무선 및/또는 셀룰러 전화기와 같은 모바일 통신 디바이스를 포함할 수 있다. 대안적으로, 통신 디바이스(14)는 프록시 호출/세션 제어 펑션(P-CSCF) 서버, 네트워크 디바이스, 서버, 컴퓨터 워크스테이션 등과 같은 고정 통신 디바이스를 포함할 수 있다. 통신 디바이스(14)는 이러한 설명되거나 또는 도시된 디바이스들에 한정되지 않으며, 추가적으로 개인 정보 단말기(PDA), 양방향 텍스트 페이저(pager), 유선 또는 무선 통신 포털을 가지는 휴대용 컴퓨터, 유선 및/또는 무선 통신 포털을 가지는 임의의 타입의 컴퓨터 플랫폼을 포함할 수 있다는 것을 이해해야 할 것이다. 또한, 통신 디바이스(14)는 원격 센서들, 원격 서버들, 진단 툴들, 데이터 중계기들 등과 같은 원격-슬레이브 또는 다른 유사한 디바이스일 수 있으며, 이러한 디바이스는 엔드-사용자를 가지지 않으나 단순히 무선 또는 유선 네트워크를 통해 데이터를 전달한다. 대안적인 양상들에서, 통신 디바이스(14)는 랜드라인 전화기, 개인용 컴퓨터, 셋-톱 박스 등과 같은 유선 통신 디바이스일 수 있다. 추가적으로, 하나의 타입 또는 다수의 위에서 언급된 타입들의 임의의 개수의 통신 디바이스(14)들의 임의의 조합이 시스템(100) 내에서 사용될 수 있다는 것을 유의하도록 한다. 그러므로, 본 발명의 장치 및 방법들은 그에 따라 무선 모뎀들, 개인 컴퓨터 메모리 카드 국제 연합(PCMCIA) 카드들, 액세스 터미널들, 개인용 컴퓨터들, 전화기들 또는 이들의 임의의 결합 또는 하위-결합을 포함하며 이에 한정되지 않는 유선 또는 무선 통신 포털을 포함하는 임의의 형태의 유선 또는 무선 디 바이스 또는 컴퓨터 모듈을 통해 수행될 수 있다.
추가적으로, 통신 디바이스(14)는 멀티미디어 컨텐트(16)를 요청하고, 멀티미디어 컨텐트(16)와 상호작용하고, 그리고/또는 멀티미디어 컨텐트(16)를 재생하는 것과 같은 목적들을 위한 사용자 인터페이스(42)를 포함할 수 있다. 이러한 사용자 인터페이스(42)는 통신 디바이스(14)로의 입력을 생성 또는 수신하도록 동작가능한 입력 디바이스(44) 및 통신 디바이스(14)의 사용자가 소비하도록 정보를 생성 및/또는 제공하도록 동작가능한 출력 디바이스(46)를 포함한다. 예를 들어, 입력 디바이스(44)는 키패드 및/또는 키보드, 마우스, 터치-스크린 디스플레이, 음성 인식 모듈과 관련된 마이크로폰 등과 같은 적어도 하나의 디바이스를 포함할 수 있다. 특정 양상들에서, 입력 디바이스(44)는 컨텐트 요청에 대한 사용자 입력 또는 추가적인 정보 요청에 대한 사용자 입력을 제공할 수 있다. 또한, 예를 들어, 출력 디바이스(46)는 디스플레이, 오디오 스피커, 햅틱 피드백 매커니즘 등을 포함할 수 있다. 출력 디바이스(46)는 그래픽 사용자 인터페이스, 사운드, 진동과 같은 감각 등을 생성할 수 있으며, 이러한 출력들은 예컨대 멀티미디어 컨텐트(16)(도 1)의 제공과 관련될 수 있다.
또한, 통신 디바이스(14)는 디바이스에 기능을 제공하기 위해 애플리케이션들을 실행하도록 동작가능한 컴퓨터 플랫폼(48)을 포함할 수 있으며, 추가적으로 입력 디바이스(44) 및 출력 디바이스(46)와 상호작용할 수 있다. 컴퓨터 플랫폼(48)은 메모리(50)를 포함할 수 있으며, 메모리(50)는 판독-전용 및/또는 랜덤-액세스 메모리(RAM 및 ROM), 삭제가능하고 프로그래밍가능한 판독-전용 메모리(EPROM), 전기적으로 삭제가능하고 프로그래밍가능한 판독-전용 메모리(EEPROM), 플래시 메모리, 및/또는 컴퓨터 플랫폼들에 공통적인 임의의 메모리와 같은 휘발성 및 비휘발성 메모리 부분들을 포함할 수 있다. 또한, 메모리(50)는 전자적 화일 시스템 및 자기 미디어, 광학 미디어, 테입, 소프트 및/또는 하드 디스크 및 이동식 메모리 컴포넌트들과 같은 임의의 2차 및/또는 3차 스토리지 디바이스를 포함하는 액티브 메모리 및 스토리지 메모리를 포함할 수 있다.
또한, 컴퓨터 플랫폼(48)은 또한 프로세서(52)를 포함할 수 있으며, 프로세서(52)는 애플리케이션-특정 집적 회로(ASIC), 또는 다른 칩셋, 프로세서, 로직 회 로, 또는 다른 데이터 프로세싱 디바이스일 수 있다. 통신 디바이스(14)가 셀룰러 전화기를 포함하는 경우와 같은 몇몇 양상들에서, 프로세서(52) 또는 ASIC과 같은 다른 로직은 음성 호출, 데이터 호출 및 메모리에 있는 미디어-관련 애플리케이션들과 같은 임의의 상주 소프트웨어 컴포넌트들과 인터페이스하는 애플리케이션 프로그래밍 인터페이스(API) 계층(54)을 실행할 수 있다. API(54)는 각각의 통신 디바이스에서 실행되는 런타임 환경일 수 있다. 하나의 이러한 런타임 환경은 캘리포니아 샌디에고에 소재한 퀄컴사에 의해 개발된 무선®(BREW®) 소프트웨어를 위한 이진 런타임 환경이다. 예를 들어, 무선 컴퓨팅 디바이스들에서의 애플리케이션들의 실행을 제어하도록 동작하는 다른 런타임 환경들이 사용될 수 있다.
추가적으로, 프로세서(52)는 통신 디바이스(14)의 기능과 통신 네트워크(28)(도 1) 상에서의 통신 디바이스의 동작을 인에이블하는, 하드웨어, 펌웨어, 소프트웨어 및 이들의 조합들로 구현되는 다양한 프로세싱 서브시스템들(56)을 포함할 수 있다. 예를 들어, 프로세싱 서브시스템들(56)은 통신들을 개시 및 유지하도록 허용하고, 통신 디바이스(14)의 컴포넌트들 내에서 그리고/또는 중에서뿐만 아니라 다른 네트워킹된 디바이스들과 데이터를 교환하도록 허용한다. 셀룰러 전화기와 같은 일 양상에서, 프로세서(52)는 사운드, 비휘발성 메모리, 화일 시스템, 전송, 수신, 탐색, 계층 1, 계층 2, 계층 3, 메인 제어, 원격 절차, 핸드셋, 전력 관리, 진단, 디지털 신호 프로세서, 보코더, 메시징, 호출 관리자, 블루투스® 시스템, 블루투스® LPOS, 위치 결정, 위치 엔진, 사용자 인터페이스, 휴면(sleep), 데이터 서비스들, 보안, 인증, USIM/SIM(범용 가입자 식별 모듈/가입자 식별 모듈 ), 음성 서비스들, 그래픽들, USB(범용 직렬 버스), MPEG(동영상 전문가 그룹) 프로토콜 멀티미디어와 같은 멀티미디어, GPRS(범용 패킷 무선 서비스), 단문 메시지 서비스(SMS), 짧은 음성 서비스(SVSTM), 웹브라우저 등과 같은 프로세싱 서브시스템들(56) 중 하나 또는 이들의 결합을 포함할 수 있다. 제시된 양상들에서, 프로세서(52)의 프로세싱 서브시스템들(56)은 컴퓨터 플랫폼(48)에서 실행되는 애플리케이션들과 상호작용하는 임의의 서브시스템 컴포넌트들을 포함할 수 있다.
컴퓨터 플랫폼(48)은 또한 통신 디바이스(14)의 다양한 컴포넌트들 사이에서의 통신들을 가능하게 할 뿐만 아니라 통신 디바이스(14) 및 통신 네트워크(28)(도 1) 사이에서 컨텐트(24)(도 1) 및 컨텐트 요청들을 교환하도록 동작가능한 통신 모듈(58)을 포함할 수 있다. 통신 모듈(58)은 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 결합으로 구현될 수 있으며, 또한 인트라(intra)-디바이스 및 인터(inter)-디바이스 통신들에서 사용하기 위한 모든 프로토콜들을 포함할 수 있다. 또한, 통신 모듈(58)은 여기에 제시된 본 발명의 장치 및 방법들에 따라 멀티미디어 컨텐트(16)(도 1)를 요청하고 압축된 미디어/시그널링 컨텐트(28) 및 바이트코드(22')(도 1)를 수신하는 것과 같이 정보를 전송 및/또는 수신하도록 동작가능하다.
몇몇 양상들에서, 통신 디바이스(14)의 메모리(50)는 추가적으로 백그라운드 또는 포그라운드(foreground) 프로세스에서 통신 네트워크(12)를 통해 멀티미디어 컨텐트(16)를 검색, 저장 및 실행하도록 동작가능한 사용자 인터페이스 모듈(60)을 저장할 수 있다. 사용자 인터페이스 모듈(40)은 멀티미디어 컨텐트(16)의 타입에 적합한 미디어 플레이어 및 사용자 인터페이스(42)의 기능들을 포함하는 이러한 기능들을 수행하도록 동작가능한 하드웨어, 소프트웨어, 펌웨어, 데이터 및 실행가능한 명령들 중 하나 또는 이들의 임의의 결합을 포함할 수 있다.
도 3-6을 참조하면, 신호 압축 최적화 시스템(10)의 사용을 위한 예시적인 환경으로서, IP 멀티미디어 서브시스템(IMS) 네트워크들을 위한 3세대 파트너쉽 프로젝트(3GPP) 및 3GPP2 표준들에 의해 요구되고 RFC 3320, RFC 3321 및 IMS를 위한 3GPP 표준들(예를 들어, 3GPP TS 23.228)에서 정의되는 특정 타입의 신호 압축(SigComp)을 수행하기 위한 네트워크 아키텍처(100)가 제시된다. 도 3에서, 일반적인 방법은 모바일 통신 디바이스(SIP 사용자 에이전트) 및 프록시 호출/세션 제어 펑션(P-CSCF) 사이에서 무선으로 전송되는 SIP 시그널링 메시지들을 압축한다. 이것은 압축하는 측에서 전송되는 제 1 메시지의 일부로서 압축-해제 측으로 압축 해제 알고리즘을 전송하는 동작을 포함한다. 상기 알고리즘(바이트코드(22'))을 수신하면 압축-해체 측은 수신된 바이트코드(22')를 해석하는 메모리(50)에 있는 범용 압축 해제기 버추얼 머신(UDVM) 해석기(64)를 실행시키고 후속 메시지들(압축된 미디어/시그널링 컨텐트(28))을 압축 해제한다. 이러한 접근의 장점은 자신의 바이트코드(22)가 무선을 통해 제공되는 한 임의의 종류의 알고리즘을 지원할 수 있다는 것이다. 예시적인 버전에서 메모리(50)에 있는 호출 제어 모듈은 이러한 통신을 위한 프로토콜들을 정의하는 로컬 세션 개시 프로토콜(SIP) 및 세션 서술 프로토콜(SDP)이다.
UDVM 해석기에서의 바이트코드 압축 해제 실행에 기인한 계산 오버헤드는 바이트코드의 각각의 명령이 해석될 때마다 지연을 발생시키며, 이는 호출 설정 시간들의 연장에 기인하여 사용자 경험을 나쁘게 할 수 있다. 바람직하게는 메모리(50)에 있는 압축 해제 디스패처 모듈(68)은 UDVM 해석기(64)의 사용을 감소시킴으로써 통신 디바이스(14)의 컴퓨터 플랫폼(48)에 의해 지원되는 하나 이상의 최적화 구현들에 의하여 이러한 지연을 경감시킨다.
제 1 구현으로서, 메모리(50)에 있는 최적화된 압축 해제 모듈(70)에 의해 실행될 수 있는 바이트코드(22)의 머시 코드로의 이른(early) 컴파일은 압축 해제 알고리즘들의 매우 효율적인 실행을 제공하며, 그리하여 다음 SIP 메시지들의 프로세싱 및 호출 설정 시간들의 레이턴시를 줄인다. 이를 위해, 압축 해제 디스패처 모듈(68)은 수신된 바이트코드(22')를 하나 이상의 로컬하게 액세스가능한 바이트코드(22") - 이들 각각은 개별적인 압축 해제 머신 코드(36)와 짝지워짐(paired) - 와 비교하기 위해 압축 해제 라이브러리(72)로 액세스한다. 매칭이 검출되면, 압축 해제 머신 코드(36)는 UDVM 해석기(64)보다는 최적화된 압축 해제 모듈(70)에 의해 실행될 수 있다.
제 2 구현으로서, 압축 해제 디스패처 모듈(68)이 매칭을 검출하는데 실패한 새롭게 수신된 바이트코드(22')에 대하여, 압축 해제 디스패처 모듈(68)은 메모리(50)에 있는 컴파일러(74)가 압축 해제 머신 코드(36)를 생성하도록 지시하며, 상기 압축 해제 머신 코드(36)는 그 후에 바이트코드(22')와 함께 각각 압축 해제 라이브러리(72)에 있는 비어 있는 코드 저장 레코드(76) 및 비어 있는 인덱스(78) 에 저장된다. 이러한 바이트코드(22')의 미래의 인스턴스들이 제 1 구현에 의해 처리될 수 있도록 이러한 컴파일은 백그라운드에서 발생할 수 있다.
제 3 구현으로서, 제 2 구현에서와 같이 매칭을 검출하는데 실패하면, 압축 해제 디스패처 모듈(68)은 미래의 인스턴스들을 위해 압축 해제 머신 코드들의 주기적으로 업데이트된 데이터베이스로부터 외부적으로 컴파일되거나 또는 검색되도록 바이트코드(22')에 대한 요청을 포워딩한다.
제 4 구현으로서, 컴퓨터 플랫폼(58)은 바람직하게는 압축 해제를 위해 최적화된 디바이스 하드웨어에서 병렬 프로세싱을 허용함으로써 더 빠른 설정을 용이하게 하는 UDVM 하드웨어 프로세서(예를 들어, 디지털 신호 프로세서(DSP))(80)를 포함할 수 있다. 압축 해제 디스패처 모듈(68)은 로컬 SIP/SDP 애플리케이션(66)을 위하여 UDVM(64)을 에뮬레이트하도록 프록시 UDVM(82)을 사용한다.
도 3-6에서, 일반적으로 3GPP TS 23.228, 3GPP TS 23.002에서 설명된 3GPP 릴리스 5 네트워크 아키텍처에 따른 통신 네트워크(100)는 도 1-2의 신호 압축 최적화 시스템(100)에 운영 환경을 제공한다. 도 3에 대한 특정한 참조를 통해, 통신 네트워크(100)는 논리적으로 코어 네트워크(CN) 인프라구조(102) 및 액세스 네트워크(AN) 인프라구조(104)로 나누어진다. CN 인프라구조(102)는 논리적으로 회선 스위칭(CS) 도메인(106), 패킷 스위칭(PS) 도메인(108) 및 인터넷 프로토콜(IP) 멀티미디어 서브시스템(IMS)(110)으로 나누어진다. UMTS 지상 무선 액세스 네트워크(UTRAN) 인터페이스들(104)로서 도시되는 AN 인프라구조(104)는 계층적 무선 네트워크 서브시스템(RNS)(112)에 의해 형성되며, RNS(112)의 엘리먼트들은 무선 네 트워크 제어기(RNC)(114), 노드 B 엘리먼트(116) 및 사용자 장치(UE)(118)이다. 노드 B(116)는 하나 이상의 셀들을 서비스하는 논리적 네트워크 컴포넌트이다. 노드 B(116)는 무선 셀들에서의 통신을 위한 무선 전송/수신 유니트이다. RNC(114)는 하나 이상의 노드 B 엘리먼트들(116)의 제어를 위한 기능들을 가지는 네트워크 컴포넌트이다. RNC(114)는 UTRAN 인터페이스들(104) 사이에서 프로토콜 교환들을 처리한다. RNC(114)는 운용 지원 시스템(미도시)에 대한 액세스를 포함하는 무선 네트워크 서브시스템(112)의 집중된 운용 및 유지를 제공한다. 다른 것들 중에서, RNC(114)의 기능들은 무선 자원 제어, 승인(admission) 제어, 채널 할당 및 핸드오버 제어를 포함한다. 회선 스위칭 도메인(106)에 특유한 엔티티들은 시그널링 게이트웨이(SGW)(119), 모바일 스위칭 센터(MSC)(120), 게이트웨이 모바일 스위칭 센터(GMSC)(122)이다. CS 도메인(106)은 또한 이러한 타입의 시그널링에 구속되는 특정한 홈 가입자 서비스들(123)을 포함한다. MSC(120)는 무선 네트워크 서브시스템(112)과 고정 네트워크들 사이의 인터페이스를 구성한다. GMSC(122)는 모바일 스테이션(사용자 장치(UE))(118)의 실제 위치로의 라우팅을 수행하는 MSC(120)이다. 패킷 스위칭 도메인(108)에 특유한 엔티티들은 서빙 GPRS 지원 노드(SGSN)(124) 및 게이트웨이 GPRS 지원 노드(GGSN)(126)이다. SGSN(124) 및 GGSN(126)은 패킷 트래픽을 처리한다. SGSN(124)은 자신의 서비스 영역 내에 있는 모바일 스테이션들(118)로 패킷들을 전달한다. SGSN(124)은 하나의 셀에 있는 사용자 장치(118)로부터 다른 셀에 있는 사용자 장치로 로밍 가입자를 핸드오프하는 것과 같은 이동성 관리 기능들을 수행한다. GGSN들(126)은 공용 인터넷(128), 다 른 모바일 서비스 제공자의 GPRS 서비스들(홈 가입자 서비스(HSS))(130) 또는 기업 인트라넷들(미도시)과 같은 외부 IP 네트워크들과의 인터페이스들로서 사용된다. GGSN들(126)은 특정한 모바일 스테이션들(122)을 서비스하는 SGSN들(124)로 프로토콜 데이터 유니트들(PDU)을 터널링(tunnel)하기 위해 필요한 라우팅 정보를 유지한다.
IP 멀티미디어 서브시스템(IMS) 코어 네트워크(110)의 IMS 엔티티들은 모바일 인터넷 패러다임(paradigm)에 따라 다양한 멀티미디어 서비스들을 개발하기 위한 공통 플랫폼을 생성하기 위해 3세대 파트너쉽 프로젝트(3GPP) 릴리스 5의 일부로서 소개되었다. 상기 IMS 엔티티들은 IP 멀티미디어(IM) 서비스들을 제공하기 위한 모든 코어 네트워크 엘리먼트들, 예를 들어, 호출 세션 제어 펑션들(CSCF)(130)(즉, 질의(interrogating), 프록시 및 서빙), IMS 미디어 게이트웨이 펑션(MGW)(131), 미디어 게이트웨이 제어 펑션(MGCF)(132) 및 멀티미디어 자원 펑션(133)을 포함한다. 3GPP에 따른 IMS CN(100)은 표준화된 인터페이스들에 의해 정의되는 노드들보다는 펑션들을 표준화한다. 구현자들은 자유롭게 두 개의 펑션들을 하나의 노드로 결합하거나 또는 하나의 펑션을 둘 이상의 노드들로 분할할 수 있다. IMS CN(110)은 음성 및 멀티미디어 호출들과 세션들뿐만 아니라 HSS(130)와 같은 다른 UMTS 네트워크들 및 공용 스위칭 전화 네트워크(PSTN)(134)와 같은 다른 네트워크들로의 상호접속을 제어하는 도메인이다. IMS CN(110)은 상이한 경로들을 통과하는 시그널링 플레인(plane) 및 미디어 플레인을 가진다.
SigComp는 IMS CN(110)의 일부이며 SIP 시그널링 트래픽을 압축하기 위해 사 용된다. IP 멀티미디어(IM) 도메인은 비용 절감 및 예컨대 음성 전화, 비디오 전화, 멀티미디어 컨퍼런스, 인스턴스 메시징 및 실시간 인터랙티브 게임들과 같은 새로운 서비스들의 제공을 가능하게 한다. IMS는 무선 사용자를 위한 음성, 비디오, 메시징, 데이터 및 웹-기반 기술들의 통합을 가능하게 하고, 상기 기술들에 대한 액세스를 가능하게 하며, 모바일 통신의 성장과 인터넷의 성장의 결합을 가능하게 한다. IP 멀티미디어 코어 네트워크 서브시스템(IMS)은 공용 지상 모바일 네트워크(PLMN) 운용자들이 자신들의 가입자들에게 인터넷 애플리케이션들, 서비스들 및 프로토콜들에 기반하고 이들을 통해 구성된 멀티미디어 서비스들을 제공할 수 있도록 한다. IMS는 멀티미디어 시그널링 및 베어러(bearer) 트래픽을 전송하기 위해 패킷 스위칭 도메인을 사용한다. 패킷 스위칭 도메인은 터미널이 이동하고 상기 IMS로부터 상기 이동을 숨기는 동안 서비스를 유지한다. IMS는 회선 스위칭 도메인에 대하여 독립적이다. IM 도메인은 사용자들 및 애플리케이션들이 다수의 당사자들 사이의 세션들 및 호출들을 제어할 수 있도록 한다. IM 도메인은 호출들을 위해 요구되는 기능, 보안 및 품질을 제공하기 위해 네트워크 자원들을 제어하고 지원한다. IM 도메인은 사용자들이 임의의 UMTS 네트워크로부터 자신들의 서비스들에 액세스할 수 있도록 사용자들에 대한 등록을 제공한다. IM의 하나의 추가적인 역할은 호출 디테일 레코드(CDR)들을 생성하는 것이며, CDR들은 호출 참여자들, 시간, 기간 및 전송되고 수신된 데이터량에 대한 정보를 포함한다. CDR들은 요금 청구 목적들을 위해 사용된다.
도 4에서, 3GPP TS 23.228에 따른 IMS 엔티티들은 CSCF, MGCF, IMS 미디어 게이트웨이 펑션(IMS-MGW), 멀티미디어 자원 펑션 제어기(MRFC), 멀티미디어 자원 펑션 프로세서(MRFP), 가입 로케이터 펑션(SLF), 브레이크아웃 게이트웨이 제어 펑션(BGCF) 및 애플리케이션 서버(AS)를 포함하며, 여기서 사용자 트래픽을 지원하는 인터페이스들은 굵은 선들로 도시되고 시그널링을 지원하는 인터페이스들은 점선들로 도시된다.
IMS 엔티티들의 역할들은 3GPP TS 23.228에서 설명된다. SIP 서버인 CSCF는 프록시 CSCF(P-CSCF), 서빙 CSCF(S-CSCF) 또는 질의 CSCF(I-CSCF)로서 동작할 수 있다. P-CSCF는 IMS CN에 대한 UE의 첫번째 접촉 포인트이다. P-CSCF는 SigComp 메시지들의 압축 및 압축 해제를 수행하는 코어 네트워크 엘리먼트이기 때문에, P-CSCF는 또한 SigComp에 대하여 특별히 중요하다. 이를 위해, P-CSCF는 압축기 및 압축 해제기를 포함한다(IMS 터미널들도 또한 이들 모두를 포함한다). S-CSCF는 네트워크에서 세션 상태들을 처리하는 반면에, I-CSCF의 역할은 특정한 사용자를 위한 적절한 S-CSCF를 찾는 것이다. MGCF는 프로토콜 컨버전을 수행하고, 아웃 오브 밴드(out of band) 정보를 수신하고, CSCF와 통신하고, CSCF를 선택하며, 호출 상태의 일부분들을 제어한다. IMS-MGW는 스위칭 회로 네트워크로부터의 베어러 채널들 및 패킷 네트워크로부터의 미디어 스트림들을 종료시킨다. IMS-MGW는 미디어 컨버전, 베어러 제어 및 페이로드 프로세싱을 처리한다. MRFC의 작업은 MRFP에 있는 미디어 스트림 자원들을 제어하고, CDR들을 생성하고, AS 및 S-CSCF로부터의 정보를 해석하여 그에 따라 MRFP를 제어하는 것이다. MRFP는 MRFC에 의해 제어되는 자원들을 제공하고, Mb 레퍼런스 포인트를 통해 베어러들을 제어하고, 미디어 스트 림들을 혼합하고, 소싱(source)하여 처리한다. SLF는 등록 및 세션 설정 동안 I-CSCF에 의해 요청될 때 요구되는 가입자 특정 데이터를 포함하는 HSS의 명칭을 제공한다. SLF는 또한 등록 프로세스 동안 S-CSCF에 의해 조회(quary)된다. BGCF는 PSTN 브레이크아웃이 발생하는 네트워크를 선택하고 사용되는 MGCF를 선택한다. AS는 SIP 애플리케이션 서버, 오픈 서비스 액세스(OSA) 애플리케이션 서버 또는 모바일 향상된 로직을 위한 맞춤화된 애플리케이션(CAMEL) IP 멀티미디어 서비스 스위칭 펑션(IM-SSF)일 수 있다. AS는 부가 가치(value added) IM 서비스들을 제공한다. S-CSCF 및 AS 사이의 인터페이스는 AS에 존재하는 서비스들을 제공하기 위해 사용된다.
IP 멀티미디어 서브시스템은 액세스 독립성을 달성하고 3GPP TS 23.228에 따른 인터넷을 통한 유선 터미널들과의 매끄러운 동작을 유지하기 위해 인터넷 엔지니어링 태스크 포스(IETF) 인터넷 표준들에 적합하게 되도록 시도한다. IM 도메인에서의 등록 및 호출 제어를 위해 사용되는 시그널링 프로토콜은 세션 개시 프로토콜(SIP)이다. SIP는 UE 및 CSCF 사이에서 적용되는 단일 프로토콜이다.
도 5에서, 터미널로 전송되는 메시지들을 압축하고 터미널로부터 수신되는 메시지들을 압축 해제하는 엔티티는 P-CSCF이며, UE로부터 S-CSCF로의 SIP 시그널링 플로우로서 도시된다. UE에서 SigComp를 통해 압축되는 SIP 메시지들은 UMTS 지상 무선 액세스 네트워크(UTRAN)의 무선 인터페이스, 기지국(BS) 및 무선 네트워크 제어기(RNC)를 통해 플로우된다. UTRAN으로부터 이들은 서빙 GPRS 지원 노드(SGSN) 및 게이트웨이 GPRS 지원 노드(GGSN)를 통해 P-CSCF로 이동하며, P-CSCF 에서 SigComp 메시지들은 압축 해제된다. P-CSCF로부터 전방에서는, 압축되지 않은 SIP 메시지들이 전송된다. 무선 액세스 네트워크로부터 보다는 네트워크 코어로부터 SigComp 압축 및 압축 해제를 수행하는 엔티티를 선택하는 이유들은 아래에서 논의된다. 우선, 압축은 암호화 및 복호화 포인트들로부터 아웃바운드로 적용되어야 하고 그것은 투명(transparent)해야 하기 때문에, 트래픽 암호화 및 복호화 기능들의 위치는 또한 압축 기능의 위치에 영향을 준다. 몇몇 트래픽 타입들의 패킷 컨텐트는 인증되거나, 무결성 보호되거나 또는 암호화된다. 터미널로부터의 트래픽을 복호화하고 터미널로의 트래픽을 암호화하는 신뢰 당사자(trusted party)는 모바일 네트워크 코어 내에 있다. 엔드포인트가 무선 액세스 네트워크로부터 선택되었다면, 네트워크 설계 및 성능은 모바일 네트워크 내에서 메시지 키들을 전달함으로써 추가되는 복잡도를 가지게 될 것이다. 시그널링 압축의 위치에 영향을 주는 다른 중요한 문제는 핸드오버이다. SigComp에서, 상대적으로 많은 양의 히스토리 상태가 효율적인 압축을 가능하게 하기 위해 구성된다. 압축 해제를 수행하는 엔드포인트가 변경되면, 압축 효율성을 유지하기 위해 상기 상태는 새로운 엔티티로 전달되어야 할 필요가 있을 것이다. 이러한 종류는 해결책은 네트워크가 복잡도를 더할 것이다. 압축 해제가 P-CSCF에서 수행된다면, 압축 해제 엔드포인트는 애플리케이션 계층 세션의 기간 동안 안정하게 유지된다.
그리하여, SigComp 펑션들의 위치는 모바일 터미널 내에 그리고 네트워크의 내부, 즉, IMS 내에 있다. 이러한 접근은 헤더 압축과 대조되며, 헤더 압축에서 압축 펑션들은 터미널 내에 그리고 무선 액세스 네트워크 내에 위치한다. SigComp 의 경우에, 메시지들은 라우팅 정보를 포함하지 않는 애플리케이션 레벨 메시지들이다. 이들은 전송 계층 프로토콜들의 페이로드 내에서 전달되며, 전송 계층 프로토콜들은 IP에 대한 라우팅 문제들을 남기게 된다. SigComp는 전송 계층 프로토콜들의 헤더들을 압축하지 않는다. 전송 계층 프로토콜 페이로드의 컨텐트에 관심있는 엔티티들, 즉 두 개의 통신하는 엔드포인트들만이 SigComp 메시지들을 압축 해제할 필요가 있다.
SIP 시그널링이 터미널 및 P-CSCF 사이에서 압축되어 전송되는 이유가 무선 인터페이스를 통해 소량의 바이트들을 절약하는 것이 아님을 강조하고자 한다. 터미널이 더 많은 대역폭을 사용할 멀티미디어 세션을 설정하고 있을 때 시그널링의 소량의 바이트들을 절약하는 것은 가치가 없다. 압축에 대한 주요한 동기는 무선 인터페이스를 통해 SIP 메시지들을 전송하기 위해 요구되는 시간을 줄이는 것이다.
IMS에서, 세션 제어를 수행하는 프로토콜은 세션 개시 프로토콜(SIP)이다. SIP는 원래 존재하는 멀티미디어 컨퍼런스들에 사용자들을 초대하기 위해서 사용되었으나, 요즈음에는 멀티미디어 세션들의 생성, 수정 및 종료를 위해 주로 사용된다. SigComp가 임의의 텍스트-기반 프로토콜의 메시지들을 압축하기 위해 사용될 수 있더라도, 현재 주요한 초점은 SIP 메시지들의 압축에 있다.
SIP는 처리되는 멀티미디어 세션 및 세션을 서술하기 위해 사용되는 메커니즘의 타입에 대하여 독립적이다. 멀티미디어 세션들을 서술하기 위해 가장 일반적인 포맷은 세션 서술 프로토콜(SDP)이다. SDP는 단순히 SIP 메시지들의 바디(body) 내에서 전달되는 텍스트 포맷이다. 이것은 SigComp가 SIP 및 SDP 모두를 효율적으로 압축할 수 있어야 하는 이유이다. SIP/SDP 정적(static) 사전은 이러한 목적을 위해 정의되었다.
SIP 프로토콜은 여러가지 엔티티들을 정의하며, 상기 엔티티들은 사용자 에이전트들(UA), 리디렉트(redirect) 서버들, 프록시 서버들, 등록 관리자들(registrar) 및 위치 서버들이다. 3GPP 릴리스 5 또는 후속 릴리스들을 지원하는 모든 3G 터미널들은 SIP UA를 포함한다. 또한, 3GPP2는 SIP를 채택하였다. SIP는 프록시 서버들을 사용하여 사용자의 현재 위치로 요청들을 라우팅하고, 서비스들을 위해 사용자들을 인증 및 인가하고, 프로바이더 호출-라우팅 정책들을 구현하고, 사용자들에게 특징들을 제공하도록 돕는다. 리디렉트 서버는 사용자가 도달할 수 있는 대안적인 위치들을 제공함으로써 SIP UA들의 위치 선정을 돕는다. 등록 관리자는 등록들을 수용한다. 등록 관리자는 일반적으로 리디렉트 서버 또는 프록시 서버와 함께 위치한다. 위치 서버는 SIP 엔티티가 아니나, SIP를 사용하는 임의의 아키텍처의 중요한 부분이다. 위치 서버들은 사용자들의 가능한 위치들을 저장하고 리턴한다.
SIP는 하이퍼텍스트 전달 프로토콜(HTTP)과 같은 요청/응답 프로토콜이며, SIP는 HTTP에 기반한다. SIP 사용자 에이전트 클라이언트들(UAC)은 요청들을 전송하고 사용자 에이전트 서버들(UAS)은 응답들을 리턴한다. 요청의 시작 라인은 방법(method) 명칭을 선언하며, 방법 명칭은 요청의 목적을 표시한다.
SigComp 엔드포인트의 레이아웃은 도 5에 도시되어 있다. 상기 레이아웃은 다음의 엔티티들을 포함한다: 압축기 디스패처, 하나 이상의 압축기들, 상태 처리 기, 범용 압축 해제기 버추얼 머신(UDVM) 및 압축 해제기 디스패처.
압축기 디스패처의 작업은 애플리케이션으로부터 메시지들을 수신하고 각각의 메시지의 압축된 버전을 전송 계층으로 전달하는 것이다. 상기 애플리케이션은 압축기 디스패처로 각각의 메시지와 함께 구획(compartment) 식별자를 제공해야 한다. 구획은 피어(peer) 엔드포인트와 관련되는 메시지들의 애플리케이션별로 특정된 그룹핑이다. SIP의 경우에, 구획은 SIP 다이얼로그에 속하는 모든 메시지들에 의해 형성된다. 구획 식별자는 고유하게 구획을 식별한다. SigComp는 구획-별 기준을 통해 압축기들을 인보크(invoke)하며, 이는 구호기 식별자가 또한 압축기를 식별하기 위해 사용될 수 있다는 것을 의미한다. 이를 위해, 구획 식별자들 및 압축기들 사이의 매핑이 유지되어야 한다. 애플리케이션 메시지와 함께 구획 식별자를 제공함으로써, 애플리케이션은 압축기 디스패처가 적절한 압축기를 결정할 수 있도록 보장한다. 새로운 구획 식별자가 식별될 때마다, 새로운 압축기가 인보크된다. 압축기가 애플리케이션 메시지를 압축하면, SigComp 헤더가 생성되어 부착된다. 그 후에, 압축기 디스패처는 SigComp 메시지를 전송 계층으로 전달할 수 있다. 애플리케이션이 예컨대 BYE 메시지를 수신하고 최종 응답을 전송한 후에 구획을 종료하고자 할 때, 애플리케이션을 이를 압축기 디스패처에 표시하여야 한다.
압축기는 애플리케이션 메시지들을 압축하기 위해 사용되는 특정한 압축 알고리즘을 구현한다. SigComp의 기본적인 아이디어들 중 하나는 표준이 모든 엔드포인트들에 의해 사용되어야 하는 하나의 압축 알고리즘을 강제하지 않는다는 것이다. 대신에, 구현 결정으로서 알고리즘의 선택이 남겨진다. 다음 것은 각각의 엔 드포인트가 다양한 압축 알고리즘들의 출력을 압축 해제할 수 있어야 한다는 것이다. 이것은 압축 해제 기능을 처리하기 위해 버추얼 머신을 사용함으로써 가능해진다. 압축기가 압축된 애플리케이션 메시지를 포함하는 SigComp 메시지를 생성할 때, 압축기는 상기 메시지의 헤더에 압축 해제 알고리즘을 포함시킨다. 이러한 압축 해제 알고리즘은 바이트코드로 지칭되며, 버추얼 머신을 통해 실행될 수 있는 형태로 컴파일된다.
압축기에 대한 다양한 요구들이 제시된다. 우선, 압축기는 투명하도록 요구된다(예를 들어, 압축기는 UDVM이 SigComp 메시지를 부정확하게 압축 해제하도록 하는 바이트코드를 전송하지 않는다). 압축기는 성공적인 압축 해제가 이루어졌다는 것을 보장하기 위해 애플리케이션 메시지를 통해 일정 형태의 무결성(integrity) 체크를 제공해야 한다. 압축기는 원격 엔드포인트에서 사용가능한 자원들을 사용하여 메시지가 압축 해제될 수 있다는 것을 보장해야 한다. 사용자 데이터그램 프로토콜(UDP)의 경우와 같이, 전송이 메시지-기반으로 이루어지면, 압축기는 각각의 애플리케이션 메시지를 정확하게 하나의 SigComp 메시지에 매핑하여야 한다. 전송이 스트림-기반으로 이루어지나 애플리케이션이 자신의 내부 메시지 경계들을 정의하는 경우에, 압축기는 또한 각각의 애플리케이션 메시지를 정확하게 하나의 SigComp 메시지에 매핑하여야 한다.
압축 해제기 디스패처의 역할은 전송 계층으로부터 SigComp 메시지들을 수신하고, 각각의 메시지를 압축 해제하기 위해 UDVM의 새로운 인스턴스를 인보크하고, 결과적인 압축되지 않은 메시지를 애플리케이션으로 전달하는 것이다. 애플리케이 션이 메시지를 수신하면, 애플리케이션은 상기 메시지를 구획으로 매핑하고 구획의 식별자를 압축 해제기 디스패처로 리턴한다. 그 다음에 압축 해제기 디스패처는 상기 식별자를 상태 처리기로 전달하며, 상태 처리기는 상태 정보를 저장하고 피드백 정보를 적절한 압축기로 포워딩하기 위해 상기 식별자를 사용한다. 구획 식별자를 제공함으로써, 애플리케이션은 디스패처로 이를 수행하기 위한 허가를 승인한다.
범용 압축 해제기 버추얼 머신(UDVM)은 SigComp 메시지들을 압축 해제하는 엔티티이다. 압축 해제 프로세스는 버추얼 머신을 통해 바이트코드가 호출되는 특별한 컴파일된 프로그램을 실행함으로써 수행된다. UDVM은 자바 버추얼 머신과 많이 유사한 버추얼 머신이나, 압축 해제 알고리즘들을 실행하기 위해 최적화되었다는 점에서 차이가 있다. SigComp의 경우에, 바이트코드로 컴파일된 소스 코드는 UDVM 어셈블리로 호출되고 엔티티 컴파일링은 UDVM 해석기로 호출된다. 상기 바이트코드는 UDVM의 기계어로 간주될 수 있다.
UDVM은 주어진 애플리케이션 메시지를 어떻게 압축할지를 선택할 때에 유연성을 제공한다: 압축기 구현자는 자신의 선택에 따라 알고리즘을 자유롭게 선택한다. 압축된 데이터는 UDVM 명령들의 세트를 포함하는 바이트코드와 함께 결합된다. 이러한 명령들은 SigComp 메시지의 헤더 내에서 전달되며, 이들은 수신 엔드포인트에서 원래의 데이터가 추출될 수 있도록 한다.
SigComp는 보안되지 않은 전송 계층을 통해 실행될 수 있기 때문에, 손상된 메시지들이 후속 메시지들의 압축 해제에 영향을 주지 않도록 보장하기 위해 UDVM 의 개별적인 인스턴스는 메시지-별 기준을 통해 인보크된다. 그러나, 압축 해제 프로세스 동안 UDVM은 기존의 상태로 액세스하기 위해 상태 처리기를 인보크할 수 있다. 이러한 방식으로 이전 메시지를 압축 해제하였던 UDVM 인스턴스의 상태는 후속 UDVM 인스턴스에 의해 복원될 수 있다.
UDVM이 초기화되었을 때, UDVM은 압축 해제기 디스패처로부터의 추가적인 압축된 데이터를 수신하거나 또는 요청을 받은 경우에만 상태 처리기로부터의 상태 정보를 수신할 수 있다. 압축 해제가 진행되면서, UDVM은 압축 해제기 디스패처로 압축 해제된 데이터를 출력한다. UDVM은 메시지의 끝에 도달하면 이를 디스패처에 표시하며, 디스패처는 UDVM으로 구획 식별자를 제공한다. 이러한 식별자는 상태 생성 요청에서 상태 처리기로 전달된다. 상태 처리기는 대응하는 구획을 위해 예비된 상태 메모리에 있는 위치에 상태 정보를 저장하기 위해 구획 식별자를 사용한다. UDVM은 또한 SigComp 메시지로 피기백(piggyback)될 수 있는 피드백 정보를 상태 처리기로 포워딩한다.
UDVM 사이클은 UDVM 명령을 실행하는데 요구되는 CPU 전력량에 대한 측정이다. UDVM 사이클 제한은 SigComp 메시지의 각각의 비트를 압축 해제하는데 사용될 수 있는 UDVM 사이클들의 수를 제한하기 위해 사용된다. 악의적인 사용자들이 루핑(looping) 코드를 포함하는 바이트코드들을 전송할 수 있기 때문에, 바이트코드가 사용하는 사이클들의 양은 모니터링되어야 한다. 그러나, 상기 사이클 제한은 단지 야기될 수 있는 손상의 양을 줄이는 것이지 문제를 해결하지는 않는다.
SigComp에서, 압축 해제기 메모리의 크기는 조정가능하다. 압축 해제하는 측은 압축 해제기 메모리의 크기를 압축하는 측으로 통지한다. 디폴트 크기는 2 킬로바이트이다. 압축의 효율성을 향상시키기 위해, 4 또는 8 킬로바이트 또는 더 큰 메모리 크기가 사용될 수 있다. 압축 해제기 메모리는 두 개의 섹션들로 분할되며, 첫번째 섹션은 압축 해제된 메시지를 저장하기 위해 사용된다. 다른 섹션은 UDVM이 바이트코드 및 순환 버퍼를 유지하기 위해 사용되며, 순환 버퍼는 UDVM 메모리보다 큰 상태들의 사용을 가능하게 한다. 이것은 버퍼가 채워지자마자 UDVM이 버퍼의 시작부에서 컨텐트를 겹쳐쓰는 것을 시작할 수 있기 때문에 가능하다.
UDVM의 개별적인 인스턴스는 도달하는 각각의 메시지를 압축하기 위해 인보크되기 때문에, 메시지들 간의 정보를 유지하기 위한 방식이 요구된다. 이것은 SigComp 상태 처리기의 작업이며, SigComp 상태 처리기는 수신된 SigComp 메시지들 간의 정보를 저장한다. 상태 처리기에 기인하여, 메시지들은 이전 메시지들에 포함된 정보와 관련하여 압축될 수 있기 때문에, 압축률이 향상된다. 상태 처리기는 후속 메시지가 압축 해제되고 있을 때 액세스를 위한 상태 아이템들을 생성할 수 있도록 한다. 상태 아이템들은 전형적으로 UDVM 인스턴스의 메모리 또는 압축되지 않은 메시지의 스냅샷을 포함한다.
상태 처리기는 구획-별 기준을 통해 상태 메모리를 관리한다. 상태 아이템들을 저장할 뿐만 아니라, 상태 처리기는 특정한 구획에 의해 생성된 상태 아이템들의 리스트를 유지하고 구획이 자신의 할당된 메모리를 초과하지 않도록 보장한다.
UDVM 해석기는 UDVM 어셈블리에 리스트된 UDVM 명령들 및 이들의 피연산자들 을 바이트코드 형태로 변환하는 엔티티이다. UDVM 해석기는 입력으로서 UDVM 어셈블리 소스 코드를 포함하는 화일을 취하고 상기 화일을 바이트코드로 컴파일하며, 상기 바이트코드는 버추얼 머신을 통해 실행될 수 있다.
설명되는 신호 압축 최적화 시스템(10)의 운용 환경과 함께, 신호 압축 최적화 방법(400)이 도 7에서 설명된다. 명확화를 위해, 상기 방법은 통신 네트워크(배포) 부분의 블록들 402-412과 후속하는 통신 디바이스(수신자) 부분의 블록들 414-420으로 순차적으로 분리되어 있다. 상기 방법은 다수의 엔티티들을 포함할 수 있으며 압축된 SIP/SDP 데이터 컨텐트의 배포는 또한 통신 디바이스로부터 통신 네트워크로 전송될 수 있다는 것을 이해하도록 한다. 또한, 통신 네트워크 또는 통신 디바이스는 다수의 엔티티들의 다양한 조합들에서 생성되고, 중계되고 또는 종료되는 배포를 통해 다수의 엔티티들을 표현할 수 있다.
블록 402에서 시작하여, 통신 네트워크는 바람직하게는 수신 통신 디바이스의 하드웨어/소프트웨어 구성을 획득함으로써 신호 압축 최적화 시스템(10)의 양상들을 진행할 수 있다. 이것은 가능한 통신 디바이스들의 범주에서 최신으로 유지되거나, 또는 특히 여기에 제시된 신호 압축 최적화 시스템(10)의 다른 양상들을 지원하는 디바이스들에 집중된 광범위한 데이터베이스를 필요로 할 수 있다. 이러한 데이터는 OEM(Original Equipment Manufacturers)에 의해 제공될 수 있거나 또는 인터랙티브하게 개별적인 통신 디바이스들 또는 이러한 통신 디바이스들의 집단을 지원하는 계층적 엔티티들과의 SIP/SDP 통신을 통해 획득될 수 있다. 블록 404에서, 대응하는 압축 해제 소스 코드(바이트코드)에 따라 신호 압축 알고리즘이 선 택된다. 이러한 선택은 바람직하게는 통신 디바이스가 UDVM을 인보크하는 것을 예상하기 보다는 수신 통신 디바이스(들)이 바이트코드의 실행가능한 버전에 대한 로컬 액세스를 가지는 여부에 대한 인식을 통해 이루어질 수 있다. 블록 406에서, 통신 네트워크는 실행가능한 머신 코드를 생성하기 위해 획득된 하드웨어/소프트웨어 구성과 일치하는 바이트코드를 컴파일한다. 이러한 컴파일은 요청을 기다리고 그 후에 즉시 전송될 수 있다. 도시된 순서에서, 블록 408에서는, 요청에 앞서 이러한 컴파일이 이루어지고 요청에 대한 배포를 위해 바이트코드 및 구성에 따라 인덱싱된다.
블록 410에서 데이터 컨텐트(예를 들어, 멀티미디어 컨텐트 및/또는 시그널링)는 압축 알고리즘에 따라 압축된다. 그 다음에 압축된 데이터 컨텐트는 데이터 컨텐트(예를 들어, 멀티미디어, 시그널링 등)를 압축 해제하기 위해 통신 디바이스(모바일 터미널)에서의 해석에 적합할 수 있는 선택된 소스 코드("바이트코드")와 함께 데이터 패킷 프로토콜에 따라 전송된다. 예시적인 구현에서, 블록 412에서는, 통신 네트워크가 선택된 소스 코드(바이트코드)와 함께 데이터 패킷 프로토콜에 따라 압축된 데이터 컨텐트를 무선으로 전송한다.
블록 414에서, 통신 디바이스는 무선으로 상기 전송을 수신한다. 블록 416에서, 전송된 바이트코드가 검출된다. 블록 418에서, 검출된 바이트코드와 관련된 압축 해제 코드의 액세스가능하고 실행가능한 버전이 결정되어, 버추얼 머신에서의 바이트코드의 느린 해석을 피하게 된다. 실행가능한 버전에 액세스하는 것은 미래의 사용을 위한 저장을 통해 실행에 앞서 로컬 또는 원격 컴파일을 필요로 할 수 있다. 상기 실행가능한 버전은 UDVM 해석기의 사용을 피하기 위해 디지털 신호 프로세싱 또는 다른 타입들의 하드웨어 최적화된 압축 해제기의 사용을 필요로 할 수 있다. 블록 420에서, 압축된 데이터 컨텐트는 상기 액세스가능하고 실행가능한 버전을 사용하여 압축 해제된다.
도 8-11에서, 도 7의 방법에 대한 4개의 특정한 구현들이 도시된다. 먼저, 도 8에서, 신호 압축 최적화 장치(500)는 사용될 압축 알고리즘들의 세트가 미리 알려져 있으며 압축 해제 알고리즘에 대한 머신 코드 구현을 제공함으로써 모바일 터미널(502)에 통합된다는 가정에 따라 구성된다. 모바일 터미널(502)에서 수행되는 시그널링 압축(SigComp) 최적화 동작(504)은 블록 506에서 프록시 호출/세션 제어 펑션(P-CSCF)(510)에 의해 통신 채널(508)을 통해 전송된 SigComp 메시지들과 함께 검출된 압축 해제 바이트코드를 비교할 수 있다. 블록 512에서, SigComp 최적화 동작(504)이 정확한 매칭이 검출되었다고 결정하면, 그 다음에 블록 514에서 머신 코드 압축 해제가 실행된다. 그러나, 블록 512에서 정확한 매칭이 결정되지 않았다면, 그 다음에 블록 516에서 범용 압축 해제기 버추얼 머신(UDVM) 해석기가 압축 해제를 위해 바이트코드에 대하여 인보크된다. 로컬 SIP/SDP 애플리케이션(518)은 P-CSCF에 의해 처음에 압축되었던 플레인(plain) SIP/SDP 메시지들을 수신한다. 그리하여, 블록 512에서 인식되지 않은 알고리즘이 (예를 들어, 로밍 동안에 또는 네트워크 업그레이드 후에) P-CSCF(510)에 의해 전송된다면, 모바일 터미널(502)은 여전히 표준 UDVM 해석기를 실행할 수 있을 것이다.
도 9에서, 대안적인 신호 압축 최적화 장치(600)는 SigComp 최적화 동 작(604)에 의한 "저스트-인-타임(just-in-time)" 컴파일을 필요로 하며, SigComp 최적화 동작(604)은 블록 606에서 P-CSCF(610)로부터 통신 채널(608)을 통해 수신된 압축 해제 바이트코드를 미리-컴파일된 알고리즘들의 리스트와 비교한다. 블록 612에서 매칭이 존재하는 바이트코드가 발견되면, 블록 614에서 미리-컴파일된 알고리즘의 관련된 머신 코드가 압축 해제를 위해 사용된다. 블록 612에서 매칭이 발견되지 않으면, 블록 616에서 바이트코드는 머신 코드로 컴파일되고 그 다음에 블록 614가 수행되어, 로컬 SIP/SDP 애플리케이션(618)으로 플레인 SIP/SDP 메시지들을 제공하는 이벤트가 발생한다. 그리하여, 이러한 바이트코드는 컴파일되고 모든 다음 세션 개시 프로토콜(SIP) 메시지들의 압축 해제를 위해 사용된다. 도 9에서, 컴파일이 수행될 때까지 기다림으로써 UDVM의 사용을 피하게 된다. 이러한 방법은 타겟에서의 바이트코드 컴파일 능력을 필요로 한다. 첫번째 메시지 후의 모든 메시지들은 UDVM 해석기 코드를 실행시킴으로써 발생되었던 임의의 프로세싱 비효율성을 경험하지 않는다. 대안적으로, 현재의 통신을 위해 UDVM 해석기를 인보크하는 동안 미래의 사용을 위해 컴파일이 백그라운드로 발생할 수 있다.
도 10에서, 다른 대안적인 신호 압축 최적화 장치(700)는 바이트코드의 컴파일된 버전의 사용을 확장하며, 타겟에서 바이트코드를 컴파일하는 대신에 머신(예를 들어, 컴파일된) 코드가 네트워크에 의해 전송된다. 이러한 머신 코드가 대상이 되는 모바일에서 호환가능한 것을 보장하기 위해, 네트워크(SigComp 서버(720))는 먼저 채널(708)을 통해 SIP 메시징 기능들을 사용하여 모바일 터미널(702)의 하드웨어/소프트웨어 버전 번호를 체크할 수 있다. 다시 말하면, 네트워크는 모바일 스테이션의 하드웨어/소프트웨어(HW/SW) 정보에 따라 모바일 스테이션으로 전송될 필요가 있는 적절한 머신 코드를 선택한다. 수신된 머신 코드는 동일한 머신 코드의 후속적인 재-전송을 피하기 위해 모바일 스테이션의 영구 메모리에 저장될 수 있다. 이를 위해, 블록 706에서 SigComp 최적화 동작(704)은 P-CSCF(710)로부터 통신 채널(708)을 통해 수신된 압축 해제 바이트코드를 비교한다. 블록 712에서 바이트코드 매칭이 결정되면, 블록 714에서 미리 컴파일된 머신 코드가 실행된다. 블록 712에서 매칭이 발견되지 않으면, 바이트코드의 미리-컴파일된 버전이 SigComp 서버(720)로부터 요청되고 상기 바이트코드는 리스트가 추가된다(블록 716). 그 다음에 상기 머신 코드는 로컬 SIP/SDP 애플리케이션(722)으로 플레인 SIP/SDP 메시지들을 제공하도록 블록 714에서 압축 해제를 달성하기 위한 실행을 위해 사용가능하다.
도 11에서, 추가적인 대안적인 신호 압축 최적화 장치(800)는 모바일 터미널(802)을 가지며, 모바일 터미널(802)의 압축 해제 디스패처(804)는 P-CSCF(808)로부터 통신 채널(806)을 통해 압축 해제 바이트코드와 함께 SigComp 메시지들을 수신한다. 모바일 터미널(802)은 최적화된 하드웨어 프로세서(810)를 사용한다. 프록시 UDVM(812)은 특정한 바이트코드를 사용하여 하드웨어 프로세서(810)를 프로그래밍하고 그 다음에 하드웨어 프로세서(810)에서의 압축 해제를 위해 SigComp 메시지들을 전송한다. 하드웨어 프로세서는 전용 가속기 또는 UDVM 해석을 위해 프로그래밍된 범용 DSP일 수 있다. 그 다음에 플레인 SIP/SDP 메시지들이 로컬 SIP/SDP 애플리케이션(812)에 의해 사용될 수 있다.
이러한 시스템 및 방법은 또한 P-CSCF 서버들의 프로세싱 요구들을 감소시키기 위해 네트워크 측에 적용될 수 있다.
구현. 다양한 구현들이 가능하다. 네트워크가 미리-컴파일된 압축 해제 바이너리를 모바일 스테이션으로 전송하는 방법과 같은 몇몇 진보된 구현은 인프라구조 판매자들로부터의 일정한 지원을 필요로 하며, 그에 따라 일정한 형태의 표준화를 요구할 것이다. 그러므로, 몇몇 구현들에서, 3GPP/3GPP2 또는 IETF(인터넷 엔지니어링 태스크 포스) 표준 기구들에 의해 제안되는 것과 같은 표준들에 여기에서 제시되는 방법 및 장치의 특징들 중 적어도 일부를 포함시키는 것이 적절할 수 있다.
실험 결과들. UDVM 성능에 관한 일부 벤치-마킹을 실행한 후에, 다음과 같은 결과들이 관찰되었다: (1) UDVM 해석기는 네이티브(native) 압축 해제 알고리즘과 비교할 때 약 20 배 느리게 SIP 메시지들을 압축 해제한다. (2) QUALCOMM MSM6800 칩셋을 통한 정규적인 호출 설정 동안 UDVM이 SIP 메시지를 압축 해제하는데 걸리는 시간은 대개의 유휴(idle) 중앙 프로세싱 유니트(CPU)에서 약 100 ms이다. 이러한 시간은 PRACK(즉, 임시적인 응답의 수신을 승인하는 SIP 방법) 또는 서비스 품질(QoS) 전제 조건들의 사용과 같은 진보된 호출 설정 시나리오들을 통해 증가하게 된다. (3) 압축 효율성을 향상시키는 양호한 압축 알고리즘들의 도입은 UDVM 압축 해제 시간을 상당하게 증가시킬 것이다. 요약하면, 본 발명은 잠재적으로 적어도 100 ms 또는 CPU 로드 또는 복잡한 SIP 호출 설정 플로우들의 경우에 더 많은 시간만큼 호출 설정 시간을 줄일 수 있다.
도 12-13은 SURF 6800 가입자 유니트 레퍼런스 디자인 보드들을 통한 단순한 UDVM 알고리즘들에 대한 성능 결과들을 나타낸다. 특히, 도 12-13은 각각 정적(static) DEFLATE 및 LZSS(Lempei-Ziv-Storer-Szymanski) 압축 해제 알고리즘들의 차트들이다. LZSS 및 DEFLATE 알고리즘들은 압축 시스템들에서 알려져 있는 표준이다. DEFLATE은 Lempei-Ziv 1977(LZ77) 알고리즘 및 호프만(Huffman) 코딩의 결합을 사용하는 무손실 데이터 압축 알고리즘이고 Phil Katz에 의해 자신의 PKZIP 기록(archiving) 툴의 버전 2에 대하여 처음 정의되었으며, 이후에 RFC 1951에서 구체화되었다. LZSS 압축은 벤치 마킹을 위해 사용된 알고리즘들 중 하나이지만, 본 발명은 임의의 특정한 압축 알고리즘을 필요로 하지 않는다. 예시적인 후보는 동적 DEFLATE이다. 그러나, DEFLATE 알고리즘의 복잡도는 LZSS의 복잡도보다 크며, 이는 DEFLATE 구현에서의 성능 감소가 더 클 가능성이 크다는 것을 의미한다.
여기에 제시된 양상들과 관련하여 설명된 다양한 예시적인 로직들, 놀리 블록들, 모듈들 및 회로들은 여기에 설명된 기능들을 수행하기 위해 설계된 범용 프로세서, 디지털 신호 프로세서(DSP), 애플리케이션 특정 집적 회로(ASIC), 필드 프로그래밍가능한 게이트 어레이(FPGA) 또는 다른 프로그래밍가능한 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들 또는 이들의 임의의 결합을 통해 구현되거나 또는 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있으나, 대안적으로 상기 프로세서는 임의의 기존의 프로세서, 제어기, 마이크로컨트롤러 또는 상태 머신일 수 있다. 프로세서는 또한 컴퓨팅 장치들의 결합, 예를 들어, DSP 및 마이크로프로세서의 결합, 다수의 마이크로프로세서들, DSP 코 어와 관련된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로서 구현될 수 있다.
또한, 여기에 제시된 양상들과 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 프로세서에 의해 실행되는 소프트웨어 모듈로 구현되거나 또는 이들의 결합으로 구현될 수 있다. 예를 들어, 방법의 단계들은 각각의 방법 단계들을 실행하도록 동작가능한 프로세서의 하나 이상의 모듈들에서 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 이동식 디스크, CD-ROM, 또는 기술적으로 알려진 임의의 다른 형태의 저장 매체에 상주할 수 있다. 예시적인 저장 매체는 프로세서에 연결되어, 상기 프로세서는 저장 매체로부터 정보를 판독할 수 있으며 저장 매체로 정보를 기록할 수 있다. 대안적으로, 저장 매체는 프로세서에 통합될 수 있다. 프로세서 및 저장 매체는 ASIC 내에 포함될 수 있다. ASIC은 사용자 터미널 내에 포함될 수 있다. 대안적으로, 프로세서 및 저장 매체는 사용자 터미널 내의 개별적인 컴포넌트들로서 포함될 수 있다. 또한, 예를 들어, 방법 또는 알고리즘의 단계들은 컴퓨터가 각각의 방법 단계들을 실행하도록 동작가능한 명령들의 하나 이상의 세트들을 가지는 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품으로 구현될 수 있다.
도 1을 다시 참조하면, 통신 네트워크(12)는 임의의 데이터 및/또는 음성 통신 네트워크를 포함할 수 있다. 예를 들어, 통신 네트워크(28)는 유선 또는 무선 전화 네트워크; 지상 전화 네트워크; 위상 전화 네트워크; 적외선 데이터 연 합(IrDA)-기반 네트워크와 같은 적외선 네트워크; 단거리 무선 네트워크; 블루투스® 기술 네트워크; 지그비® 프로토콜 네트워크; 초광대역(UWB) 프로토콜 네트워크; 홈 무선 주파수(HomeRF) 네트워크; 공유 무선 액세스 프로토콜(SWAP) 네트워크; 무선 이더넷 호환성 어라이언스(WECA) 네트워크, 무선 피델리티 어라이언스(Wi-Fi Alliance) 네트워크 및 802. xx 네트워크와 같은 광대역 네트워크; 패킷 데이터 네트워크; 데이터 네트워크; 인터넷 프로토콜(IP) 멀티미디어 서브시스템(IMS) 네트워크; 공용 스위칭 전화 네트워크; 인터넷과 같은 공용 이종 통신 네트워크; 사설 통신 네트워크; 캘리포니아 샌디에고 소재의 퀄컴사로부터 사용가능한 MediaFLOTM 시스템을 포함하는 순방향 링크 전용(FLO) 네트워크와 같은 멀티캐스트 네트워크; 위성을 위한 DVB-S, 케이블을 위한 DVB-C, 지상 텔레비전을 위한 DVB-T, 핸드헬드를 위한 지상 텔레비전에 대한 DVB-H와 같은 디지털 비디오 브로드캐스팅(DVB) 네트워크; 및 랜드 모바일 무선 네트워크 중 임의의 하나 또는 이들의 임의의 결합 중 전부 또는 일부를 포함할 수 있다.
또한, 통신 네트워크(28)의 몇몇 양상들에 포함될 수 있는 전화 네트워크들의 예들은 코드 분할 다중 접속(CDMA), 광대역 코드 분할 다중 접속(WCDMA), 범용 모바일 전화통신 시스템(UMTS), 진보된 모바일 폰 서비스(AMPS), 시분할 다중 접속(TDMA), 주파수 분할 다중 접속(FDMA), 직교 주파수 분할 다중 접속(OFDMA), 모바일 통신을 위한 글로벌 시스템(GSM), 단일 캐리어(1X) 무선 전송 기술(RTT), 에볼루션 데이터 전용(EV-DO) 기술, 범용 패킷 무선 서비스(GPRS), 진보된 데이터 GSM 환경(EDGE), 고속 패킷 액세스(HSPA), 아날로그 및 디지털 위성 시스템들, 및 무선 통신 네트워크 및 데이터 통신 네트워크 중 적어도 하나에서 사용될 수 있는 임의의 다른 기술들/프로토콜들과 같은 아날로그 및 디지털 네트워크들/기술들 중 임의의 하나 또는 이들의 임의의 결합 중 적어도 일부를 포함한다.
다양한 양상들이 여기에서 제시되고 설명되었으며, 본 문서의 내용이 이러한 양상들에만 한정되지 않는다는 것은 명백할 것이다.
예를 들어, 간결함을 위해, 통신 디바이스(14)는 멀티미디어 컨텐트(16)를 수신(압축 해제)하는 것으로 설명되어 있다. 본 발명의 양상들과 일관되는 애플리케이션들은 이러한 멀티미디어 컨텐트의 역방향 또는 양방향 전송을 포함할 수 있다. 예를 들어, 스틸 이미지 또는 비디오 카메라에 의해 생성되거나 그렇지 않으면 통신 디바이스(14)에 저장된 멀티미디어 컨텐트는 통신 네트워크(12)로 업로드될 수 있다. 또한, 통신 네트워크(12)는 통신 디바이스(14)에 의해 제공되는 바이트코드의 검출에 응답하여, 멀티미디어 컨텐트(16)를 통신 디바이스(14)로 전송하기 위해 동일한 바이트코드 및 대응하는 압축 알고리즘을 사용할 수 있다. 그에 의해, 통신 디바이스(14)는 UDVM 해석기(62)로 다시 분류하지 않고 최적화된 압축 해제 기법이 지원되는 멀티미디어 컨텐트(16)를 수신하는 가능성을 증가시킬 수 있다.
그러므로, 이전의 설명들이 예시적인 양상들을 제시하지만, 첨부된 청구항들에 의해 정의되는 설명된 양상들의 범위를 벗어남이 없이 다양한 수정들 및 변형들이 이루어질 수 있다는 것을 유의하도록 한다. 또한, 설명된 양상들의 엘리먼트들 이 단수 형태로 설명되거나 청구될 수 있더라도, 단수 형태로 명백하게 한정하지 않는한 복수 형태도 고려된다.
추가적으로, 특정한 특징이 여러 구현들 중 오직 하나의 구현과 관련하여 제시될 수 있더라도, 이러한 특징은 임의의 주어진 또는 특정한 애플리케이션에 대하여 필요하거나 또는 바람직할 수 있는 다른 구현들의 하나 이상의 다른 특징들과 결합될 수 있다. 상세한 설명 또는 청구항들에서 사용되는 "포함(include)한다", "포함하는(including)" 및 이들의 변형들과 같은 용어들의 범위와 관련하여, 이러한 용어들은 용어 "포함하는(comprising)"과 유사한 방식으로 포함하기 위해 사용된다. 또한, 상세한 설명 또는 청구항들에서 사용되는 용어 "또는(or)"은 "한정적이 아니고 또는(non-exclusive or)"의 의미로 사용된다.
또한, 설명된 양상들 및/또는 버전들의 엘리먼트들이 단수 형태로 설명되거나 또는 청구될 수 있더라도, 단수 형태로 명백하게 한정하지 않는한 복수 형태도 고려된다. 추가적으로, 임의의 양상 및/또는 버전의 전부 또는 일부는 다르게 기재되어 있지 않는한 임의의 다른 양상 및/또는 버전의 전부 또는 일부와 함께 사용될 수 있다.

Claims (25)

  1. 다수의 압축 알고리즘들 중 선택된 알고리즘에 의해 압축된 데이터 컨텐트를 전달하는 방법으로서, 상기 압축 알고리즘들 각각은 상기 압축된 데이터 컨텐트로부터 데이터 컨텐트를 재생성할 수 있는 대응하는 압축 해제 알고리즘을 가지며, 상기 압축된 데이터 컨텐트는 상기 대응하는 압축 해제 알고리즘을 수행하기 위한 해석에 적합한 압축 해제 소스 코드를 전달하는 적어도 하나의 메시지를 포함하는 데이터 패킷 프로토콜을 통해 전달되며, 상기 데이터 패킷 프로토콜은 상기 압축된 데이터 컨텐트를 포함하는 적어도 하나의 메시지를 더 포함하며, 상기 방법은,
    상기 적어도 하나의 메시지에 있는 소스 코드를 검출하는 단계;
    상기 검출된 소스 코드와 관련된 대응하는 압축 해제 알고리즘의 액세스가능하고 실행가능한 버전을 위치시키는(locate) 단계; 및
    상기 대응하는 압축 해제 알고리즘의 상기 위치된 액세스가능하고 실행가능한 버전을 사용하여 상기 압축된 데이터 컨텐트를 압축 해제하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 검출된 소스 코드와 관련된 대응하는 압축 해제 알고리즘의 액세스가능한 버전을 위치시키는데 실패한 것에 대응하여 상기 압축된 데이터 컨텐트를 압축 해제하기 위해 대응하는 소스 코드를 해석하도록 버추얼 머신을 인보크(invoke)하 는 단계를 더 포함하는 방법.
  3. 제 1 항에 있어서,
    상기 대응하는 소스 코드와 관련된 대응하는 압축 해제 알고리즘의 액세스가능하고 실행가능한 버전을 위치시키는데 실패한 것에 대응하여 상기 검출된 소스 코드를 머신 코드로 컴파일하는 단계; 및
    상기 검출된 소스 코드에 의해 인덱싱된 상기 머신 코드를 포함하는 액세스가능한 데이터 구조를 생성하는 단계를 더 포함하는 방법.
  4. 제 1 항에 있어서,
    원격 엔티티로부터의 상기 검출된 소스 코드의 실행가능한 버전을 요청하는 단계; 및
    상기 원격 엔티티로부터의 상기 검출된 소스 코드의 상기 실행가능한 버전을 수신하는 단계를 더 포함하는 방법.
  5. 제 4 항에 있어서,
    상기 실행가능한 버전이 예정되는 의도된 프로세서의 구성을 확인하는 단계 및 상기 의도된 프로세서에 대하여 소스 코드를 컴파일하는 단계를 더 포함하는 방법.
  6. 제 1 항에 있어서,
    상기 검출된 소스 코드로부터의 명령들 및 상기 압축된 데이터 컨텐트를 제 2 프로세서로 전송하는 제 1 프로세서에서 프록시 버추얼 머신을 인보크하는 단계; 및
    상기 제 2 프로세서에 의해 압축 해제된 데이터 컨텐트를 제공하는 단계를 더 포함하는 방법.
  7. 제 1 항에 있어서,
    상기 소스 코드를 검출하는 단계 및 상기 압축된 데이터 컨텐트를 압축 해제하는 단계는 3세대 파트너쉽 프로젝트(3GGP) 패킷 데이터 전송의 일부로서 데이터 패킷 프로토콜 양립(consistent) 신호 압축(SigComp)을 수신하고 압축 해제하는 단계를 더 포함하는 방법.
  8. 제 1 항에 있어서,
    상기 데이터 컨텐트는 멀티미디어 또는 시그널링 컨텐트를 포함하며, 사용자에게 인식가능한 형태로 상기 데이터 컨텐트를 제공하는 단계를 더 포함하는 방법.
  9. 제 1 항에 있어서,
    상기 데이터 패킷 통신을 무선으로 수신하는 단계를 더 포함하는 방법.
  10. 제 1 항에 있어서,
    세션 개시 프로토콜/세션 서술 프로토콜(SIP/SDP) 데이터 패킷 통신을 수신하는 단계를 더 포함하는 방법.
  11. 데이터 패킷 통신 채널에서 압축 해제 바이트코드와 함께 압축된 인터넷 프로토콜(IP) 멀티미디어 서브시스템(IMS) 데이터 컨텐트를 수신하는 장치로서,
    상기 압축 해제 바이트코드의 실행가능한 버전;
    상기 압축 해제 바이트코드를 검출하고 상기 압축 해제 바이트코드의 실행가능한 버전으로 액세스하는 압축 해제기 디스패처;
    상기 압축된 IMS 데이터 컨텐트를 플레인(plain) SIP/SDP 메시지들로 처리하기 위해 상기 압축 해제 바이트코드의 상기 실행가능한 버전을 실행시키는 최적화된 압축 해제기; 및
    상기 플레인 SIP/SDP 메시지들을 수신하기 위한 로컬 세션 개시 프로토콜/세션 서술 프로토콜(SIP/SDP) 애플리케이션을 포함하는 장치.
  12. 제 11 항에 있어서,
    범용 압축 해제기 버추얼 머신(UDVM)을 더 포함하며, 상기 압축 해제기 디스패처는 제 1 실행가능한 버전과 관련되지 않는 제 2 압축 해제 바이트코드의 수신에 응답하여 상기 압축 해제 바이트코드를 해석하도록 상기 UDVM을 인보크하는 장치.
  13. 제 11 항에 있어서,
    컴파일러를 더 포함하며, 상기 압축 해제기 디스패처는 상기 컴파일러가 제 1 압축 해제 바이트코드가 아닌 제 2 압축 해제 바이트코드의 검출에 응답하여 상기 제 2 압축 해제 바이트코드와 관련된 제 2 실행가능한 버전을 생성하도록 지시하는 장치.
  14. 제 11 항에 있어서,
    네트워크 디바이스가 상기 장치와 SIP/SDP 통신을 하며, 상기 압축 해제기 디스패처는 제 1 압축 해제 바이트코드가 아닌 제 2 압축 해제 바이트코드의 검출에 응답하여 상기 제 2 압축 해제 바이트코드와 관련된 제 2 실행가능한 버전을 요청하고 수신하는 장치.
  15. 제 11 항에 있어서,
    프록시 범용 압축 해제기 버추얼 머신(UDVM); 및
    상기 압축 해제 바이트코드를 해석하고 상기 압축된 IMS 데이터 컨텐트를 압축 해제하기 위해 상기 프록시 UDVM과 인터페이싱된 하드웨어 구현 UDVM을 더 포함하는 장치.
  16. 다수의 압축 알고리즘들 중 선택된 알고리즘에 의해 압축된 데이터 컨텐트를 전달하도록 구성된 적어도 하나의 프로세서로서, 상기 압축 알고리즘들 각각은 상기 압축된 데이터 컨텐트로부터 데이터 컨텐트를 재생성할 수 있는 대응하는 압축 해제 알고리즘을 가지며, 상기 압축된 데이터 컨텐트는 상기 대응하는 압축 해제 알고리즘을 수행하기 위한 해석에 적합한 압축 해제 소스 코드를 전달하는 적어도 하나의 메시지를 포함하는 데이터 패킷 프로토콜을 통해 전달되며, 상기 데이터 패킷 프로토콜은 상기 압축된 데이터 컨텐트를 포함하는 적어도 하나의 메시지를 더 포함하며, 상기 적어도 하나의 프로세서는,
    상기 적어도 하나의 메시지에 있는 소스 코드를 검출하기 위한 제 1 모듈;
    상기 검출된 소스 코드와 관련된 대응하는 압축 해제 알고리즘의 액세스가능하고 실행가능한 버전을 위치시키기 위한 제 2 모듈; 및
    상기 대응하는 압축 해제 알고리즘의 상기 위치된 액세스가능하고 실행가능한 버전을 사용하여 상기 압축된 데이터 컨텐트를 압축 해제하기 위한 제 3 모듈을 포함하는 적어도 하나의 프로세서.
  17. 컴퓨터 프로그램 제품으로서, 컴퓨터-판독가능 매체를 포함하며, 상기 컴퓨터-판독가능 매체는,
    다수의 압축 알고리즘들 중 선택된 알고리즘에 의해 압축된 데이터 컨텐트를 또한 포함하는 데이터 패킷 프로토콜 전송의 일부로서, 적어도 하나의 메시지에 포함된 소스 코드를 컴퓨터가 검출하도록 하는 코드들의 제 1 세트 - 상기 압축 알고리즘들 각각은 상기 압축된 데이터 컨텐트로부터 데이터 컨텐트를 재생성할 수 있 는 대응하는 압축 해제 알고리즘을 가지며, 상기 소스 코드는 상기 컴퓨터에 의해 상기 대응하는 압축 해제 알고리즘을 수행하기 위한 해석을 위해 적합함 -;
    상기 컴퓨터가 상기 검출된 소스 코드와 관련된 대응하는 압축 해제 알고리즘의 액세스가능하고 실행가능한 버전을 위치시키도록 하는 코드들의 제 2 세트; 및
    상기 컴퓨터가 상기 대응하는 압축 해제 알고리즘의 상기 위치된 액세스가능하고 실행가능한 버전을 사용하여 상기 압축된 데이터 컨텐트를 압축 해제하도록 하는 코드들의 제 3 세트를 포함하는 컴퓨터 프로그램 제품.
  18. 세션 개시 프로토콜/세션 기술 프로토콜(SIP/SDP) 데이터 패킷 통신에 포함된 바이트코드를 검출하기 위한 수단;
    검출된 소스 코드와 관련된 대응하는 압축 해제 알고리즘의 액세스가능하고 실행가능한 버전을 위치시키기 위한 수단; 및
    상기 대응하는 압축 해제 알고리즘의 상기 위치된 액세스가능하고 실행가능한 버전을 사용하여 상기 압축된 데이터 컨텐트를 압축 해제하기 위한 수단을 포함하는 장치.
  19. 인터넷 프로토콜(IP) 멀티미디어 서브시스템(IMS) 데이터 컨텐트를 통신 디바이스로 배포(disseminate)하기 위한 장치로서,
    압축 알고리즘을 통해 상기 IMS 데이터 컨텐트를 압축하는 압축기;
    압축 해제 바이트코드를 포함하는 데이터 구조;
    상기 압축된 IMS 데이터 컨텐트 및 압축 해제 바이트코드를 상기 통신 디바이스로 전송하는 데이터 패킷 통신 채널; 및
    상기 통신 디바이스로부터의 요청에 응답하여 상기 압축 해제 바이트코드의 실행가능한 버전을 획득하여 상기 통신 디바이스로 전송하는 프로세서를 포함하는 장치.
  20. 제 19 항에 있어서,
    상기 프로세서는 상기 통신 디바이스를 위해 적절한 상기 압축 해제 바이트코드의 실행가능한 버전을 선택하기 위해 상기 통신 디바이스의 구성을 획득하는 장치.
  21. 인터넷 프로토콜(IP) 멀티미디어 서브시스템(IMS) 데이터 컨텐트를 통신 디바이스로 배포하기 위한 방법으로서,
    압축 알고리즘을 통해 상기 IMS 데이터 컨텐트를 압축하는 단계;
    압축 해제 바이트코드를 포함하는 데이터 구조를 생성하는 단계;
    상기 압축된 IMS 데이터 컨텐트 및 압축 해제 바이트코드를 상기 통신 디바이스로 전송하는 단계; 및
    상기 통신 디바이스로부터의 요청에 응답하여 상기 압축 해제 바이트코드의 실행가능한 버전을 상기 통신 디바이스로 전송하는 단계를 포함하는 방법.
  22. 제 21 항에 있어서,
    상기 통신 디바이스를 위해 적절한 상기 압축 해제 바이트코드의 실행가능한 버전을 선택하기 위해 상기 통신 디바이스의 구성을 획득하는 단계를 더 포함하는 방법.
  23. 인터넷 프로토콜(IP) 멀티미디어 서브시스템(IMS) 데이터 컨텐트를 통신 디바이스로 배포하도록 구성된 적어도 하나의 프로세서로서,
    압축 알고리즘을 통해 상기 IMS 데이터 컨텐트를 압축하기 위한 제 1 모듈;
    압축 해제 바이트코드를 포함하는 데이터 구조를 생성하기 위한 제 2 모듈;
    상기 압축된 IMS 데이터 컨텐트 및 압축 해제 바이트코드를 상기 통신 디바이스로 전송하기 위한 제 3 모듈; 및
    상기 통신 디바이스로부터의 요청에 응답하여 상기 압축 해제 바이트코드의 실행가능한 버전을 상기 통신 디바이스로 전송하기 위한 제 4 모듈을 포함하는 적어도 하나의 프로세서.
  24. 컴퓨터 프로그램 제품으로서, 컴퓨터-판독가능 매체를 포함하며, 상기 컴퓨터-판독가능 매체는,
    컴퓨터가 압축 알고리즘을 통해 인터넷 프로토콜(IP) 멀티미디어 서브시스템(IMS) 데이터 컨텐트를 압축하도록 동작가능한 코드들의 제 1 세트;
    상기 컴퓨터가 압축 해제 바이트코드를 포함하는 데이터 구조를 생성하도록 동작가능한 코드들의 제 2 세트;
    상기 컴퓨터가 상기 압축된 IMS 데이터 컨텐트 및 압축 해제 바이트코드를 상기 통신 디바이스로 전송하도록 동작가능한 코드들의 제 3 세트; 및
    상기 컴퓨터가 상기 통신 디바이스로부터의 요청에 응답하여 상기 압축 해제 바이트코드의 실행가능한 버전을 상기 통신 디바이스로 전송하도록 동작가능한 코드들의 제 4 세트를 포함하는 컴퓨터 프로그램 제품.
  25. 인터넷 프로토콜(IP) 멀티미디어 서브시스템(IMS) 데이터 컨텐트를 통신 디바이스로 배포하기 위한 장치로서,
    압축 알고리즘을 통해 상기 IMS 데이터 컨텐트를 압축하기 위한 수단;
    압축 해제 바이트코드를 포함하는 데이터 구조를 생성하기 위한 수단;
    상기 압축된 IMS 데이터 컨텐트 및 압축 해제 바이트코드를 상기 통신 디바이스로 전송하기 위한 수단; 및
    상기 통신 디바이스로부터의 요청에 응답하여 상기 압축 해제 바이트코드의 실행가능한 버전을 상기 통신 디바이스로 전송하기 위한 수단을 포함하는 장치.
KR1020097002890A 2006-07-12 2007-07-12 Sigcomp udvm 성능의 최적화를 위한 방법 및 장치 KR101055503B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US83054506P 2006-07-12 2006-07-12
US60/830,545 2006-07-12
US11/776,374 2007-07-11
US11/776,374 US7561081B2 (en) 2006-07-12 2007-07-11 Method and apparatus for optimization of SigComp UDVM performance
PCT/US2007/073318 WO2008008869A2 (en) 2006-07-12 2007-07-12 Method and apparatus for optimization of sigcomp udvm performance

Publications (2)

Publication Number Publication Date
KR20090039766A true KR20090039766A (ko) 2009-04-22
KR101055503B1 KR101055503B1 (ko) 2011-08-08

Family

ID=38924172

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097002890A KR101055503B1 (ko) 2006-07-12 2007-07-12 Sigcomp udvm 성능의 최적화를 위한 방법 및 장치

Country Status (5)

Country Link
US (1) US7561081B2 (ko)
EP (2) EP2273749A1 (ko)
JP (5) JP2009544195A (ko)
KR (1) KR101055503B1 (ko)
WO (1) WO2008008869A2 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8578056B1 (en) * 2008-03-31 2013-11-05 Symantec Corporation Optimized application streaming for just in time compiled components
US8065374B2 (en) * 2008-10-28 2011-11-22 At&T Intellectual Property I, Lp Application-level lossless compression
US8429302B2 (en) * 2008-11-05 2013-04-23 At&T Intellectual Property I, L.P. Aggregate control for application-level compression
US8228213B2 (en) * 2009-09-23 2012-07-24 International Business Machines Corporation Data compression system and associated methods
CN103548307B (zh) * 2010-12-30 2018-05-29 皮尔爱普有限公司 通过计算机网络传输数据的方法和系统
CN102882926B (zh) * 2012-08-27 2015-01-14 哈尔滨工业大学 燃气轮机传感器数据的远程传输系统及传输方法
US20170086043A1 (en) * 2014-07-18 2017-03-23 Hewlett Packard Enterprise Development Lp Subscriber record referencing class of service records
EP3219067B1 (en) * 2014-11-12 2019-05-22 Telefonaktiebolaget LM Ericsson (publ) Methods and devices for negotiating session descriptor parameters
US20160378452A1 (en) * 2015-06-29 2016-12-29 Mediatek Inc. Policy-Based Compression of Machine Code Generated by a Virtual Machine
US11068260B2 (en) 2019-09-27 2021-07-20 Hypernet Labs, Inc. Containerizing source code for execution in different language using drag-and-drop operation

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000215181A (ja) * 1999-01-21 2000-08-04 Fujitsu Ltd ネットワ―クコンピュ―タシステム及び代理コンパイルサ―バ装置
US7640153B2 (en) * 2001-06-04 2009-12-29 Hewlett-Packard Development Company, L.P. Networked client-server architecture for transparently transforming and executing applications
KR100441115B1 (ko) * 2001-06-27 2004-07-19 주식회사 인터와이즈 정보 단말기의 자바 프로그램 처리 속도 향상을 위한 자바컴파일 온 디멘드 서비스 시스템 및 그 방법
GB0125176D0 (en) * 2001-10-19 2001-12-12 Koninkl Philips Electronics Nv A method of compiling bytecode to native code
US6577254B2 (en) * 2001-11-14 2003-06-10 Hewlett-Packard Development Company, L.P. Data compression/decompression system
US7340730B2 (en) * 2002-03-18 2008-03-04 Sun Microsystems, Inc. On demand, network accessible, run time compile server
JP3642772B2 (ja) * 2002-09-25 2005-04-27 三菱電機株式会社 コンピュータ装置及びプログラム実行方法
JP2004192038A (ja) * 2002-12-06 2004-07-08 Sharp Corp 情報処理装置、情報処理システム、情報処理プログラム、および該プログラムを記録した記録媒体
US7707563B2 (en) * 2003-01-10 2010-04-27 Nexaweb Technologies Inc System and method for network-based computing
CN100346297C (zh) * 2003-02-18 2007-10-31 株式会社爱可信 本地编译方法、本地编译预处理方法、服务器和通信系统
US7627692B2 (en) * 2004-01-30 2009-12-01 Nokia Corporation Multiplexing of compressed control and user-plane messages
GB2415335B (en) * 2004-06-15 2007-09-26 Toshiba Res Europ Ltd Wireless terminal dynamically programmable proxies
EP1653698A1 (en) * 2004-10-28 2006-05-03 Hewlett-Packard Development Company, L.P. Improvements In Communication Message Processing
GB0525902D0 (en) * 2005-12-20 2006-02-01 Nokia Corp Signal message decompressor
JP2006164294A (ja) * 2005-12-26 2006-06-22 Fujitsu Ltd Jitコンパイラを備えた仮想計算機
US7796592B2 (en) * 2006-11-13 2010-09-14 At&T Mobility Ii Llc Optimizing static dictionary usage for signal, hypertext transfer protocol and bytecode compression in a wireless network

Also Published As

Publication number Publication date
KR101055503B1 (ko) 2011-08-08
JP2009544195A (ja) 2009-12-10
WO2008008869A2 (en) 2008-01-17
JP2016139413A (ja) 2016-08-04
JP5960067B2 (ja) 2016-08-02
US7561081B2 (en) 2009-07-14
JP6279630B2 (ja) 2018-02-14
JP2015039168A (ja) 2015-02-26
US20080204283A1 (en) 2008-08-28
JP2017224307A (ja) 2017-12-21
EP2050248A2 (en) 2009-04-22
JP2013101655A (ja) 2013-05-23
EP2273749A1 (en) 2011-01-12
WO2008008869A3 (en) 2008-11-13

Similar Documents

Publication Publication Date Title
KR101055503B1 (ko) Sigcomp udvm 성능의 최적화를 위한 방법 및 장치
EP1897327B1 (en) Signal message compressor
US10470000B2 (en) Methods and apparatus for enhanced MBMS content provisioning and content ingestion
US20080120315A1 (en) Signal message decompressor
KR20090079977A (ko) 채널 스위칭 방법, 장치 및 컴퓨터 판독가능 매체
CN101179480B (zh) 一种转发流媒体的方法
US8621107B2 (en) State-mediated data signaling used for compression in telecommunication services
CN101491054B (zh) 信号压缩udvm性能优化的方法和装置
AU2004316014B2 (en) Method and arrangement for state memory management
US20050060410A1 (en) System and method for proxy-based redirection of resource requests
US7657656B2 (en) Signal message decompressor
Andriescu et al. AmbiStream: a middleware for multimedia streaming on heterogeneous mobile devices
JP2011501586A (ja) セッション開始プロトコルメッセージのペイロード圧縮
US9955380B2 (en) Method and system for optimizing radio resources between UE and ENB during VoLTE call
CN101188605A (zh) 一种转发流媒体的系统
WO2009062903A1 (en) Method, apparatus and computer program product for partial data streams replacement in session initiation protocol
WO2023195986A1 (en) Hybrid rohc-rtp stack for small packet applications
CN107438991A (zh) 经由多媒体广播多播服务的灵活广播服务的方法和装置
Forte et al. Template-based signaling compression for push-to-talk over cellular (PoC)
Mäenpää Performance of Signalling Compression in the Third Generation Mobile Network
Andriescu Dynamic Data Adaptation for the Synthesis and Deployment of Protocol Mediators

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: 20140730

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee