KR20150132372A - 비디오 프레임들을 드롭함으로써 네트워크를 통해 비디오들을 송신하기 위해 필요한 비트 레이트를 감소시키는 방법 - Google Patents

비디오 프레임들을 드롭함으로써 네트워크를 통해 비디오들을 송신하기 위해 필요한 비트 레이트를 감소시키는 방법 Download PDF

Info

Publication number
KR20150132372A
KR20150132372A KR1020157029082A KR20157029082A KR20150132372A KR 20150132372 A KR20150132372 A KR 20150132372A KR 1020157029082 A KR1020157029082 A KR 1020157029082A KR 20157029082 A KR20157029082 A KR 20157029082A KR 20150132372 A KR20150132372 A KR 20150132372A
Authority
KR
South Korea
Prior art keywords
frames
encoded video
video frames
stream
frame
Prior art date
Application number
KR1020157029082A
Other languages
English (en)
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 KR20150132372A publication Critical patent/KR20150132372A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/142Detection of scene cut or scene change
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Telephonic Communication Services (AREA)

Abstract

본 개시물의 양태는 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 것에 관한 것이다. 인코딩된 비디오 프레임들의 오리지널 스트림이 분석되고, 복수의 프레임들이 인코딩된 비디오 프레임들의 감소된 스트림을 생성하기 위해서 인코딩된 비디오 프레임들을 재인코딩하지 않고 제거되며, 그리고 감소된 스트림 및 복수의 제거된 프레임들을 설명하는 메타데이터가 송신된다. 본 개시물의 양태는 인코딩된 비디오 프레임들의 감소된 스트림으로부터 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 것에 관한 것이다. 인코딩된 비디오 프레임들의 감소된 스트림이 수신되고, 복수의 제거된 프레임들이 감소된 스트림에 관련된 메타데이터에 기초하여 식별되고, 복수의 대체 프레임들이 생성되며, 그리고 복수의 대체 프레임들이 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 재생성하기 위해서 인코딩된 비디오 프레임들의 감소된 스트림에 추가된다.

Description

비디오 프레임들을 드롭함으로써 네트워크를 통해 비디오들을 송신하기 위해 필요한 비트 레이트를 감소시키는 방법{METHOD FOR DECREASING THE BIT RATE NEEDED TO TRANSMIT VIDEOS OVER A NETWORK BY DROPPING VIDEO FRAMES}
본 개시물은 비디오 프레임들을 드롭함으로써 네트워크를 통해 비디오들을 송신하기 위해 필요한 비트 레이트를 감소시키는 방법에 관한 것이다.
무선 통신 시스템은 1세대 아날로그 무선 전화 서비스 (1G), 2세대 (2G) 디지털 무선 전화 서비스 (인터림 2.5G 및 2.75G 네트워크들을 포함), 및 3세대 (3G) 및 4세대 (4G) 고속 데이터/인터넷-가능 무선 서비스를 포함하는, 다양한 세대를 통해 개발되어져 왔다. 현재 셀룰러 및 개인 통신 서비스 (PCS) 시스템들을 포함하는, 사용중인 다수의 상이한 종류의 무선 통신 시스템들이 존재한다. 알려져 있는 셀룰러 시스템들의 예들은, 셀룰러 아날로그 어드밴스드 모바일 전화 시스템 (AMPS), 및 코드 분할 다중 액세스 (CDMA), 주파수 분할 다중 액세스 (FDMA), 시분할 다중 액세스 (TDMA), TDMA의 변형인 GSM (Global System for Mobile access) 에 기반한 디지털 셀룰러 시스템들, 및 TDMA 및 CDMA 기술들의 양자를 이용하는 더 새로운 혼합 디지털 통신 시스템을 포함한다.
보다 최근에는, LTE (Long Term Evolution) 가 모바일 폰들 및 다른 데이터 단말기들의 고속 데이터의 무선 통신용 무선 통신 프로토콜로서 개발되어 왔다. LTE 는 GSM 에 기반을 두며, 다양한 GSM-관련 프로토콜들, 이를 테면, EDGE (Enhanced Data rates for GSM Evolution), 및 UMTS (Universal Mobile Telecommunications System) 프로토콜들, 이를 테면, HSPA (High-Speed Packet Access) 로드롭드롭의 기여들을 포함한다.
데이터 네트워크들, 예컨대 3G 및 4G 네트워크들을 통해 송신되는 데이터의 증가량으로 인해, 캐리어들은 사용자의 데이터 니즈를 충족하기 위해 분투하고 있다. 이것은 네트워크를 통해 모바일 디바이스들에 대해 행해지는 비디오 스트리밍의 정량에 의해 악화된다.
본 개시물의 양태는 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 것에 관한 것이다. 본 개시물의 다양한 다른 양태는 인코딩된 비디오 프레임들의 감소된 스트림으로부터 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 것에 관한 것이다.
인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 방법은, 인코딩된 비디오 프레임들의 스트림을 분석하는 단계, 인코딩된 비디오 프레임들의 감소된 스트림을 생성하기 위해서 인코딩된 비디오 프레임들을 재인코딩하지 않고 인코딩된 비디오 프레임들의 스트림으로부터 복수의 프레임들을 제거하는 단계, 및 인코딩된 비디오 프레임들의 감소된 스트림 및 복수의 제거된 프레임들을 설명하는 메타데이터를 송신하는 단계를 포함한다.
인코딩된 비디오 프레임들의 감소된 스트림으로부터 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 방법은, 인코딩된 비디오 프레임들의 감소된 스트림을 수신하는 단계로서, 인코딩된 비디오 프레임들의 감소된 스트림이 인코딩된 비디오 프레임들의 오리지널 스트림으로부터 복수의 프레임들을 제거함으로써 생성되었던, 상기 수신하는 단계, 인코딩된 비디오 프레임들의 감소된 스트림과 관련된 메타데이터에 기초하여 복수의 제거된 프레임들을 식별하는 단계, 식별된 복수의 제거된 프레임들에 기초하여 복수의 대체 프레임들을 생성하는 단계, 및 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 재생성하기 위해서 인코딩된 비디오 프레임들의 감소된 스트림에 복수의 대체 프레임들을 추가하는 단계를 포함한다.
인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 장치는, 인코딩된 비디오 프레임들의 스트림을 분석하도록 구성된 로직, 인코딩된 비디오 프레임들의 감소된 스트림을 생성하기 위해서 인코딩된 비디오 프레임들을 재인코딩하지 않고 인코딩된 비디오 프레임들의 스트림으로부터 복수의 프레임들을 제거하도록 구성된 로직, 및 인코딩된 비디오 프레임들의 감소된 스트림 및 복수의 제거된 프레임들을 설명하는 메타데이터를 송신하도록 구성된 로직을 포함한다.
인코딩된 비디오 프레임들의 감소된 스트림으로부터 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 장치는, 인코딩된 비디오 프레임들의 감소된 스트림을 수신하도록 구성된 로직으로서, 인코딩된 비디오 프레임들의 감소된 스트림이 인코딩된 비디오 프레임들의 오리지널 스트림으로부터 복수의 프레임들을 제거함으로써 생성되었던, 상기 수신하도록 구성된 로직, 인코딩된 비디오 프레임들의 감소된 스트림과 관련된 메타데이터에 기초하여 복수의 제거된 프레임들을 식별하도록 구성된 로직, 식별된 복수의 제거된 프레임들에 기초하여 복수의 대체 프레임들을 생성하도록 구성된 로직, 및 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 재생성하기 위해서 인코딩된 비디오 프레임들의 감소된 스트림에 복수의 대체 프레임들을 추가하도록 구성된 로직을 포함한다.
인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 장치는, 인코딩된 비디오 프레임들의 스트림을 분석하는 수단, 인코딩된 비디오 프레임들의 감소된 스트림을 생성하기 위해서 인코딩된 비디오 프레임들을 재인코딩하지 않고 인코딩된 비디오 프레임들의 스트림으로부터 복수의 프레임들을 제거하는 수단, 및 인코딩된 비디오 프레임들의 감소된 스트림 및 복수의 제거된 프레임들을 설명하는 메타데이터를 송신하는 수단을 포함한다.
인코딩된 비디오 프레임들의 감소된 스트림으로부터 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 장치는, 인코딩된 비디오 프레임들의 감소된 스트림을 수신하는 수단으로서, 인코딩된 비디오 프레임들의 감소된 스트림이 인코딩된 비디오 프레임들의 오리지널 스트림으로부터 복수의 프레임들을 제거함으로써 생성되었던, 상기 수신하는 수단, 인코딩된 비디오 프레임들의 감소된 스트림과 관련된 메타데이터에 기초하여 복수의 제거된 프레임들을 식별하는 수단, 식별된 복수의 제거된 프레임들에 기초하여 복수의 대체 프레임들을 생성하는 수단, 및 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 재생성하기 위해서 인코딩된 비디오 프레임들의 감소된 스트림에 복수의 대체 프레임들을 추가하는 수단을 포함한다.
인코딩된 비디오 프레임들의 감소된 스트림을 송신하기 위한 비일시적인 컴퓨터 판독가능 매체는, 인코딩된 비디오 프레임들의 스트림을 분석하기 위한 적어도 하나의 명령, 인코딩된 비디오 프레임들의 감소된 스트림을 생성하기 위해서 인코딩된 비디오 프레임들을 재인코딩하지 않고 인코딩된 비디오 프레임들의 스트림으로부터 복수의 프레임들을 제거하기 위한 적어도 하나의 명령, 및 인코딩된 비디오 프레임들의 감소된 스트림 및 복수의 제거된 프레임들을 설명하는 메타데이터를 송신하기 위한 적어도 하나의 명령을 포함한다.
인코딩된 비디오 프레임들의 감소된 스트림으로부터 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하기 위한 비일시적인 컴퓨터 판독가능 매체는, 인코딩된 비디오 프레임들의 감소된 스트림을 수신하기 위한 적어도 하나의 명령으로서, 인코딩된 비디오 프레임들의 감소된 스트림이 인코딩된 비디오 프레임들의 오리지널 스트림으로부터 복수의 프레임들을 제거함으로써 생성되었던, 상기 수신하기 위한 적어도 하나의 명령, 인코딩된 비디오 프레임들의 감소된 스트림과 관련된 메타데이터에 기초하여 복수의 제거된 프레임들을 식별하기 위한 적어도 하나의 명령, 식별된 복수의 제거된 프레임들에 기초하여 복수의 대체 프레임들을 생성하기 위한 적어도 하나의 명령, 및 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 재생성하기 위해서 인코딩된 비디오 프레임들의 감소된 스트림에 복수의 대체 프레임들을 추가하기 위한 적어도 하나의 명령을 포함한다.
본 개시물의 양태들의 보다 완벽한 이해 및 본 개시물의 다수의 수반되는 이점들은, 이들이 본 개시물의 제한이 아닌 예시만을 위해서 제공되는 첨부된 도면들과 결합하여 고려될 때 다음의 상세한 설명을 참조로 보다 잘 이해되어지기 때문에 쉽게 얻어질 것이다.
도 1 은 본 개시물의 양태에 따른 무선 통신 시스템의 하이-레벨 시스템 아키텍처를 나타낸다.
도 2 는 본 개시물의 양태들에 따른 사용자 장비들 (UE들) 의 예를 나타낸다.
도 3 은 본 개시물의 양태들에 따른 기능성을 수행하도록 구성된 로직을 포함하는 통신 디바이스를 나타낸다.
도 4 는 본 개시물의 다양한 양태들에 따른 예시적인 서버를 나타낸다.
도 5 는 I 프레임들 및 P 프레임들로 브레이크 다운된 예시적인 비디오 파일을 나타낸다.
도 6 은 본 개시물의 양태에 따른 무선 통신 시스템의 하이-레벨 시스템 아키텍처를 나타낸다.
도 7 은 도 6 에 나타낸 무선 통신 시스템에서 비디오 파일을 프로세싱하기 위한 예시적인 시그널링 다이어그램을 나타낸다.
도 8 은 클라이언트 디바이스에서 수행된 피쳐들의 보다 상세한 플로우를 나타낸다.
도 9 는 프레임들의 일련의 풀 그룹들을 나타낸다.
도 10 은 5개의 P 프레임들을 한번에 스킵 및 모핑하는 예를 나타낸다.
도 11 은 11개의 P 프레임들을 한번에 스킵 및 모핑하는 예를 나타낸다.
도 12 는 예시적인 MP4 파일 계층을 나타낸다.
도 13 은 서버에서 비디오 파일을 프로세싱하기 위한 예시적인 플로우를 나타낸다.
도 14 는 인코딩된 비디오 프레임들의 감소된 스트림으로부터 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하기 위한 예시적인 플로우를 나타낸다.
다양한 양태들은 다음의 설명 및 관련된 도면들에서 개시되어 있다. 대안의 양태들은 개시물의 범위로부터 이탈하지 않으면서 고안될 수도 있다. 추가적으로, 개시물의 잘 알려진 엘리먼트들은 개시물의 관련된 세부사항들을 모호하게 하지 않도록 하기 위하여 상세하게 설명되지 않거나 생략될 것이다.
단어들 "예시적" 및/또는 "예" 는 "예, 사례, 또는 예시로서 작용함" 을 의미하기 위하여 본원에서 이용된다. "예시적" 및/또는 "예" 로서 본원에서 설명된 임의의 양태는 다른 양태들에 비해 바람직하거나 유리한 것으로 반드시 해석되어야 하는 것은 아니다. 마찬가지로, 용어 "개시물의 양태들" 은 개시물의 모든 양태들이 논의된 특징, 장점, 또는 동작 모드를 포함할 것을 요구하지 않는다.
또한, 다수의 양태들은 예를 들어, 컴퓨팅 디바이스의 엘리먼트들에 의해 수행되어야 할 액션 (action) 들의 시퀀스들의 측면에서 설명된다. 본원에서 설명된 다양한 액션들은 특정 회로들 (예를 들어, 애플리케이션 특정 집적 회로 (application specific integrated circuit; ASIC) 들) 에 의해, 하나 이상의 프로세서들에 의해 실행되는 프로그램 명령들에 의해, 또는 이 둘의 조합에 의해 수행될 수 있다는 것이 인식될 것이다. 추가적으로, 본원에서 설명된 액션들의 이 시퀀스는, 실행 시에 연관된 프로세서로 하여금 본원에서 설명된 기능성을 수행하게 할 컴퓨터 명령들의 대응하는 세트를 그 안에 저장한 임의의 형태의 컴퓨터 판독가능한 저장 매체 내에서 완전히 구체화되는 것으로 고려될 수 있다. 따라서, 본 개시물의 다양한 양태들은 다수의 상이한 형태들로 구체화될 수도 있고, 이러한 형태들의 모두는 청구된 발명 요지의 범위 내에 있도록 구상되었다. 추가로, 본원에서 설명된 양태들의 각각에 대하여, 임의의 이러한 양태들의 대응하는 형태는 예를 들어, 설명된 액션을 수행하도록 "구성된 로직" 으로서 본원에서 설명될 수도 있다.
사용자 장비 (UE) 로서 본원에서 지칭된 클라이언트 디바이스는 이동식 또는 고정식일 수도 있고, 라디오 액세스 네트워크 (RAN) 와 통신할 수도 있다. 본원에서 이용된 바와 같이, 용어 "UE" 는 "액세스 단말 (access terminal)" 또는 "AT", "무선 디바이스", "가입자 디바이스", "가입자 단말", "가입자 스테이션", "사용자 단말 (user terminal)" 또는 UT, "이동 단말", "이동 스테이션" 및 그 변형들로서 상호 교환가능하게 지칭될 수도 있다. 일반적으로, UE 들은 RAN 을 경유하여 코어 네트워크와 통신할 수도 있고, 코어 네트워크를 통해, UE 들은 인터넷과 같은 외부 네트워크들과 접속될 수 있다. 물론, 유선 액세스 네트워크들, (예를 들어, IEEE 802.11 등에 기초한) WiFi 네트워크들 등을 통한 것과 같이, 코어 네트워크 및/또는 인터넷에 접속하는 다른 메커니즘들이 UE 들에 대해 또한 가능하다. UE 들은 PC 카드들, 컴팩트 플래시 (compact flash) 디바이스들, 외부 또는 내부 모뎀들, 무선 또는 와이어라인 (wireline) 전화들 등을 포함하지만 이것으로 제한되지 않는 다수의 타입들의 디바이스들 중의 임의의 것에 의해 구체화될 수 있다. UE 들이 신호들을 RAN 으로 전송할 수 있게 하는 통신 링크는 업링크 (uplink) 채널 (예를 들어, 역방향 트래픽 채널, 역방향 제어 채널, 액세스 채널 등) 로 칭해진다. RAN 이 신호들을 UE 들로 전송할 수 있게 하는 통신 링크는 다운링크 (downlink) 또는 순방향 링크 (forward link) 채널 (예를 들어, 페이징 채널 (paging channel), 제어 채널, 브로드캐스트 채널, 순방향 트래픽 채널 등) 로 칭해진다. 본원에서 이용된 바와 같이, 용어 트래픽 채널 (traffic channel; TCH) 은 업링크/역방향 또는 다운링크/순방향 트래픽 채널의 어느 하나를 지칭할 수 있다.
도 1 은 본 개시물의 양태에 따라 무선 통신 시스템 (100) 의 하이-레벨 시스템 아키텍처를 예시한다. 무선 통신 시스템 (100) 은 UE 들 1...N 을 포함한다. UE 들 1...N 은 셀룰러 전화들, 개인 정보 단말 (personal digital assistant; PDA), 페이저들, 랩톱 컴퓨터, 데스크톱 컴퓨터 등을 포함할 수 있다. 예를 들어, 도 1 에서, UE 들 1...2 는 셀룰러 호출 전화들로서 예시되어 있고, UE 들 3...5 는 셀룰러 터치스크린 전화들 또는 스마트폰들로서 예시되어 있고, UE N 은 데스크톱 컴퓨터 또는 PC 로서 예시되어 있다.
도 1 을 참조하면, UE 들 1...N 은 무선 인터페이스들 (104, 106, 108) 로서 도 1 에서 도시된 물리적 통신 인터페이스 또는 계층 및/또는 직접 유선 접속을 통해 액세스 네트워크 (예를 들어, RAN (120), 액세스 포인트 (125) 등) 와 통신하도록 구성된다. 무선 인터페이스들 (104 및 106) 은 소정의 셀룰러 통신 프로토콜 (예를 들어, 코드 분할 다중 액세스 (Code Division Multiple Access; CDMA), 진화-데이터 최적화 (Evolution-Data Optimized; EV-DO), 진화형 하이 레이트 패킷 데이터 (Evolved High Rate Packet Data; eHRPD), 이동 통신의 글로벌 시스템 (Global System of Mobile Communication; GSM), GSM 진화를 위한 개량된 데이터 레이트들 (Enhanced Data rates for GSM Evolution; EDGE), 광대역 CDMA (Wideband CDMA; W-CDMA), 롱텀 에볼루션 (Long-Term Evolution; LTE) 등) 을 준수할 수 있는 반면, 무선 인터테이스 (108) 는 무선 IP 프로토콜 (예를 들어, IEEE 802.11) 을 준수할 수 있다. RAN (120) 은 무선 인터페이스들 (104 및 106) 과 같은 무선 인터페이스들을 통해 UE 들을 서빙하는 복수의 액세스 포인트들을 포함한다. RAN (120) 에서의 액세스 포인트들은 액세스 노드들 또는 AN 들, 액세스 포인트들 또는 AP 들, 기지국들 또는 BS 들, 노드 B 들, 이노드 B (eNode B) 들 등으로서 지칭될 수 있다. 이 액세스 포인트들은 지상 액세스 포인트들 (또는 지상국들), 또는 위성 액세스 포인트들일 수 있다. RAN (120) 은, RAN (120) 에 의해 서빙된 UE 들과, 전적으로 RAN (120) 또는 상이한 RAN 에 의해 서빙된 다른 UE 들과의 사이에서 회선 교환 (CS) 호출들을 브릿징 (bridging) 하는 것을 포함하는 다양한 기능들을 수행할 수 있고, 또한, 인터넷 (175) 과 같은 외부 네트워크들과의 패킷-교환 (PS) 데이터의 교환을 중재할 수 있는 코어 네트워크 (140) 에 접속하도록 구성된다. 인터넷 (175) 은 다수의 라우팅 에이전트들 및 프로세싱 에이전트들 (편리성을 위하여 도 1 에서 도시되지 않음) 을 포함한다. 도 1 에서는, UE N 이 인터넷 (175) 에 직접 접속하는 (즉, WiFi 또는 802.11-기반 네트워크의 이더넷 접속을 통한 것과 같이, 코어 네트워크 (140) 로부터 별도인) 것으로서 도시되어 있다. 이것에 의하여, 인터넷 (175) 은 코어 네트워크 (140) 를 경유하여 UE N 및 UE 들 1...N 사이에서 패킷-교환 데이터 통신들을 브릿징하도록 기능할 수 있다. 또한, RAN (120) 으로부터 별도인 액세스 포인트 (125) 가 도 1 에서 도시되어 있다. 액세스 포인트 (125) 는 (예를 들어, FiOS, 케이블 모뎀 등과 같은 광학 통신 시스템을 경유하여) 코어 네트워크 (140) 에 관계없이 인터넷 (175) 에 접속될 수도 있다. 무선 인터페이스 (108) 는 일 예에서 IEEE 802.11 과 같은 로컬 무선 접속을 통해 UE 4 또는 UE 5 를 서빙할 수도 있다. UE N 은, (예를 들어, 유선 및 무선 접속성의 양자를 갖는 WiFi 라우터에 대한) 일 예에서 액세스 포인트 (125) 자체에 대응할 수 있는, 모뎀 또는 라우터로의 직접 접속과 같이, 인터넷 (175) 으로의 유선 접속을 갖는 데스크톱 컴퓨터로서 도시되어 있다.
도 1 을 참조하면, 애플리케이션 서버 (170) 는 인터넷 (175), 코어 네트워크 (140), 또는 양자에 접속된 것으로서 도시되어 있다. 애플리케이션 서버 (170) 는 복수의 구조적으로 별도의 서버들로서 구현될 수 있거나, 대안으로, 단일 서버에 대응할 수도 있다. 이하에서 더욱 상세하게 설명되는 바와 같이, 애플리케이션 서버 (170) 는 코어 네트워크 (140 및/또는 인터넷 (175) 을 경유하여 애플리케이션 서버 (170) 에 접속할 수 있는 UE 들에 대한 하나 이상의 통신 서비스들 (예를 들어, 보이스-오버-인터넷 프로토콜 (Voice-over-Internet Protocol; VoIP) 세션들, 그룹 통신 세션들, 소셜 네트워킹 서비스들 등) 을 지원하도록 구성된다.
도 2는 본 개시물의 양태들에 따른 UE들의 예를 나타낸다. 도 2를 참조하면, UE (200A) 는 호출 전화로서 예시되어 있고, UE (200B) 는 터치스크린 디바이스 (예를 들어, 스마트폰, 태블릿 컴퓨터 등) 로서 예시되어 있다. 도 2 에서 도시된 바와 같이, UE (200A) 의 외부 케이싱 (casing) 은 당해 분야에서 알려져 있는 바와 같이 다른 컴포넌트들 중에서, 안테나 (205A), 디스플레이 (210A), 적어도 하나의 버튼 (215A) (예를 들어, PTT 버튼, 전원 버튼, 음량 제어 버튼 등) 및 키패드 (220A) 로 구성된다. 또한, UE (200B) 의 외부 케이싱은 당해 분야에서 알려져 있는 바와 같이 다른 컴포넌트들 중에서, 터치스크린 디스플레이 (205B), 주변기기 버튼들 (210B, 215B, 220B 및 225B) (예를 들어, 전원 제어 버튼, 음량 또는 진동 제어 버튼, 비행기 모드 토글 버튼 등), 적어도 하나의 전방-패널 버튼 (230B) (예를 들어, 홈 버튼 (Home button) 등) 으로 구성된다. UE (200B) 의 일부로서 명시적으로 도시되어 있지 않지만, UE (200B) 는, WiFi 안테나들, 셀룰러 안테나들, 위성 위치 시스템 (satellite position system; SPS) 안테나들 (예를 들어, 글로벌 위치확인 시스템 (global positioning system; GPS) 안테나들) 등을 포함하지만 이것으로 제한되지 않는, UE (200B) 의 외부 케이싱 내에 조립되는 하나 이상의 외부 안테나들 및/또는 하나 이상의 통합된 안테나들을 포함할 수 있다.
UE 들 (200A 및 200B) 과 같은 UE들의 내부 컴포넌트들이 상이한 하드웨어 구성으로 구체화될 수 있지만, 내부 하드웨어 컴포넌트들에 대한 기본적인 하이 레벨 UE 구성은 도 2의 플랫폼 (202) 으로서 도시되어 있다. 플랫폼 (202) 은, 궁극적으로 코어 네트워크 (140), 인터넷 (175) 및/또는 다른 원격 서버들 및 네트워크들 (예를 들어, 애플리케이션 서버 (170), 웹 URL 들 등) 로부터 기인할 수도 있는 RAN (120) 으로부터 송신된 소프트웨어 애플리케이션들, 데이터 및/또는 커맨드들을 수신 및 실행할 수 있다. 플랫폼 (202) 은 또한, RAN 상호작용 없이 국부적으로 저장된 애플리케이션들을 독립적으로 실행할 수 있다. 플랫폼 (202) 은 애플리케이션 특정 집적 회로 (ASIC; 208) 또는 다른 프로세서, 마이크로프로세서, 로직 회로, 또는 다른 데이터 프로세싱 디바이스에 동작가능하게 결합된 트랜시버 (206) 를 포함할 수 있다. ASIC (208) 또는 다른 프로세서는, 무선 디바이스의 메모리 (212) 에서의 임의의 상주 프로그램들과 인터페이싱하는 애플리케이션 프로그래밍 인터페이스 (application programming interface; API) (210) 계층을 실행한다. 메모리 (212) 는 판독-전용 메모리 (read-only memory; ROM) 또는 랜덤-액세스 메모리 (random-access memory; RAM), 전기적 소거가능한 프로그래밍가능한 ROM (electrically erasable programmable ROM; EEPROM), 플래시 카드 (flash card) 들, 또는 컴퓨터 플랫폼들에 공통인 임의의 메모리로 구성될 수 있다. 플랫폼 (202) 은 또한, 다른 데이터뿐만 아니라, 메모리 (212) 에서 활성으로 이용되지 않는 애플리케이션들을 저장할 수 있는 로컬 데이터베이스 (214) 를 포함할 수 있다. 로컬 데이터베이스 (214) 는 전형적으로 플래시 메모리 셀이지만, 자기 매체들, EEPROM, 광학 매체들, 테이프, 소프트 또는 하드 디스크 (disk) 등과 같은, 당해 분야에서 알려진 바와 같은 임의의 보조 저장 디바이스일 수 있다.
따라서, 본 개시물의 양태는 본원에서 설명된 기능들을 수행하기 위한 능력을 포함하는 UE (예를 들어, UE (200A, 200B) 등) 를 포함할 수 있다. 당해 분야의 숙련자들에 의해 인식되는 바와 같이, 다양한 로직 엘리먼트들은 본원에서 개시된 기능성을 달성하기 위하여 개별 엘리먼트들, 프로세서 상에서 실행된 소프트웨어 모듈들, 또는 소프트웨어 및 하드웨어의 임의의 조합에서 구체화될 수 있다. 예를 들어, 본원에서 개시된 다양한 기능들을 로딩, 저장 및 실행하기 위하여, ASIC (208), 메모리 (212), API (210) 및 로컬 데이터베이스 (214) 가 모두 협력하여 이용될 수도 있고, 이에 따라, 이 기능들을 수행하기 위한 로직은 다양한 엘리먼트들 상에서 분산될 수도 있다. 대안으로, 기능성은 하나의 개별 컴포넌트 내로 편입될 수 있다. 그러므로, 도 2 에서의 UE 들 (200A 및 200B) 의 특징들은 예시적인 것에 불과한 것으로 고려되어야 하고, 본 개시물은 예시된 특징들 또는 배열에 제한되지 않는다.
UE 들 (200A 및/또는 200B) 및 RAN (120) 사이의 무선 통신은 CDMA, W-CDMA, 시간 분할 다중 액세스 (TDMA), 주파수 분할 다중 액세스 (FDMA), 직교 주파수 분할 멀티플렉싱 (Orthogonal Frequency Division Multiplexing; OFDM), GSM, 또는 무선 통신 네트워크 또는 데이터 통신 네트워크에서 이용될 수도 있는 다른 프로토콜들과 같은 상이한 기술들에 기초할 수 있다. 상기에서 논의되고 당해 분야에서 알려진 바와 같이, 음성 송신 및/또는 데이터는 다양한 네트워크들 및 구성들을 이용하여 RAN 으로부터 UE 들로 송신될 수 있다. 따라서, 본원에서 제공된 예시들은 본 개시물의 양태들을 제한하도록 의도된 것이 아니고, 본 개시물의 다양한 양태들의 설명에 있어서 보조하기 위한 것에 불과하다.
도 3 은 기능성을 수행하도록 구성된 로직을 포함하는 통신 디바이스 (300) 를 예시한다. 통신 디바이스 (300) 는 UE 들 (200A 또는 200B), RAN (120) 의 임의의 컴포넌트, 코어 네트워크 (140) 의 임의의 컴포넌트, 코어 네트워크 (140) 및/또는 인터넷 (175) 과 결합된 임의의 컴포넌트들 (예를 들어, 애플리케이션 서버 (170)) 등을 포함하지만 이것으로 제한되지 않는 상기 언급된 통신 디바이스들 중의 임의의 것에 대응할 수 있다. 따라서, 통신 디바이스 (300) 는 도 1 의 무선 통신 시스템 (100) 을 통해 하나 이상의 다른 엔티티들과 통신하도록 (또는 통신하는 것을 용이하게 하도록) 구성되는 임의의 전자 디바이스에 대응할 수 있다.
도 3 을 참조하면, 통신 디바이스 (300) 는 정보를 수신 및/또는 송신하도록 구성된 로직 (305) 을 포함한다. 일 예에서, 통신 디바이스 (300) 가 무선 통신 디바이스 (예를 들어, UE (200A 또는 200B)), 정보를 수신 및/또는 송신하도록 구성된 로직 (305) 은 무선 트랜시버 및 연관된 하드웨어 (예를 들어, RF 안테나, MODEM, 변조기 및/또는 복조기 등) 와 같은 무선 통신 인터페이스 (예를 들어, 블루투스 (Bluetooth), WiFi, 2G, CDMA, W-CDMA, 3G, 4G, LTE 등) 를 포함할 수 있다. 또 다른 예에서, 정보를 수신 및/또는 송신하도록 구성된 로직 (305) 은 유선 통신 인터페이스 (예를 들어, 직렬 접속, USB 또는 파이어와이어 (Firewire) 접속, 인터넷 (175) 이 액세스될 수 있게 하는 이더넷 (Ethernet) 접속 등) 에 대응할 수 있다. 따라서, 통신 디바이스 (300) 가 일부의 타입의 네트워크-기반 서버 (예를 들어, 애플리케이션 (170)) 에 대응할 경우, 정보를 수신 및/또는 송신하도록 구성된 로직 (305) 은 일 예에서, 네트워크-기반 서버를 이더넷 프로토콜을 통해 다른 통신 엔티티들에 접속하는 이더넷 카드에 대응할 수 있다. 추가의 예에서, 정보를 수신 및/또는 송신하도록 구성된 로직 (305) 은, 통신 디바이스 (300) 가 그 로컬 환경을 감시할 수 있게 하는 센서류 또는 측정 하드웨어 (예를 들어, 가속도계, 온도 센서, 광 센서, 로컬 RF 신호들을 감시하기 위한 안테나 등) 를 포함할 수 있다. 정보를 수신 및/또는 송신하도록 구성된 로직 (305) 은 또한, 실행될 때, 정보를 수신 및/또는 송신하도록 구성된 로직 (305) 의 연관된 하드웨어가 그 수신 및/또는 송신 기능(들)을 수행하도록 허용하는 소프트웨어를 포함할 수 있다. 정보를 수신 및/또는 송신하도록 구성된 로직 (305) 은 또한, 실행될 때, 정보를 수신 및/또는 송신하도록 구성된 로직 (305) 의 연관된 하드웨어가 그 수신 및/또는 송신 기능(들)을 수행하도록 허용하는 소프트웨어를 포함할 수 있다.
도 3 을 참조하면, 통신 디바이스 (300) 는 정보를 프로세싱하도록 구성된 로직 (310) 을 더 포함한다. 일 예에서, 정보를 프로세싱하도록 구성된 로직 (310) 은 적어도 프로세서를 포함할 수 있다. 정보를 프로세싱하도록 구성된 로직 (310) 에 의해 수행될 수 있는 프로세싱의 타입의 구현예들은, 결정들을 수행하는 것, 접속들을 확립하는 것, 상이한 정보 옵션들 사이에서 선택들을 행하는 것, 데이터와 관련된 평가들을 수행하는 것, 측정 동작들을 수행하기 위하여 통신 디바이스 (300) 에 결합된 센서들과 상호작용하는 것, (예를 들어, .wmv 대 .avi 와 같은 상이한 프로토콜들 등의 사이에서) 정보를 하나의 포맷으로부터 또 다른 포맷으로 변환하는 것 등을 포함하지만 이것으로 제한되지 않는다. 예를 들어, 정보를 프로세싱하도록 구성된 로직 (310) 에 포함된 프로세서는 범용 프로세서, 디지털 신호 프로세서 (digital signal processor; DSP), ASIC, 필드 프로그래밍가능 게이트 어레이 (field programmable gate array; FPGA) 또는 다른 프로그래밍가능 로직 디바이스, 개별 게이트 또는 트랜지스터 로직, 개별 하드웨어 컴포넌트들, 또는 본원에서 설명된 기능들을 수행하도록 설계된 그 임의의 조합에 대응할 수 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안으로, 프로세서는 임의의 기존의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신 (state machine) 일 수도 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합, 예를 들어, DSP 및 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 함께 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성의 조합으로서 구현될 수도 있다. 정보를 프로세싱하도록 구성된 로직 (310) 은 또한, 실행될 때, 정보를 프로세싱하도록 구성된 로직 (310) 의 연관된 하드웨어가 그 프로세싱 기능(들)을 수행하도록 허용하는 소프트웨어를 포함할 수 있다. 그러나, 정보를 프로세싱하도록 구성된 로직 (310) 은 소프트웨어에 단독으로 대응하지 않고, 정보를 프로세싱하도록 구성된 로직 (310) 은 그 기능성을 달성하기 위한 하드웨어에 적어도 부분적으로 의존한다.
도 3 을 참조하면, 통신 디바이스 (300) 는 정보를 저장하도록 구성된 로직 (315) 을 더 포함한다. 일 예에서, 정보를 저장하도록 구성된 로직 (315) 은 적어도 비일시적인 (non-transitory) 메모리 및 연관된 하드웨어 (예를 들어, 메모리 제어기 등) 를 포함할 수 있다. 예를 들어, 정보를 저장하도록 구성된 로직 (315) 에 포함된 비일시적인 메모리는 RAM, 플래시 메모리, ROM, 소거가능 프로그래밍가능한 ROM (erasable programmable ROM; EPROM), EEPROM, 레지스터들, 하드 디스크 (disk), 분리가능한 디스크 (disk), CD-ROM, 또는 당해 분야에서 알려진 임의의 다른 형태의 저장 매체에 대응할 수 있다. 정보를 저장하도록 구성된 로직 (315) 은 또한, 실행될 때, 정보를 저장하도록 구성된 로직 (315) 의 연관된 하드웨어가 그 저장 기능(들)을 수행하도록 허용하는 소프트웨어를 포함할 수 있다. 그러나, 정보를 저장하도록 구성된 로직 (315) 은 소프트웨어에 단독으로 대응하지 않고, 정보를 저장하도록 구성된 로직 (315) 은 그 기능성을 달성하기 위한 하드웨어에 적어도 부분적으로 의존한다.
도 3 을 참조하면, 통신 디바이스 (300) 는 정보를 제시하도록 구성된 로직 (320) 을 선택적으로 더 포함한다. 일 예에서, 정보를 제시하도록 구성된 로직 (320) 은 적어도 출력 디바이스 및 연관된 하드웨어를 포함할 수 있다. 예를 들어, 출력 디바이스는 비디오 출력 디바이스 (예를 들어, 디스플레이 스크린, USB, HDMI 등과 같이 비디오 정보를 전달할 수 있는 포트), 오디오 출력 디바이스 (예를 들어, 스피커들, USB, HDMI 등과 같이 오디오 정보를 전달할 수 있는 포트), 정보가 진동 디바이스, 및/또는 출력을 위해 포맷될 수 있거나 통신 디바이스 (300) 의 사용자 또는 운영자에 의해 실제로 출력될 수 있게 하는 임의의 다른 디바이스를 포함할 수 있다. 예를 들어, 통신 디바이스 (300) 가 도 2 에서 도시된 바와 같은 UE (200A) 또는 UE (200B) 에 대응할 경우, 정보를 제시하도록 구성된 로직 (320) 은 UE (200A) 의 디스플레이 (210A) 또는 UE (200B) 의 터치스크린 디스플레이 (205B) 를 포함할 수 있다. 추가의 예에서는, 로컬 사용자를 가지지 않는 네트워크 통신 디바이스들 (예를 들어, 네트워크 스위치들 또는 라우터들, 원격 서버들 등) 과 같은 어떤 통신 디바이스들에 대해, 정보를 제시하도록 구성된 로직 (320) 이 생략될 수 있다. 정보를 제시하도록 구성된 로직 (320) 은 또한, 실행될 때, 정보를 제시하도록 구성된 로직 (320) 의 연관된 하드웨어가 그 제시 기능(들)을 수행하도록 허용하는 소프트웨어를 포함할 수 있다. 그러나, 정보를 제시하도록 구성된 로직 (320) 은 소프트웨어에 단독으로 대응하지 않고, 정보를 제시하도록 구성된 로직 (320) 은 그 기능성을 달성하기 위한 하드웨어에 적어도 부분적으로 의존한다.
도 3 을 참조하면, 통신 디바이스 (300) 는 로컬 사용자 입력을 수신하도록 구성된 로직 (325) 을 선택적으로 더 포함한다. 일 예에서, 로컬 사용자 입력을 수신하도록 구성된 로직 (325) 은 적어도 사용자 입력 디바이스 및 연관된 하드웨어를 포함할 수 있다. 예를 들어, 사용자 입력 디바이스는 버튼들, 터치스크린 디스플레이, 키보드, 카메라, 오디오 입력 디바이스 (예를 들어, 마이크로폰, 또는 마이크로폰 잭 등과 같이 오디오 정보를 전달할 수 있는 포트), 및/또는 통신 디바이스 (300) 의 사용자 또는 운영자로부터 정보가 수신될 수 있게 하는 임의의 다른 디바이스를 포함할 수 있다. 예를 들어, 통신 디바이스 (300) 가 도 2 에서 도시된 바와 같은 UE (200A) 또는 UE (200B) 에 대응할 경우, 로컬 사용자 입력을 수신하도록 구성된 로직 (325) 은 키패드 (220A), 버튼들 (215A 또는 210B 내지 225B) 중의 임의의 것, 터치스크린 디스플레이 (205B) 등을 포함할 수 있다. 추가의 예에서는, 로컬 사용자를 가지지 않는 네트워크 통신 디바이스들 (예를 들어, 네트워크 스위치들 또는 라우터들, 원격 서버들 등) 과 같은 어떤 통신 디바이스들에 대해, 로컬 사용자 입력을 수신하도록 구성된 로직 (325) 이 생략될 수 있다. 로컬 사용자 입력을 수신하도록 구성된 로직 (325) 은 또한, 실행될 때, 로컬 사용자 입력을 수신하도록 구성된 로직 (325) 의 연관된 하드웨어가 그 입력 수신 기능(들)을 수행하도록 허용하는 소프트웨어를 포함할 수 있다. 그러나, 로컬 사용자 입력을 수신하도록 구성된 로직 (325) 은 소프트웨어에 단독으로 대응하지 않고, 로컬 사용자 입력을 수신하도록 구성된 로직 (325) 은 그 기능성을 달성하기 위한 하드웨어에 적어도 부분적으로 의존한다.
도 3 을 참조하면, (305) 내지 (325) 의 구성된 로직들은 도 3 에서 별도의 또는 별개의 블록들로서 도시되어 있지만, 각각의 구성된 로직이 그 기능성을 수행하게 하는 하드웨어 및/또는 소프트웨어는 부분적으로 겹칠 수 있다는 것이 인식될 것이다. 예를 들어, (305) 내지 (325) 의 구성된 로직들의 기능성을 용이하게 하기 위하여 이용된 임의의 소프트웨어는 정보를 저장하도록 구성된 로직 (315) 과 연관된 비일시적인 메모리에 저장될 수 있어서, (305) 내지 (325) 의 구성된 로직들은 각각, 정보를 저장하도록 구성된 로직 (315) 에 의해 저장된 소프트웨어의 동작에 부분적으로 기초하여 그 기능성 (즉, 이 경우, 소프트웨어 실행) 을 수행한다. 마찬가지로, 구성된 로직들 중의 하나와 직접 연관되는 하드웨어는 때때로 다른 구성된 로직들에 의해 대여 또는 이용될 수 있다. 예를 들어, 정보를 프로세싱하도록 구성된 로직 (310) 의 프로세서는 정보를 수신 및/또는 송신하도록 구성된 로직 (305) 에 의해 송신되기 전에 데이터를 적절한 포맷으로 포맷할 수 있어서, 정보를 수신 및/또는 송신하도록 구성된 로직 (305) 은 정보를 프로세싱하도록 구성된 로직 (310) 과 연관된 하드웨어 (즉, 프로세서) 의 동작에 부분적으로 기초하여 그 기능성 (즉, 이 경우, 데이터의 송신) 을 수행한다.
일반적으로, 이와 다르게 명시적으로 기재되지 않으면, 이 개시물의 전반에 걸쳐 이용된 바와 같은 어구 "~하도록 구성된 로직" 은 하드웨어로 적어도 부분적으로 구현되는 양태를 환기시키도록 의도된 것이고, 하드웨어에 독립적인 소프트웨어-단독 구현들로 맵핑하도록 의도된 것이 아니다. 또한, 다양한 블록들에서의 구성된 로직 또는 "~하도록 구성된 로직" 은 특정 로직 게이트들 또는 엘리먼트들에 제한되는 것이 아니라, (하드웨어, 또는 하드웨어 및 소프트웨어의 조합 중의 어느 하나를 경유하여) 본원에서 설명된 기능성을 수행하기 위한 능력을 일반적으로 지칭한다는 것이 인식될 것이다. 따라서, 다양한 블록들에서 예시된 바와 같은 구성된 로직들 또는 "~하도록 구성된 로직" 은 단어 "로직" 을 공유함에도 불구하고 로직 게이트들 또는 로직 엘리먼트들로서 반드시 구현되지는 않는다. 다양한 블록들에서의 로직 사이의 다른 상호작용들 또는 협력은 이하에서 더욱 상세하게 설명된 양태들의 검토로부터 당해 분야의 숙련자에게 명백해질 것이다.
다양한 실시형태들은 또한 도 4 에 예시된 서버 (400) 와 같은 상업적으로 입수가능한 다양한 서버 디바이스들 중 임의의 것 상에서 구현될 수도 있다. 일례에서, 서버 (400) 는 위에서 설명된 애플리케이션 서버 (170) 의 하나의 예시적인 구성에 대응할 수도 있다. 도 4 에서, 서버 (400) 는 휘발성 메모리 (402) 및 디스크 드라이브와 같은 대용량 비휘발성 메모리 (403) 에 커플링된 프로세서 (401) 를 포함한다. 서버 (400) 는 또한 프로세서 (401) 에 커플링된 플로피 디스크 드라이브, 콤팩트 디스크 (CD) 또는 DVD 디스크 드라이브 (406) 를 포함할 수도 있다. 서버 (400) 는 또한 네트워크 (407), 예컨대, 다른 브로드캐스트 시스템 컴퓨터들 및 서버들에 또는 인터넷에 커플링된 근거리 네트워크와 데이터 접속을 확립하기 위하여 프로세서 (401) 에 커플링된 네트워크 액세스 포트들 (404) 를 포함할 수도 있다. 도 3 과 연계하여, 도 4 의 서버 (400) 는 통신 디바이스 (300) 의 하나의 구현예를 나타낸다는 것을 이해할 것이며, 이로써 정보를 송신 및/또는 수신하도록 구성된 로직 (305) 은 네트워크 (407) 과 통신하기 위해 서버 (400) 에 의해 사용되는 네트워크 액세스 포인트들 (404) 에 대응하고, 정보를 프로세싱하도록 구성된 로직 (310) 은 프로세서 (401) 에 대응하고, 그리고 정보를 저장하도록 구성된 로직 (315) 은 휘발성 메모리 (402), 디스크 드라이브 (403) 및/또는 디스크 드라이브 (406) 의 임의의 조합에 대응한다. 정보를 제출하도록 구성된 옵션인 로직 (320) 및 로컬 사용자 입력을 수신하도록 구성된 옵션인 로직 (325) 은 도 4 에 명백히 도시되지 않으며 그 안에 포함되거나 또는 포함되지 않을 수도 있다. 이로써, 도 4 는 도 2 에서의 205A 또는 205B 에서와 같은 UE 구현예 이외에, 통신 디바이스 (300) 가 서버로서 구현될 수도 있음을 나타내는 것을 돕는다.
데이터 네트워크들, 예컨대 3G 및 4G 네트워크들을 통해 송신되는 데이터의 증가량으로 인해, 캐리어들은 사용자의 데이터 니즈를 충족하기 위해 분투하고 있다. 이것은 네트워크를 통해 모바일 디바이스들에 대해 행해지는 비디오 스트리밍의 정량에 의해 악화된다.
비디오는 다수의 프레임들 (스틸 픽쳐들) 로 구성되기 때문에, 비디오 파일들은 큰 경향이 있다. 비디오 파일의 사이즈를 감소시키기 위해서 사용되는 다양한 압축 알고리즘은 통상 프레임들을 I 프레임들, P 프레임들, 및 B 프레임들로 분류한다. "I" 프레임 ("인트라코딩된 픽쳐") 은, 어떠한 디코딩도 요구하지 않는 완전히 특정화된 이미지이다. "P" 프레임 ("예측된 픽쳐") 은 이전 프레임으로부터 이미지 변화만을 홀딩하고 선행 프레임의 컨택스트에서 디코딩을 요구한다. P 프레임들은 또한 델타 프레임들로 지칭된다. "B" 프레임은 데이터 압축의 최고량을 얻기 위해서 데이터 레퍼런스에 대해 이전의 프레임 및 순방향 프레임 모두를 사용할 수 있다. 도 5 는 I 프레임들 (502) 및 P 프레임들 (504) 로 브레이크 다운된 예시적인 비디오 (500) 를 나타낸다.
비디오 파일의 사이즈는, 소정의 프레임들을 드롭시키는 비디오 열화의 형태로 구현함으로써 서버 상에서 감소될 수 있다. 드롭된 프레임들은 "I" 프레임들, "P" 프레임들, 또는 "B" 프레임들 중 어느 것일 수 있다. 열화된 비디오는, 수행된 열화를 설명하는 메타데이터와 함께 UE 로 전송된다. 오리지널 비디오는 "모핑 (morphing)"을 이용하여 결손 프레임들에 채움으로써 UE 상에서 재생성된다. 모핑은, 다수의 프레임들이 2개의 보다 넓게 이격된 프레임들 사이의 키 차이들에 기초하여 재생성될 수 있는 기술이다. 이것은, 보다 적은 데이터가 네트워크를 통해 전송된다는 것, 서버측의 매우 제한된 프로세싱, 및 클라이언트측의 보다 적은 버퍼링 시간과 같은 여러 이점들을 제공한다.
대안으로, 프레임들은 모션 추적을 위한 컴퓨터 비전을 이용하여 대체될 수 있다. 그 경우, 프레임에서의 아이템들이 추적되고 이에 따라 프레임에서 이동될 수 있다.
도 6 은 본 개시물의 양태에 따른 무선 통신 시스템의 하이-레벨 시스템 아키텍처를 나타낸다. 애플리케이션 서버 (170) 와 같은 서버는 비디오 프로세서 (602), 데이터 분석기 (604) 및 프레임 드로퍼 (dropper) (606) 를 포함한다. UE (610) 는 비디오 프로세서 (612), 프레임 모퍼 (morpher) (614) 및 프레임 에더 (adder) (616) 를 포함한다. UE (610) 는 스마트폰으로 예시되지만, UE (610) 는, 다음에 한정되지 않지만, 베이직 휴대폰, PDA, 태블릿 컴퓨터, 랩탑 컴퓨터, 데스크탑 컴퓨터 등을 포함하는, 임의의 사용자 장비일 수도 있다.
UE (610) 는 애플리케이션 서버 (170) 로 비디오에 대한 요청 (620) 을 전송한다. 비디오가 애플리케이션 서버 (170) 에 저장되지 않는다면, 애플리케이션 서버 (170) 는 인터넷 (175) 을 통해, 또는 다른 유사 네트워크를 통해, 비디오를 저장하는 원격 서버로 비디오에 대한 요청 (630) 을 전송한다. 원격 서버 (미도시) 는 비디오를 포함하는 응답 (632) 을 애플리케이션 서버 (170) 로 전송한다. 비디오 파일은 원격 서버에 의해 또는 애플리케이션 서버 (170) 에 의해 I 프레임과 P 프레임으로 압축될 수도 있다. 애플리케이션 서버 (170) 는 후술되는 바와 같이 비디오 프로세서 (602), 데이터 분석기 (604) 및 프레임 드로퍼 (606) 를 이용하여 수신된 비디오를 프로세싱한다. 애플리케이션 서버 (170) 는 프로세싱된 비디오를 포함하는 응답 (622) 을 UE (610) 로 전송한다. UE (610) 는 후술되는 바와 같이 비디오 프로세서 (612), 프레임 모퍼 (614) 및 프레임 에더 (616) 를 이용하여 수신된 비디오를 프로세싱한다.
도 7 은 도 6 에 나타낸 무선 통신 시스템 (600) 에서 비디오 파일을 프로세싱하기 위한 예시적인 시그널링 다이어그램을 나타낸다. 도 6 에 나타낸 컴포넌트들에 추가하여, 애플리케이션 서버 (170) 및 UE (610) 각각은 네트워크 커뮤니케이터 (702 및 704) 를 각각 포함한다. 네트워크 커뮤니케이터 (702 및 704) 는, 애플리케이션 서버 (170) 와 UE (610) 가 네트워크 상에서 다른 디바이스들과 통신하는 것을 허용하는 통신 인터페이스들을 제공한다.
710 에서, UE (610) 는 애플리케이션 서버 (170) 에 비디오를 얻기 위해 요청을 전송한다. 720 에서, 애플리케이션 서버 (170) 는 UE (610) 가 프레임 드롭을 지원한다는 통지를 UE (610) 에게 전송한다. 730 에서, UE (610) 는, 프레임 재생성을 지원하는지 여부를 나타내는, "예" 또는 "아니오" 응답을 전송한다. 740 에서, UE (610) 가 프레임 재생성을 지원하지 않는 경우라면, 애플리케이션 서버 (170) 는 오리지널 비디오 파일을 전송한다. 그러나, UE (610) 가 프레임 재생성을 지원한다면, 750 에서, 프레임 드로퍼 (606) 는 UE (610) 에서 재생성될 수 있는 프레임들을 드롭시킨다. 760 에서, 애플리케이션 서버 (170) 는 드롭된 프레임들을 제외한 비디오를 UE (610) 에 전송한다. 770 에서, UE (610) 는 비디오를 수신하고 그것을 비디오 프로세서 (612) 로 통과시킨다. 780 에서, 프레임 에더 (616) 는 드롭된 프레임들을 검출하고, 드롭된 프레임들을 재생성하고, 그리고 재생성된 프레임들을 수신된 비디오 파일에 다시 추가시켜 오리지널 비디오 파일을 재생성한다.
도 7 의 시그널링 다이어그램이 애플리케이션 서버 (170) 및 UE (610) 에 의해 수행되는 것으로 도시되어 있지만, 그것은 임의의 서버 및 클라이언트 디바이스들에 의해 수행될 수도 있다. 이와 같이, 서버 디바이스는 또 다른 디바이스로 비디오를 송신하는 UE를 포함할 수도 있고, 클라이언트 디바이스는 또 다른 디바이스로부터 프로세싱된 비디오를 수신하는 서버를 포함할 수도 있다.
도 8 은 클라이언트 디바이스, 예컨대 UE (610) 에서 수행된 피쳐들의 보다 상세한 플로우를 나타낸다. 805 에서, 클라이언트는, 네트워크 커뮤니케이터 (704) 와 같은 네트워크 커뮤니케이터 (802) 를 통해 애플리케이션 서버 (170) 와 같은 서버로부터 비디오를 요청한다. 810 에서, 클라이언트는 서버가 프레임 드롭을 지원한다는 통지를 서버로부터 수신하다. 815 에서, 클라이언트는 드롭된 프레임들의 재생성도 또한 지원할지 여부를 결정한다. 그렇지 않은 경우라면, 820 에서, 클라이언트는 서버로 "아니오" 응답을 전송한다. 825 에서, 클라이언트는 오리지널, 또는 비처리된 비디오를 수신한다. 830 에서, 클라이언트는 비디오를 정상적으로 프로세싱 및 디스플레이한다.
하지만, 815 에서, 클라이언트가 드롭된 프레임들의 재생성을 지원하는 것으로 결정한다면, 835 에서, 클라이언트는 서버로 "예" 응답을 전송한다. 840 에서, 소정의 프레임들이 드롭된 상태에서, 클라이언트는 서버로부터 비디오를 수신한다.
845 에서, 클라이언트는, 비디오 프로세서 (612) 와 같은 비디오 프로세서 (804) 를 통해 헤더를 프로세싱하고, 어떤 프레임들이 비디오 파일로 다시 추가될 필요가 있는지에 대한 정보를 저장한다. 850 에서, 클라이언트는 비디오 데이터의 패킷을 수신하고, 프레임을 구축한다. 855 에서, 클라이언트는 그 프레임이 프레임의 드롭된 시퀀스의 시작인지 여부를 결정한다. 이것은, 드롭된 프레임들을 식별 또는 설명하는 비디오 파일로 받은 메타데이터에 표시될 수도 있다. 프레임이 시퀀스의 시작인 경우라면, 860 에서, 클라이언트는 프레임 에더 (616) 와 같은 프레임 에더 (806) 를 통해 드롭된 프레임 시퀀스의 시작으로서 프레임을 저장한다.
하지만, 클라이언트가 그 프레임이 드롭된 프레임 시퀀스의 시작이 아니라고 결정하면, 865 에서, 클라이언트는 그 프레임이 드롭된 시퀀스 이후의 첫번째 프레임인지 여부를 결정한다. 그렇지 않은 경우라면, 플로우는 850 으로 리턴한다. 그런 경우라면, 870 에서, 클라이언트는 프레임을 에더 (806) 를 통해 드롭된 프레임 시퀀스의 종료로서 그 프레임을 저장한다. 875 에서, 프레임 에더 (806) 는, 860 에서 저장된 드롭된 프레임 시퀀스의 시작에서의 프레임을 사용하고 870 에서 저장된 드롭된 프레임 시퀀스 이후의 제 1 프레임을 사용하여 결손 프레임을 재생성한다. 프레임 에더 (806) 는, 드롭된 프레임 시퀀스의 시작에서의 프레임을 드롭된 프레임 시퀀스 이후의 제 1 프레임으로 모핑함으로서 프레임을 재생성한다. 880 에서, 프레임 에더 (806) 는 생성된 프레임을 비디오 프로세서 (804) 로 리턴한다.
도 9 는 프레임들 (910-950) 의 일련의 풀 그룹들을 나타낸다. 도 9 의 예에서, 프레임들 (910-950) 의 각각의 그룹은 I 프레임과 이어지는 일련의 11개의 P 프레임들을 포함한다. 프레임들 (910-950) 의 각 그룹의 시작에서의 I 프레임은 프레임들의 이전 그룹의 마지막 프레임으로서 처리될 수 있다.
도 10 은 5개의 P 프레임들을 한번에 스킵 및 모핑하는 예를 나타낸다. I 프레임 (1022) 과 이어지는 11개의 P 프레임들과 또 다른 I 프레임 (1026) 을 포함하는 프레임들 (1010) 의 시퀀스의 경우, 애플리케이션 서버 (170) 와 같은 서버는 매 5개의 P 프레임을 스킵할 수 있고 여섯번째 P 프레임 (1020) 을 I 프레임 (1024) 으로 변환시킬 수 있다. 이후 서버는 네트워크를 통해 I 프레임들 (1022, 1024 및 1026) 만을 송신한다. 다섯개의 드롭된 프레임들의 두 그룹은 이 알고리즘의 데이터 절감을 나타낸다. 즉, 13개의 프레임들을 송신하는 대신, 서버는 3개의 프레임만을 송신한다.
클라이언트는 I 프레임들 (1022, 1024 및 1026) 을 수신하고 이들을 사용하여 10개의 드롭된 P 프레임들을 재생성한다. 클라이언트는 I 프레임 (1022) 을 I 프레임 (1024) 으로 모핑함으로써 5개의 드롭된 P 프레임들의 제 1 그룹을 생성한다. 클라이언트는 I 프레임 (1024) 을 I 프레임 (1026) 으로 모핑함으로써 5개의 드롭된 P 프레임들의 제 2 그룹을 생성한다. 이제 프레임들 (1030) 의 결과적인 시퀀스는 13-프레임 시퀀스이고, 이는 프레임들 (1010) 의 오리지널 시퀀스와 같이 13-프레임 시퀀스였다.
도 11 은 11개의 P 프레임들을 한번에 스킵 및 모핑하는 예를 나타낸다. I 프레임 (1122) 과 이어지는 11개의 P 프레임들과 또 다른 I 프레임 (1124) 을 포함하는 프레임들 (1110) 의 시퀀스의 경우, 애플리케이션 서버 (170) 와 같은 서버는 매 11개의 P 프레임들을 스킵할 수 있다. 이후 서버는 네트워크를 통해 I 프레임들 (1122 및 1124) 만을 송신한다. 11개의 드롭된 프레임들은 이 알고리즘의 데이터 절감을 나타낸다. 즉, 13개의 프레임들을 송신하는 대신, 서버는 2개의 프레임만을 송신한다.
클라이언트는 I 프레임들 (1122 및 1124) 을 수신하고 이들을 사용하여 11개의 드롭된 P 프레임들을 재생성한다. 클라이언트는 I 프레임 (1122) 을 I 프레임 (1124) 으로 모핑함으로써 11개의 드롭된 P 프레임들을 생성한다. 이제 프레임들 (1130) 의 결과적인 시퀀스는 13-프레임 시퀀스이고, 이는 프레임들 (1110) 의 오리지널 시퀀스와 같다.
표 1 은 서버가 드롭한 프레임의 수에 기초하여 클라이언트가 추가할 수 있는 프레임들의 예를 나타낸다.
서버 비디오 프로세서
드롭될 프레임 시퀀스들
클라이언트 비디오 프로세서
결손 프레임들에서의 모핑
P 프레임들의 부분적인 세트 스킵된 프레임들과 동일한 수
P 프레임들의 하나의 완전한 세트 스킵된 프레임들 수의 2배
완전한 P-I-P 시퀀스 스킵된 프레임들 수의 3배
표 2 는 서버가 드롭한 프레임의 수에 기초하여 클라이언트가 추가할 수 있는 프레임들의 예를 나타낸다.
서버 비디오 프로세서
드롭될 프레임 시퀀스들
클라이언트 비디오 프로세서
프레임들 수에서의 모핑
동일 2x 3x
P 프레임들의 부분적인 세트: 5 5 10 15
P 프레임들의 하나의 완전한 세트: 11 11 22 33
완전한 P-I-P 시퀀스: 23 23 46 69
다음은 MP4 비디오 포맷을 위한 프레임 드롭 알고리즘의 구체예이다. 도 12 는 예시적인 MP4 파일 계층 (1200) 을 나타낸다. MP4 파일들은 원자들 (atoms) 로 구성된다. 각 원자는 비디오를 디코딩할 필요가 있는 데이터를 포함한다. "mdat" 원자 (1202) 는 실제 비디오 데이터 (프레임) 를 포함한다. "stbl" 원자 (1208) 는 디코딩에 필요한 다양한 헤더를 포함한다. "stts" 헤더 (1212) 는 샘플 수를 포함하고, "stss" 헤더 (1214) 는 시퀀스에서의 그 수에 의해 식별된 I 프레임을 포함하고, "stsc" 헤더 (1216) 는 각 청크의 샘플 수를 포함하고, "stsz" 헤더 (1218) 는 각 프레임의 사이즈를 포함하고, "stco" 헤더 (1220) 는 청크 및 그 오프셋들의 수를 포함한다.
서버는, mdat 원자 (1202) 를 검색하고, 그것을 통해 프레임마다 루핑하고, P 프레임들을 삭제하고, 그리고 stts, stss, stsc, stsz, 및 stco 헤더들 (1212-1220) 을 업데이트함으로써 MP4 비디오 파일에서 프레임들을 드롭할 수 있다. 서버는 I 프레임들을 stss 헤더 (1214) 로부터 식별함으로써 P 프레임들을 식별할 수 있다. 즉, 서버는 stss 헤더 (1214) 로부터 어떤 프레임들이 I 프레임들인지를 알며, 이것은 stss 헤더 (1214) 에 나열되지 않은 임의의 프레임이 P 프레임이라는 것을 의미하거나, 또는 적어도 I 프레임은 아니라는 것을 의미한다.
클라이언트 측에서, moov 원자 (1204) 하에서 변경된 데이터 원자는 비디오 스트림이 편집되었는지 여부를 나타내는 플래그를 포함하고, 따라서 모핑될 필요가 있으며, 보조 필드는 mdat 원자 (1202) 의 새로운 사이즈를 나타낸다. 각각의 trak (1206) 의 경우, meta 원자 (1222) 는 나머지 프레임들을 나타내며, 이는 그 프레임 수에 의해 식별된다. 이 정보는 또한, 유지된 프레임들 사이에서 모핑할 프레임들의 수를 결정하는데 사용될 수 있다. 또한 각각의 trak (1206) 의 경우, 새로운 stco 헤더 (1220) 는, 모핑되기 위해 편집된 경우, 데이터에 대한 오프셋 테이블을 포함한다.
대안으로, 헤더는 드롭핑 및 모핑 헤더들의 옵션에 전용되는 특수 필드를 포함할 수 있다. 이 경우, 개개의 헤더 각각은 편집될 필요가 없을 수 있으며; 프레임이 드롭되었는지의 여부를 나타내는 플래그만이 편집될 필요가 있을 수 있다. 임의의 프레임이 드롭된 경우, 플래그가 세팅되고 클라이언트는 비디오를 다시 함께 삽입하는 방법을 알기 위해 전용 헤더를 참조할 수 있다.
다음은 추가될 수도 있는 전용 헤더의 리스트이다 - 남아있는 데이터의 사이즈를 갖는 전용 mdat 필드, 그리고 전용 stts, stss, stsc, stsz, 및 stco 헤더들. 또 다른 추가된 헤더는, 유지된 프레임들 사이에서 모핑될 프레임들의 수일 수도 있다.
비디오를 다시 함께 삽입하기 위해서, 클라이언트는 플래그가 세팅되는지 여부를 체크한다. 비디오 데이터에 대해, 클라이언트는 모핑된 stco 헤더 (1220) 또는 전용 헤더(들)을 이용하여 순차적으로 프레임들을 읽는다. 클라이언트는 첫번째 프레임을 찾고, 원자 헤더로부터의 사이즈 또는 사이즈 테이블을 이용하여 프레임 사이즈의 카운트 바이트를 읽는다. 이후 클라이언트는 다음 프레임까지 읽는다. 클라이언트는, 이전 프레임과 같이, 원자 헤더로부터의 사이즈 또는 사이즈 테이블을 이용하여, 다음 프레임 사이즈의 카운트 바이트를 읽는다. 클라이언트는 이후, 오프셋 테이블을 포함하는 메타 원자 (1222) 또는 새로운 stco 헤더 (1220) 에 기초하여 결손 프레임들을 모핑할 필요가 있는지를 결정한다. 클라이언트가 결손 프레임들에서 모핑할 필요가 있다고 결정하면, 그것은 결손 프레임의 수에서 모핑된다. 하지만, 클라이언트가 결손 프레임들에서 모핑할 필요가 없다고 결정하면, 그것은 프레임을 정상적으로 재생한다. 이후 클라이언트는 최종 프레임까지 프로세스를 반복한다.
비디오의 오디오를 처리하기 위해, 프레임 시퀀스 (910-950) 와 같은 프레임의 시퀀스에 대한 오디오는 첫번째 프레임의 일부로서 고려될 수 있다. 다음 오디오는, 프레임이 재생되는 것보다 느린 속도로 재생될 수 있다. 이것은, 각 프레임의 사이즈를 첫번째 프레임 플러스 모든 드롭된 프레임들의 오디오의 합으로 나타내는 새로운 테이블을 사용할 것이다.
도 13 은 도 6 에 나타낸 애플리케이션 서버 (170) 등의 서버에서 비디오 파일을 프로세싱하기 위한 예시적인 흐름을 나타낸다. 1310 에서, 서버는 UE (610) 와 같은 클라이언트로부터 비디오에 대한 요청을 수신한다. 비디오는 서버 또는 원격 서버에 저장될 수도 있다. 1320 에서, 서버는 비디오를 검색하고, 도 6 에 도시된 비디오 프로세서 (602) 와 같은 비디오 프로세서에 전송한다. 1330 에서, 도 6 에 도시된 데이터 분석기 (604) 와 같은 데이터 분석기는 비디오를 분석하여, 어느 프레임들이 및/또는 얼마나 많은 프레임들이 비디오로부터 최적으로 드롭될 수 있는지를 결정한다. 1340 에서, 도 6 에 도시된 프레임 드로퍼 (606) 와 같은 프레임 드로퍼는 비본질적인 것으로 데이터 분석기 결정된 프레임을 드롭시킨다. 1350 에서, 서버는 드롭된 프레임을 설명하는 메타데이터와 함께, 클라이언트로 나머지 프레임을 송신한다. 서버는 클라이언트에게 비디오 파일을 스트리밍하거나 또는 별개로 다운로드로 전송할 수도 있다.
도 14 는 인코딩된 비디오 프레임들의 감소된 스트림으로부터 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하기 위한 예시적인 플로우를 나타낸다. 그 플로우는 UE (610) 와 같은 클라이언트에서 수행될 수도 있다. 1410 에서, 클라이언트는 인코딩된 비디오 프레임들의 감소된 스트림을 수신한다. 인코딩된 비디오 프레임들의 감소된 스트림은, 애플리케이션 서버 (170) 와 같은 서버에서 인코딩된 비디오 프레임들의 오리지널 스트림으로부터 복수의 프레임들을 제거함으로써 생성되었었을 수도 있다. 1420 에서, 클라이언트는 인코딩된 비디오 프레임들의 감소된 스트림과 관련된 메타데이터에 기초하여 복수의 제거된 프레임들을 식별한다. 1430 에서, 클라이언트는 식별된 복수의 제거된 프레임들에 기초하여 복수의 대체 프레임들을 생성한다. 1440 에서, 클라이언트는 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 재생성하기 위해서 인코딩된 비디오 프레임들의 감소된 스트림에 복수의 대체 프레임들을 추가한다. 1450 에서, 클라이언트는 오리지널 비디오 스트림의 새로운 버전을 재생한다.
상기 양태들이 CDMA2000 네트워크에서의 1x EV-DO 아키텍처, W-CDMA 또는 UMTS 네트워크에서의 GPRS 아키텍처 및/또는 LTE 기반 네트워크에서의 EPS 아키텍처를 참조하여 주로 설명되었지만, 다른 양태도 다른 타입의 네트워크 아키텍처 및/또는 프로토콜들로 지향될 수 있음을 이해할 것이다.
당해 분야의 숙련자들은 정보 및 신호들이 다양한 상이한 기술들 및 기법들 중의 임의의 것을 이용하여 표현될 수도 있다는 것을 인식할 것이다. 예를 들어, 상기 설명의 전반에 걸쳐 참조될 수도 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들, 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 입자들, 광학 필드들 또는 입자들, 또는 그 임의의 조합에 의해 표현될 수도 있다.
또한, 당해 분야의 숙련자들은 본원에서 개시된 양태들과 관련하여 설명된 다양한 예시적인 논리적 블록들, 모듈들, 회로들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합들로서 구현될 수도 있다는 것을 인식할 것이다. 하드웨어 및 소프트웨어의 이 교환가능성을 명확하게 예시하기 위하여, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들은 일반적으로 그 기능성의 측면에서 위에서 설명되었다. 이러한 기능성이 하드웨어 또는 소프트웨어로 구현되는지 여부는 특별한 애플리케이션 및 전체 시스템에 부과된 설계 제약들에 종속된다. 숙련된 기술자들은 각각의 특별한 애플리케이션을 위한 다양한 방법들로 설명된 기능성을 구현할 수도 있지만, 이러한 구현 판정들은 본 개시물의 범위로부터의 이탈을 야기시키는 것으로 해석되지 않아야 한다.
본원에서 개시된 양태들과 관련하여 설명된 다양한 예시적인 논리적 블록들, 모듈들, 및 회로들은 범용 프로세서, 디지털 신호 프로세서 (DSP), 애플리케이션 특정 집적 회로 (ASIC), 필드 프로그래밍가능한 게이트 어레이 (FPGA) 또는 다른 프로그래밍가능한 로직 디바이스, 개별 게이트 또는 트랜지스터 로직, 개별 하드웨어 컴포넌트들, 또는 본원에서 설명된 기능들을 수행하도록 설계된 그 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안으로, 프로세서는 임의의 기존의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신 (state machine) 일 수도 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합, 예를 들어, DSP 및 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 함께 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성의 조합으로서 구현될 수도 있다.
본원에서 개시된 양태들과 관련하여 설명된 방법들, 시퀀스들 및/또는 알고리즘들은 하드웨어로, 프로세서에 의해 실행된 소프트웨어 모듈로, 또는 이 둘의 조합으로 직접 구체화될 수도 있다. 소프트웨어 모듈은 RAM, 플래시 메모리, ROM, EPROM, EEPROM, 레지스터들, 하드 디스크, 분리가능한 디스크, CD-ROM, 또는 당해 분야에서 알려진 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 예시적인 저장 매체는, 프로세서가 저장 매체로부터 정보를 판독할 수 있고 정보를 저장 매체에 기록할 수 있도록 프로세서에 결합된다. 대안으로, 저장 매체는 프로세서에 일체적일 수도 있다. 프로세서 및 저장 매체는 ASIC 내에 상주할 수도 있다. ASIC 은 사용자 단말 (예를 들어, UE) 에 상주할 수도 있다. 대안으로, 프로세서 및 저장 매체는 사용자 단말에서 개별 컴포넌트들로서 상주할 수도 있다.
하나 이상의 예시적인 양태들에서는, 설명된 기능들이 하드웨어, 소프트웨어, 펌웨어, 또는 그 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현될 경우, 기능들은 하나 이상의 명령들 또는 코드로서, 컴퓨터-판독가능한 매체 상에 저장되거나, 컴퓨터-판독가능한 매체를 통해 송신될 수도 있다. 컴퓨터-판독가능한 매체들은, 하나의 장소로부터 또 다른 장소까지의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 컴퓨터 저장 매체들 및 통신 매체들의 양자를 포함한다. 저장 매체들은 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수도 있다. 제한이 아닌 예로서, 이러한 컴퓨터-판독가능한 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장, 자기 디스크 저장, 또는 다른 자기 저장 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 희망하는 프로그램 코드를 반송 또는 저장하기 위해 이용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속은 컴퓨터-판독가능한 매체로 적절하게 칭해진다. 예를 들어, 동축 케이블, 광섬유 케이블, 트위스트 페어 (twisted pair), 디지털 가입자 회선 (digital subscriber line; DSL), 또는 무선 기술들 예컨대, 적외선, 라디오 (radio), 및 마이크로파 (microwave) 를 이용하여, 웹사이트, 서버, 또는 다른 원격 소스로부터 소프트웨어가 송신될 경우, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL, 또는 무선 기술들 예컨대, 적외선, 라디오, 및 마이크로파는 매체의 정의 내에 포함된다. 본원에서 이용된 바와 같은 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크 (compact disc; CD), 레이저 디스크 (laser disc), 광학 디스크 (optical disc), 디지털 다기능 디스크 (digital versatile disc; DVD), 플로피 디스크 (floppy disk) 및 블루레이 디스크 (blu-ray disc) 를 포함하고, 여기서, 디스크 (disk) 들은 통상 데이터를 자기적으로 재생하는 반면, 디스크 (disc) 들은 데이터를 레이저들로 광학적으로 재생한다. 상기의 조합들은 컴퓨터-판독가능한 매체들의 범위 내에 또한 포함되어야 한다.
상기한 개시물은 개시물의 예시적인 양태들을 도시하지만, 첨부된 청구항들에 의해 정의된 바와 같은 개시물의 범위로부터 이탈하지 않으면서, 다양한 변경들 및 수정들이 본원에서 행해질 수 있다는 것에 주목해야 한다. 본원에서 설명된 개시물의 양태들에 따른 방법 청구항들의 기능들, 단계들 및/또는 작동들은 임의의 특별한 순서로 수행될 필요가 없다. 또한, 본 개시물의 엘리먼트들은 단수 형태로 설명 또는 청구될 수도 있지만, 단수에 대한 제한이 명시적으로 기재되어 있지 않을 경우에는 복수가 고려된다.

Claims (67)

  1. 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 방법으로서,
    인코딩된 비디오 프레임들의 오리지널 스트림을 분석하는 단계;
    상기 인코딩된 비디오 프레임들의 감소된 스트림을 생성하기 위해서, 인코딩된 비디오 프레임들을 재인코딩하지 않고 상기 인코딩된 비디오 프레임들의 오리지널 스트림으로부터 복수의 프레임들을 제거하는 단계; 및
    상기 인코딩된 비디오 프레임들의 감소된 스트림 및 복수의 제거된 프레임들을 설명하는 메타데이터를 송신하는 단계를 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 방법.
  2. 제 1 항에 있어서,
    상기 인코딩된 비디오 프레임들의 오리지널 스트림에 대한 요청을 사용자 디바이스로부터 수신하는 단계를 더 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 방법.
  3. 제 1 항에 있어서,
    상기 분석하는 단계는,
    비디오 프레임의 타입을 식별하기 위해서, 상기 인코딩된 비디오 프레임들의 오리지널 스트림의 헤더들을 분석하는 단계를 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 방법.
  4. 제 3 항에 있어서,
    상기 비디오 프레임의 타입은 상기 비디오 프레임의 사이즈 또는 상기 비디오 프레임의 헤더에서의 식별자에 의해 식별되는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 방법.
  5. 제 3 항에 있어서,
    상기 비디오 프레임의 타입은 I 프레임, P 프레임, 또는 B 프레임인, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 방법.
  6. 제 1 항에 있어서,
    상기 인코딩된 비디오 프레임들의 오리지널 스트림으로부터 제거될 프레임들의 수를 결정하는 단계를 더 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 방법.
  7. 제 1 항에 있어서,
    상기 인코딩된 비디오 프레임들의 오리지널 스트림은 키 프레임 및 복수의 중간 프레임들을 포함하는 프레임들의 적어도 하나의 시퀀스를 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 방법.
  8. 제 7 항에 있어서,
    상기 키 프레임은 디코딩을 요구하지 않으며, 상기 복수의 중간 프레임들은 디코딩되기 위해서 상기 키 프레임을 요구하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 방법.
  9. 제 7 항에 있어서,
    상기 제거하는 단계는 2개의 키 프레임들 사이에서 상기 복수의 중간 프레임들을 제거하는 단계를 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 방법.
  10. 제 7 항에 있어서,
    수신 사용자 디바이스는 상기 인코딩된 비디오 프레임들의 감소된 스트림에 프레임들을 추가함으로써 상기 인코딩된 비디오 프레임들의 오리지널 스트림을 재생성하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 방법.
  11. 제 10 항에 있어서,
    상기 추가된 프레임들은 상기 복수의 중간 프레임들인, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 방법.
  12. 제 11 항에 있어서,
    상기 추가된 프레임들은 제 1 키 프레임을 제 2 키 프레임으로 모핑함으로써 생성되는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 방법.
  13. 제 10 항에 있어서,
    상기 추가된 프레임들의 수는 상기 복수의 제거된 프레임들의 수에 매칭되는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 방법.
  14. 제 1 항에 있어서,
    상기 메타데이터는, 상기 인코딩된 비디오 프레임들의 오리지널 스트림이 편집된 것을 나타내는 플래그, 상기 인코딩된 비디오 프레임들의 감소된 스트림의 식별자들, 상기 복수의 제거된 프레임들의 수, 및/또는 상기 복수의 제거된 프레임들의 식별자들을 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 방법.
  15. 인코딩된 비디오 프레임들의 감소된 스트림으로부터 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 방법으로서,
    상기 인코딩된 비디오 프레임들의 감소된 스트림을 수신하는 단계로서, 상기 인코딩된 비디오 프레임들의 감소된 스트림이 상기 인코딩된 비디오 프레임들의 오리지널 스트림으로부터 복수의 프레임들을 제거함으로써 생성되었던, 상기 수신하는 단계;
    상기 인코딩된 비디오 프레임들의 감소된 스트림과 관련된 메타데이터에 기초하여 상기 복수의 제거된 프레임들을 식별하는 단계;
    식별된 상기 복수의 제거된 프레임들에 기초하여 복수의 대체 프레임들을 생성하는 단계; 및
    상기 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 재생성하기 위해서 상기 인코딩된 비디오 프레임들의 감소된 스트림에 상기 복수의 대체 프레임들을 추가하는 단계를 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 방법.
  16. 제 15 항에 있어서,
    상기 인코딩된 비디오 프레임들의 감소된 스트림과 관련된 메타데이터를 프로세싱하는 단계를 더 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 방법.
  17. 제 15 항에 있어서,
    상기 메타데이터는 상기 인코딩된 비디오 프레임들의 감소된 스트림의 헤더들에 포함되는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 방법.
  18. 제 15 항에 있어서,
    상기 식별하는 단계는,
    프레임이 드롭된 프레임들의 시퀀스의 시작이라고 결정하는 단계; 및
    상기 프레임을 상기 드롭된 프레임들의 시퀀스의 시작으로서 저장하는 단계를 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 방법.
  19. 제 18 항에 있어서,
    상기 식별하는 단계는,
    상기 프레임이 상기 드롭된 프레임들의 시퀀스 이후의 첫번째 프레임이라고 결정하는 단계; 및
    상기 프레임을 상기 드롭된 프레임들의 시퀀스의 종료로서 저장하는 단계를 더 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 방법.
  20. 제 19 항에 있어서,
    상기 생성하는 단계는,
    상기 드롭된 프레임들의 시퀀스의 시작으로서 저장된 프레임 및 상기 드롭된 프레임들의 시퀀스의 종료로서 저장된 프레임에 기초하여 상기 드롭된 프레임들의 시퀀스를 재생성하는 단계를 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 방법.
  21. 제 20 항에 있어서,
    상기 재성성하는 단계는, 상기 복수의 대체 프레임들을 생성하기 위해서 제 1 키 프레임을 제 2 키 프레임으로 모핑하는 단계를 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 방법.
  22. 제 20 항에 있어서,
    상기 재생성하는 단계는,
    제 1 키 프레임 및 제 2 키 프레임에서 오브젝트들을 식별하기 위해서 모션 추적을 이용하는 단계; 및
    추적된 상기 오브젝트들을 상기 제 1 키 프레임에서의 그 위치로부터 상기 제 2 키 프레임에서의 그 위치로 이동시키는 것에 기초하여 상기 복수의 대체 프레임들을 생성하는 단계를 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 방법.
  23. 제 19 항에 있어서,
    상기 프레임이 상기 드롭된 프레임들의 시퀀스 이후의 첫번째 프레임이라고 결정하는 단계는 상기 메타데이터에 기초하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 방법.
  24. 제 18 항에 있어서,
    상기 프레임이 드롭된 프레임들의 시퀀스의 시작이라고 결정하는 단계는 상기 메타데이터에 기초하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 방법.
  25. 제 15 항에 있어서,
    상기 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 재생하는 단계를 더 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 방법.
  26. 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 장치로서,
    인코딩된 비디오 프레임들의 오리지널 스트림을 분석하도록 구성된 로직;
    상기 인코딩된 비디오 프레임들의 감소된 스트림을 생성하기 위해서, 인코딩된 비디오 프레임들을 재인코딩하지 않고 상기 인코딩된 비디오 프레임들의 오리지널 스트림으로부터 복수의 프레임들을 제거하도록 구성된 로직; 및
    상기 인코딩된 비디오 프레임들의 감소된 스트림 및 복수의 제거된 프레임들을 설명하는 메타데이터를 송신하도록 구성된 로직을 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 장치.
  27. 제 26 항에 있어서,
    상기 인코딩된 비디오 프레임들의 오리지널 스트림에 대한 요청을 사용자 디바이스로부터 수신하도록 구성된 로직을 더 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 장치.
  28. 제 26 항에 있어서,
    상기 인코딩된 비디오 프레임들의 오리지널 스트림으로부터 제거될 프레임들의 수를 결정하도록 구성된 로직을 더 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 장치.
  29. 제 26 항에 있어서,
    상기 인코딩된 비디오 프레임들의 오리지널 스트림은 키 프레임 및 복수의 중간 프레임들을 포함하는 프레임들의 적어도 하나의 시퀀스를 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 장치.
  30. 제 29 항에 있어서,
    상기 키 프레임은 디코딩을 요구하지 않으며, 상기 복수의 중간 프레임들은 디코딩되기 위해서 상기 키 프레임을 요구하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 장치.
  31. 제 29 항에 있어서,
    상기 제거하도록 구성된 로직은 2개의 키 프레임들 사이에서 복수의 중간 프레임들을 제거하도록 구성된 로직을 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 장치.
  32. 제 26 항에 있어서,
    상기 메타데이터는, 인코딩된 비디오 프레임들의 스트림이 편집된 것을 나타내는 플래그, 상기 인코딩된 비디오 프레임들의 감소된 스트림의 식별자들, 상기 제거된 프레임들의 수, 및/또는 상기 복수의 제거된 프레임들의 식별자들을 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 장치.
  33. 인코딩된 비디오 프레임들의 감소된 스트림으로부터 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 장치로서,
    상기 인코딩된 비디오 프레임들의 감소된 스트림을 수신하도록 구성된 로직으로서, 상기 인코딩된 비디오 프레임들의 감소된 스트림이 상기 인코딩된 비디오 프레임들의 오리지널 스트림으로부터 복수의 프레임들을 제거함으로써 생성되었던, 상기 수신하도록 구성된 로직;
    상기 인코딩된 비디오 프레임들의 감소된 스트림과 관련된 메타데이터에 기초하여 상기 복수의 제거된 프레임들을 식별하도록 구성된 로직;
    식별된 상기 복수의 제거된 프레임들에 기초하여 복수의 대체 프레임들을 생성하도록 구성된 로직; 및
    상기 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 재생성하기 위해서 상기 인코딩된 비디오 프레임들의 감소된 스트림에 상기 복수의 대체 프레임들을 추가하도록 구성된 로직을 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 장치.
  34. 제 33 항에 있어서,
    상기 메타데이터는 상기 인코딩된 비디오 프레임들의 감소된 스트림의 헤더들에 포함되는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 장치.
  35. 제 33 항에 있어서,
    상기 식별하도록 구성된 로직은,
    프레임이 드롭된 프레임들의 시퀀스의 시작이라고 결정하도록 구성된 로직; 및
    상기 프레임을 상기 드롭된 프레임들의 시퀀스의 시작으로서 저장하도록 구성된 로직을 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 장치.
  36. 제 35 항에 있어서,
    상기 식별하도록 구성된 로직은,
    상기 프레임이 상기 드롭된 프레임들의 시퀀스 이후의 첫번째 프레임이라고 결정하도록 구성된 로직; 및
    상기 프레임을 상기 드롭된 프레임들의 시퀀스의 종료로서 저장하도록 구성된 로직을 더 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 장치.
  37. 제 36 항에 있어서,
    상기 생성하도록 구성된 로직은,
    상기 드롭된 프레임들의 시퀀스의 시작으로서 저장된 프레임 및 상기 드롭된 프레임들의 시퀀스의 종료로서 저장된 프레임에 기초하여 상기 드롭된 프레임들의 시퀀스를 재생성하도록 구성된 로직을 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 장치.
  38. 제 37 항에 있어서,
    상기 재성성하도록 구성된 로직은, 상기 복수의 대체 프레임들을 생성하기 위해서 제 1 키 프레임을 제 2 키 프레임으로 모핑하도록 구성된 로직을 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 장치.
  39. 제 33 항에 있어서,
    상기 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 재생하도록 구성된 로직을 더 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 장치.
  40. 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 장치로서,
    인코딩된 비디오 프레임들의 오리지널 스트림을 분석하는 수단;
    상기 인코딩된 비디오 프레임들의 감소된 스트림을 생성하기 위해서, 인코딩된 비디오 프레임들을 재인코딩하지 않고 상기 인코딩된 비디오 프레임들의 오리지널 스트림으로부터 복수의 프레임들을 제거하는 수단; 및
    상기 인코딩된 비디오 프레임들의 감소된 스트림 및 복수의 제거된 프레임들을 설명하는 메타데이터를 송신하는 수단을 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 장치.
  41. 제 40 항에 있어서,
    상기 인코딩된 비디오 프레임들의 오리지널 스트림에 대한 요청을 사용자 디바이스로부터 수신하는 수단을 더 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 장치.
  42. 제 40 항에 있어서,
    상기 인코딩된 비디오 프레임들의 오리지널 스트림으로부터 제거될 프레임들의 수를 결정하는 수단을 더 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 장치.
  43. 제 40 항에 있어서,
    상기 인코딩된 비디오 프레임들의 오리지널 스트림은 키 프레임 및 복수의 중간 프레임들을 포함하는 프레임들의 적어도 하나의 시퀀스를 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 장치.
  44. 제 43 항에 있어서,
    상기 키 프레임은 디코딩을 요구하지 않으며, 상기 복수의 중간 프레임들은 디코딩되기 위해서 상기 키 프레임을 요구하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 장치.
  45. 제 43 항에 있어서,
    상기 제거하는 수단은 2개의 키 프레임들 사이에서 상기 복수의 중간 프레임들을 제거하는 수단을 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 장치.
  46. 제 40 항에 있어서,
    상기 메타데이터는, 상기 인코딩된 비디오 프레임들의 오리지널 스트림이 편집된 것을 나타내는 플래그, 상기 인코딩된 비디오 프레임들의 감소된 스트림의 식별자들, 상기 복수의 제거된 프레임들의 수, 및/또는 상기 복수의 제거된 프레임들의 식별자들을 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하는 장치.
  47. 인코딩된 비디오 프레임들의 감소된 스트림으로부터 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 장치로서,
    상기 인코딩된 비디오 프레임들의 감소된 스트림을 수신하는 수단으로서, 상기 인코딩된 비디오 프레임들의 감소된 스트림이 상기 인코딩된 비디오 프레임들의 오리지널 스트림으로부터 복수의 프레임들을 제거함으로써 생성되었던, 상기 수신하는 수단;
    상기 인코딩된 비디오 프레임들의 감소된 스트림과 관련된 메타데이터에 기초하여 상기 복수의 제거된 프레임들을 식별하는 수단;
    식별된 상기 복수의 제거된 프레임들에 기초하여 복수의 대체 프레임들을 생성하는 수단; 및
    상기 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 재생성하기 위해서 상기 인코딩된 비디오 프레임들의 감소된 스트림에 상기 복수의 대체 프레임들을 추가하는 수단을 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 장치.
  48. 제 47 항에 있어서,
    상기 메타데이터는 상기 인코딩된 비디오 프레임들의 감소된 스트림의 헤더들에 포함되는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 장치.
  49. 제 47 항에 있어서,
    상기 식별하는 수단은,
    프레임이 드롭된 프레임들의 시퀀스의 시작이라고 결정하는 수단; 및
    상기 프레임을 상기 드롭된 프레임들의 시퀀스의 시작으로서 저장하는 수단을 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 장치.
  50. 제 49 항에 있어서,
    상기 식별하는 수단은,
    상기 프레임이 상기 드롭된 프레임들의 시퀀스 이후의 첫번째 프레임이라고 결정하는 수단; 및
    상기 프레임을 상기 드롭된 프레임들의 시퀀스의 종료로서 저장하는 수단을 더 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 장치.
  51. 제 50 항에 있어서,
    상기 생성하는 수단은,
    상기 드롭된 프레임들의 시퀀스의 시작으로서 저장된 프레임 및 상기 드롭된 프레임들의 시퀀스의 종료로서 저장된 프레임에 기초하여 상기 드롭된 프레임들의 시퀀스를 재생성하는 수단을 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 장치.
  52. 제 51 항에 있어서,
    상기 재성성하는 수단은, 상기 복수의 대체 프레임들을 생성하기 위해서 제 1 키 프레임을 제 2 키 프레임으로 모핑하는 수단을 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 장치.
  53. 제 47 항에 있어서,
    상기 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 재생하는 수단을 더 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하는 장치.
  54. 인코딩된 비디오 프레임들의 감소된 스트림을 송신하기 위한 비일시적인 컴퓨터 판독가능 매체로서,
    인코딩된 비디오 프레임들의 오리지널 스트림을 분석하기 위한 적어도 하나의 명령;
    상기 인코딩된 비디오 프레임들의 감소된 스트림을 생성하기 위해서, 인코딩된 비디오 프레임들을 재인코딩하지 않고 상기 인코딩된 비디오 프레임들의 오리지널 스트림으로부터 복수의 프레임들을 제거하기 위한 적어도 하나의 명령; 및
    상기 인코딩된 비디오 프레임들의 감소된 스트림 및 복수의 제거된 프레임들을 설명하는 메타데이터를 송신하기 위한 적어도 하나의 명령을 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하기 위한 비일시적인 컴퓨터 판독가능 매체.
  55. 제 54 항에 있어서,
    상기 인코딩된 비디오 프레임들의 오리지널 스트림에 대한 요청을 사용자 디바이스로부터 수신하기 위한 적어도 하나의 명령을 더 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하기 위한 비일시적인 컴퓨터 판독가능 매체.
  56. 제 54 항에 있어서,
    상기 인코딩된 비디오 프레임들의 오리지널 스트림으로부터 제거될 프레임들의 수를 결정하기 위한 적어도 하나의 명령을 더 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하기 위한 비일시적인 컴퓨터 판독가능 매체.
  57. 제 54 항에 있어서,
    상기 인코딩된 비디오 프레임들의 오리지널 스트림은 키 프레임 및 복수의 중간 프레임들을 포함하는 프레임들의 적어도 하나의 시퀀스를 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하기 위한 비일시적인 컴퓨터 판독가능 매체.
  58. 제 57 항에 있어서,
    상기 키 프레임은 디코딩을 요구하지 않으며, 상기 복수의 중간 프레임들은 디코딩되기 위해서 상기 키 프레임을 요구하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하기 위한 비일시적인 컴퓨터 판독가능 매체.
  59. 제 57 항에 있어서,
    상기 제거하기 위한 적어도 하나의 명령은 2개의 키 프레임들 사이에서 상기 복수의 중간 프레임들을 제거하기 위한 적어도 하나의 명령을 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하기 위한 비일시적인 컴퓨터 판독가능 매체.
  60. 제 54 항에 있어서,
    상기 메타데이터는, 상기 인코딩된 비디오 프레임들의 오리지널 스트림이 편집된 것을 나타내는 플래그, 상기 인코딩된 비디오 프레임들의 감소된 스트림의 식별자들, 상기 제거된 프레임들의 수, 및/또는 상기 복수의 제거된 프레임들의 식별자들을 포함하는, 인코딩된 비디오 프레임들의 감소된 스트림을 송신하기 위한 비일시적인 컴퓨터 판독가능 매체.
  61. 인코딩된 비디오 프레임들의 감소된 스트림으로부터 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하기 위한 비일시적인 컴퓨터 판독가능 매체로서,
    상기 인코딩된 비디오 프레임들의 감소된 스트림을 수신하기 위한 적어도 하나의 명령으로서, 상기 인코딩된 비디오 프레임들의 감소된 스트림이 상기 인코딩된 비디오 프레임들의 오리지널 스트림으로부터 복수의 프레임들을 제거함으로써 생성되었던, 상기 수신하기 위한 적어도 하나의 명령;
    상기 인코딩된 비디오 프레임들의 감소된 스트림과 관련된 메타데이터에 기초하여 상기 복수의 제거된 프레임들을 식별하기 위한 적어도 하나의 명령;
    식별된 상기 복수의 제거된 프레임들에 기초하여 복수의 대체 프레임들을 생성하기 위한 적어도 하나의 명령; 및
    상기 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 재생성하기 위해서 상기 인코딩된 비디오 프레임들의 감소된 스트림에 상기 복수의 대체 프레임들을 추가하기 위한 적어도 하나의 명령을 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하기 위한 비일시적인 컴퓨터 판독가능 매체.
  62. 제 61 항에 있어서,
    상기 메타데이터는 상기 인코딩된 비디오 프레임들의 감소된 스트림의 헤더들에 포함되는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하기 위한 비일시적인 컴퓨터 판독가능 매체.
  63. 제 61 항에 있어서,
    상기 식별하기 위한 적어도 하나의 명령은,
    프레임이 드롭된 프레임들의 시퀀스의 시작이라고 결정하기 위한 적어도 하나의 명령; 및
    상기 프레임을 상기 드롭된 프레임들의 시퀀스의 시작으로서 저장하기 위한 적어도 하나의 명령을 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하기 위한 비일시적인 컴퓨터 판독가능 매체.
  64. 제 63 항에 있어서,
    상기 식별하기 위한 적어도 하나의 명령은,
    상기 프레임이 상기 드롭된 프레임들의 시퀀스 이후의 첫번째 프레임이라고 결정하기 위한 적어도 하나의 명령; 및
    상기 프레임을 상기 드롭된 프레임들의 시퀀스의 종료로서 저장하기 위한 적어도 하나의 명령을 더 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하기 위한 비일시적인 컴퓨터 판독가능 매체.
  65. 제 64 항에 있어서,
    상기 생성하기 위한 적어도 하나의 명령은,
    상기 드롭된 프레임들의 시퀀스의 시작으로서 저장된 프레임 및 상기 드롭된 프레임들의 시퀀스의 종료로서 저장된 프레임에 기초하여 상기 드롭된 프레임들의 시퀀스를 재생성하기 위한 적어도 하나의 명령을 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하기 위한 비일시적인 컴퓨터 판독가능 매체.
  66. 제 65 항에 있어서,
    상기 재성성하기 위한 적어도 하나의 명령은, 상기 복수의 대체 프레임들을 생성하기 위해서 제 1 키 프레임을 제 2 키 프레임으로 모핑하기 위한 적어도 하나의 명령을 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하기 위한 비일시적인 컴퓨터 판독가능 매체.
  67. 제 61 항에 있어서,
    상기 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 재생하기 위한 적어도 하나의 명령을 더 포함하는, 인코딩된 비디오 프레임들의 오리지널 스트림의 새로운 버전을 생성하기 위한 비일시적인 컴퓨터 판독가능 매체.
KR1020157029082A 2013-03-15 2014-03-14 비디오 프레임들을 드롭함으로써 네트워크를 통해 비디오들을 송신하기 위해 필요한 비트 레이트를 감소시키는 방법 KR20150132372A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/836,269 2013-03-15
US13/836,269 US9578333B2 (en) 2013-03-15 2013-03-15 Method for decreasing the bit rate needed to transmit videos over a network by dropping video frames
PCT/US2014/028204 WO2014143988A1 (en) 2013-03-15 2014-03-14 Method for decreasing the bit rate needed to transmit videos over a network by dropping video frames

Publications (1)

Publication Number Publication Date
KR20150132372A true KR20150132372A (ko) 2015-11-25

Family

ID=50842323

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157029082A KR20150132372A (ko) 2013-03-15 2014-03-14 비디오 프레임들을 드롭함으로써 네트워크를 통해 비디오들을 송신하기 위해 필요한 비트 레이트를 감소시키는 방법

Country Status (7)

Country Link
US (2) US9578333B2 (ko)
EP (1) EP2974323A1 (ko)
JP (1) JP2016519466A (ko)
KR (1) KR20150132372A (ko)
CN (1) CN105027572A (ko)
TW (2) TWI562623B (ko)
WO (1) WO2014143988A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130135281A (ko) * 2011-01-07 2013-12-10 마이크로소프트 코포레이션 무선 통신 기술
KR102291293B1 (ko) * 2020-02-26 2021-08-20 가부시끼가이샤 도시바 송신 디바이스, 통신 시스템, 송신 방법, 및 비일시적 컴퓨터 판독가능 기록 매체
US11647217B2 (en) 2018-11-02 2023-05-09 Kabushiki Kaisha Toshiba Transmission device, communication system, transmission method, and computer program product

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9578333B2 (en) 2013-03-15 2017-02-21 Qualcomm Incorporated Method for decreasing the bit rate needed to transmit videos over a network by dropping video frames
CN107026827B (zh) * 2016-02-02 2020-04-03 上海交通大学 一种用于视频流中静止图像的优化传输方法
EP3796652B1 (en) * 2019-09-23 2022-05-18 Axis AB Video encoding method and method for reducing file size of encoded video
CN111093083B (zh) * 2019-12-16 2022-12-09 西安万像电子科技有限公司 数据传输方法及装置
CN112995746B (zh) * 2019-12-18 2022-09-09 华为技术有限公司 视频处理方法、装置与终端设备
CN114095451B (zh) * 2021-11-17 2024-05-21 腾讯科技(深圳)有限公司 一种数据处理方法、设备及计算机可读存储介质

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08280009A (ja) * 1995-04-06 1996-10-22 Matsushita Electric Ind Co Ltd 画像符号化装置および画像復号化装置および光ディスク
JPH10215458A (ja) * 1997-01-31 1998-08-11 Matsushita Electric Ind Co Ltd 画像圧縮伸長装置および欠落フレーム補間方法
JPH10336670A (ja) * 1997-04-04 1998-12-18 Sony Corp 画像伝送装置および画像伝送方法、提供媒体
CN1169304C (zh) * 1998-01-21 2004-09-29 松下电器产业株式会社 可变长度编码装置
EP0952709A1 (en) 1998-04-20 1999-10-27 BRITISH TELECOMMUNICATIONS public limited company Data storage and supply
US6907073B2 (en) 1999-12-20 2005-06-14 Sarnoff Corporation Tweening-based codec for scaleable encoders and decoders with varying motion computation capability
JP2001268519A (ja) * 2000-03-22 2001-09-28 Toshiba Corp 記録装置
JP4050472B2 (ja) * 2001-02-06 2008-02-20 株式会社モノリス 画像生成方法、装置およびシステム
JP2003023639A (ja) * 2001-07-10 2003-01-24 Sony Corp データ伝送装置及び方法、データ伝送プログラム、並びに記録媒体
US6804301B2 (en) * 2001-08-15 2004-10-12 General Instrument Corporation First pass encoding of I and P-frame complexity for compressed digital video
US20030058932A1 (en) * 2001-09-24 2003-03-27 Koninklijke Philips Electronics N.V. Viseme based video coding
AU2003231102A1 (en) * 2002-04-26 2003-11-10 Electronics And Telecommunications Research Institute Method and system for optimal video transcoding based on utility function descriptors
CN100366077C (zh) * 2002-04-26 2008-01-30 纽约市哥伦比亚大学托管会 基于实用函数描述的最优视频解码的方法和系统
US9077991B2 (en) * 2002-12-10 2015-07-07 Sony Computer Entertainment America Llc System and method for utilizing forward error correction with video compression
JP4405272B2 (ja) * 2003-02-19 2010-01-27 パナソニック株式会社 動画像復号化方法、動画像復号化装置及びプログラム
US20050089232A1 (en) * 2003-10-23 2005-04-28 Chun-Ming Hsu Method of video compression that accommodates scene changes
JPWO2005122593A1 (ja) * 2004-06-14 2008-04-10 株式会社モノリス 動画符号化方法および動画復号方法
WO2006012384A2 (en) 2004-07-20 2006-02-02 Qualcomm Incorporated Method and apparatus for encoder assisted-frame rate up conversion (ea-fruc) for video compression
US7571246B2 (en) * 2004-07-29 2009-08-04 Microsoft Corporation Media transrating over a bandwidth-limited network
US8861601B2 (en) * 2004-08-18 2014-10-14 Qualcomm Incorporated Encoder-assisted adaptive video frame interpolation
JP2008523689A (ja) 2004-12-10 2008-07-03 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 単層符号化を使用する無線ビデオストリーミング及び優先順位付けされたストリーミング
GB0428155D0 (en) * 2004-12-22 2005-01-26 British Telecomm Buffer underflow prevention
US20060239563A1 (en) * 2005-04-25 2006-10-26 Nokia Corporation Method and device for compressed domain video editing
US8281351B2 (en) * 2005-04-29 2012-10-02 Alcatel Lucent System, method, and computer readable medium rapid channel change
EP1908303A4 (en) * 2005-07-01 2011-04-06 Sonic Solutions METHOD, DEVICE AND SYSTEM FOR USE IN MULTIMEDIA SIGNAL CODING
KR100714695B1 (ko) 2005-07-16 2007-05-04 삼성전자주식회사 픽쳐 드롭 및 합성을 통하여 레이트 컨트롤을 수행하는비디오 코딩 방법, 그 방법을 이용한 비디오 인코더, 및트랜스코더
US20070058926A1 (en) * 2005-09-09 2007-03-15 Microsoft Corporation Optimizing trick modes for streaming media content
US8355452B2 (en) 2006-02-27 2013-01-15 Sharp Laboratories Of America, Inc. Selective frame dropping for initial buffer delay reduction
US8296813B2 (en) * 2006-06-22 2012-10-23 Sony Computer Entertainment Inc. Predictive frame dropping to enhance quality of service in streaming data
US8848793B2 (en) * 2007-10-31 2014-09-30 Broadcom Corporation Method and system for video compression with integrated picture rate up-conversion
US8238431B2 (en) 2008-03-06 2012-08-07 Arris Solutions, Inc. Method and system for rate reduction of video streams
US20100027663A1 (en) 2008-07-29 2010-02-04 Qualcomm Incorporated Intellegent frame skipping in video coding based on similarity metric in compressed domain
DE102008059028B4 (de) * 2008-10-02 2021-12-02 Rohde & Schwarz GmbH & Co. Kommanditgesellschaft Verfahren und Vorrichtung zur Erzeugung eines Transportdatenstroms mit Bilddaten
US20100296579A1 (en) * 2009-05-22 2010-11-25 Qualcomm Incorporated Adaptive picture type decision for video coding
US8254445B2 (en) 2009-08-06 2012-08-28 Georgia Tech Research Corporation Video transmission using video quality metrics
US8428364B2 (en) 2010-01-15 2013-04-23 Dolby Laboratories Licensing Corporation Edge enhancement for temporal scaling with metadata
US8443097B2 (en) * 2010-04-12 2013-05-14 Alcatel Lucent Queue management unit and method for streaming video packets in a wireless network
US8806050B2 (en) 2010-08-10 2014-08-12 Qualcomm Incorporated Manifest file updates for network streaming of coded multimedia data
JP2012235419A (ja) * 2011-05-09 2012-11-29 Jvc Kenwood Corp 映像信号処理装置及び映像信号処理方法
US20130058406A1 (en) * 2011-09-05 2013-03-07 Zhou Ye Predictive frame dropping method used in wireless video/audio data transmission
US20130064308A1 (en) * 2011-09-14 2013-03-14 General Instrument Corporation Coding and decoding synchronized compressed video bitstreams
US9578333B2 (en) 2013-03-15 2017-02-21 Qualcomm Incorporated Method for decreasing the bit rate needed to transmit videos over a network by dropping video frames

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130135281A (ko) * 2011-01-07 2013-12-10 마이크로소프트 코포레이션 무선 통신 기술
US11647217B2 (en) 2018-11-02 2023-05-09 Kabushiki Kaisha Toshiba Transmission device, communication system, transmission method, and computer program product
KR102291293B1 (ko) * 2020-02-26 2021-08-20 가부시끼가이샤 도시바 송신 디바이스, 통신 시스템, 송신 방법, 및 비일시적 컴퓨터 판독가능 기록 매체

Also Published As

Publication number Publication date
JP2016519466A (ja) 2016-06-30
EP2974323A1 (en) 2016-01-20
WO2014143988A1 (en) 2014-09-18
US9578333B2 (en) 2017-02-21
US20170078678A1 (en) 2017-03-16
TWI584636B (zh) 2017-05-21
US20140269938A1 (en) 2014-09-18
US9787999B2 (en) 2017-10-10
TWI562623B (en) 2016-12-11
TW201442495A (zh) 2014-11-01
TW201644279A (zh) 2016-12-16
CN105027572A (zh) 2015-11-04

Similar Documents

Publication Publication Date Title
US9787999B2 (en) Method for decreasing the bit rate needed to transmit videos over a network by dropping video frames
US11997313B2 (en) Dependent random access point pictures
US20120185570A1 (en) Method and Apparatus for Indicating Switching Points in a Streaming Session
KR102099357B1 (ko) 스크린 샷을 제공하는 장치 및 시스템, 그리고 방법
WO2018010662A1 (zh) 视频文件的转码方法,装置及存储介质
US20120222075A1 (en) Method, terminal, and server for implementing fast playout
US10476928B2 (en) Network video playback method and apparatus
KR20170130253A (ko) 적응형 스트리밍 서비스 제공 방법 및 이를 위한 장치
US9794375B2 (en) Method, apparatus, and non-transitory computer medium for obtaining a required frame size for a compressed data frame
US10136153B2 (en) DRAP identification and decoding
US9680901B2 (en) Method, apparatus and non-transitory computer medium for encoding data of a media file
US20160156922A1 (en) Video encoding apparatus, video decoding apparatus, video encoding method, and video decoding method
JP2016189613A (ja) 動画データ編集装置、動画データ編集方法、再生装置、及びプログラム
KR102281217B1 (ko) 인코딩 방법 및 디코딩 방법, 그리고 이를 위한 장치
JP6872538B2 (ja) メディア伝送システムにおけるビデオビットストリームのランダムアクセス及び再生方法
KR102209783B1 (ko) 스트리밍 제공 서버와 기지국 연동 노드를 통한 스트리밍 데이터 패킷 제공 방법, 이를 위한 기지국 연동 노드
KR20140115819A (ko) 선택적 영상 전송 시스템
JP2014135728A (ja) 映像伝送システム及び映像伝送方法
US10484725B2 (en) Information processing apparatus and information processing method for reproducing media based on edit file
CN114125493B (zh) 一种流媒体的分布式存储方法、装置和设备
WO2019022652A1 (en) FIRST NODE, SECOND NODE, THIRD NODE AND METHODS PERFORMED USING SAID NODES FOR MANAGING DIGITAL MULTIMEDIA CONTENT
KR102210437B1 (ko) 미디어 컨텐츠 전송 제어 방법, 이를 위한 장치
CN116033170A (zh) 视频解码方法、视频编解码系统以及视频解码装置
JP2014135727A (ja) 映像伝送システム及び映像伝送方法
JP2006129081A (ja) データファイルの編集方法及び装置及び制御プログラム及び記憶媒体

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid