KR102411973B1 - 네트워크 환경에서 데이터 처리를 향상시키는 시스템 및 방법 - Google Patents

네트워크 환경에서 데이터 처리를 향상시키는 시스템 및 방법 Download PDF

Info

Publication number
KR102411973B1
KR102411973B1 KR1020187033780A KR20187033780A KR102411973B1 KR 102411973 B1 KR102411973 B1 KR 102411973B1 KR 1020187033780 A KR1020187033780 A KR 1020187033780A KR 20187033780 A KR20187033780 A KR 20187033780A KR 102411973 B1 KR102411973 B1 KR 102411973B1
Authority
KR
South Korea
Prior art keywords
data
file
base
difference
quality
Prior art date
Application number
KR1020187033780A
Other languages
English (en)
Other versions
KR20180137540A (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
Priority claimed from US15/407,192 external-priority patent/US10198777B2/en
Application filed by 버티고 미디어 인코포레이티드 filed Critical 버티고 미디어 인코포레이티드
Publication of KR20180137540A publication Critical patent/KR20180137540A/ko
Application granted granted Critical
Publication of KR102411973B1 publication Critical patent/KR102411973B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • G06F16/1756De-duplication implemented within the file system, e.g. based on file segments based on delta files
    • 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

Abstract

데이터 처리 또는 패칭 시스템은 데이터 저장소 내의 중복 데이터를 줄이도록 동작한다. 데이터 파일이 비교되고 데이터 차이가 출력된다. 매우 유사한 데이터를 가진 파일에서, 값들 사이의 데이터 차이가 비교적 작고, 따라서 베이스 데이터 파일과 데이터 차이 파일이 저장될 때, 데이터 중복이 크게 줄어든다. 그 다음에 "diff" 파일의 데이터 차이는 비교되는 파일들 중 하나의 데이터를 무손실로 재생성하는 데 사용될 수 있다. 제1 또는 1차 포트는 브로드캐스팅 클라이언트가 가장 낮은 이용 가능한 품질을 전송하는 기본 품질 전송 전용이다. 추가 또는 2차 포트는 기본 품질의 "diff"로서 송신된 기본 품질 데이터보다 더 높은 전송을 가능하게 한다. 수신 클라이언트는 2차 포트의 "diff" 데이터를 첫 번째 포트의 베이스 데이터와 결합하여 고품질의 미디어를 생성한다.

Description

네트워크 환경에서 데이터 처리를 향상시키는 시스템 및 방법
우선권 이력
본 미국 특허출원은 2016년 4월 22일에 미국 특허상표청(USPTO)에 출원된 계류중인(pending) 미국 가특허출원 제62/326,428호의 이익을 주장하고, 2017년 1월 16일에 USPTO에 출원된 동시 계류중인 미국 특허출원 제15/407,192호의 부분계속출원(continuation-in-part)이며, 이들 출원의 명세서는 본 명세서에 참고로 포함된다.
발명의 분야
본 발명은, 일반적으로 모바일 애플리케이션 피처 또는 소프트웨어 툴을 구현하고 네트워크 내 서버 위치에서의 저장된 데이터 중복을 감소시키며 송신 클라이언트와 수신 클라이언트 사이의 데이터 전송을 향상시키기 위해, 네트워킹된 모바일 통신 장치들로 대표되는 네트워킹된 컴퓨터들에 의해 상호 운용 가능하거나 협력 가능한 모바일 애플리케이션 피처 또는 소프트웨어 툴에 관한 것이다. 보다 구체적으로, 본 발명에 따른 모바일 애플리케이션 피처 또는 소프트웨어 툴은 사용자들로 하여금 사용자 선택(user-selected) 콘텐츠 또는 사용자 생성(user-generated) 콘텐츠를 실시간으로 공유하고 소비할 수 있게 하는 한편, 시스템 및 관련 방법의 효율성을 극대화하도록 디지털 저장에서 데이터 중복을 줄이고 데이터 전송을 향상시키면서 동시에 미디어 콘텐츠를 공유하고 소비할 수 있게 한다.
본 명세서에서 고려 대상으로 제시된 시스템 및 방법은, PCM 패칭, PCM 저장, 베이스 파일 매칭, PCM 차이 데이터 재생(playback), 멀티 포트 데이터 전달, 360 비디오 전달, 및 비디오 뮤직 동기화와 같은 일반적인 주제를 포함하는 몇 가지 주요 관심 영역을 포함한다. 본 시스템 및 방법의 PCM 패칭 또는 처리 양태는 본 명세서의 핵심이라고 생각되며, 주로 PCM 관련 콘텐츠 저장에 중점을 둔 저장 시스템 내에서 중복되는 PCM 데이터를 줄이도록 작동한다. 본 명세서에 따른 PCM 패칭 또는 처리 애플리케이션은 미가공(raw) PCM 또는 압축 형식(PCM으로 디코딩됨)으로 저장되는 두 개의 유사한 미디어 파일을 필요로 한다. 필요한 경우, 파일의 압축이 해제되고 미가공 PCM 데이터가 출력된다.
그 다음에 PCM 데이터의 출력 샘플이 비교되고, 두 값의 차이가 계산된다. 매우 유사한 PCM 데이터를 갖는 파일에서, PCM 값들의 차이는 비교적 작고 매우 중복된 데이터 비교를 나타낸다. 표준 압축 기법은 이른바 "diff" 파일, 즉 데이터 차이 파일의 크기를 원본 압축 파일 크기의 60-70%로 줄이도록 구현될 수 있다. PCM 값들의 차이는 "diff" 파일에 저장되고, 이 "diff" 파일은 그후 압축기(compression appliance)를 통과한다. "diff" 파일은 이후에 PCM 데이터의 "diff"로부터 제1 비교 파일 또는 제2 비교 파일의 PCM 데이터를 무손실로 재생성(reproduce)하는데 사용될 수 있다.
본 명세서에 따른 PCM 저장 시스템은 베이스 파일(base file)을 "diff" 파일의 PCM 파일인 "diff"에 맵핑시킴으로써 작동한다. "diff" 파일은 베이스 파일과 최초에 업로드된 파일 간의 PCM 데이터의 차이를 저장하는 파일이다. 호환가능한 클라이언트(compatible client)의 요청이 있을 때, 저장 시스템은 베이스 파일과 "diff" 파일 모두에 대한 데이터를 리턴하며, 이 파일은 클라이언트가 원본 파일의 PCM 데이터를 재생성하는데 사용된다.
시스템이 베이스 파일로부터 "diff"를 생성하고 저장하기 전에, 먼저 파일(예컨대, 오디오) 지문(fingerprinting) 또는 파일 식별 메커니즘을 사용하여 이들을 가능한 매치(match)에 맵핑한다. 업로드된 파일에 대해 유사한 지문 또는 파일 식별자를 갖는 모든 베이스 파일이 가능한 베이스 파일 후보이다. 최적의 베이스 파일을 식별하기 위해, 시스템은 (a) 모든 베이스 파일로부터 "diff"를 생성하고, (b) "diff" 크기를 설정된 임계 값과 비교한다. 모든 "diff"가 임계 값을 초과하면 업로드된 파일이 베이스 파일이 된다. 하나 이상의 "diff"가 임계 값보다 낮으면 가장 작은 "diff" 파일이 저장되고 원본 파일은 삭제된다. 본 발명에 따른 PCM "diff" 시스템에서의 오디오 재생은, (a) 베이스 파일을 PCM 데이터로 디코딩하는 단계와, (b) 베이스 파일의 PCM 데이터를 "diff" 파일로부터의 데이터로 패칭하는 단계와, (c) 패칭된 PCM 데이터 파일을 오디오 재생을 위해 전송하는 단계를 포함한다.
본 발명에 따른 시스템 및 방법은 또한 비디오/오디오 데이터 전송을 향상시키기 위해 복수의 TCP 또는 UDP 포트에 의존한다. 1차 또는 주(primary) 포트는 브로드캐스팅 클라이언트가 이용 가능한 가장 낮은 품질을 전송하는 기본 품질 송신 전용이다. 이 시스템 및 방법은 또한, 기본 품질 데이터보다 높은 품질의 추가 데이터(이 데이터는 기본 품질의 "diff"로서 전송됨)가 전송되는 복수의 추가적인 또는 2차 포트를 지정한다. 수신 고객은 2차 포트를 통해 전송된 "diff" 데이터를 제1 또는 기본 데이터 포트를 통해 전송된 베이스 데이터와 결합하여, 기본 품질 이상의 미디어 출력을 재생성한다.
다른 양태에서, 본 발명에 따른 시스템 및 방법은 360 비디오 출력을 생성하는 큐브 맵핑 방법을 포함하거나 구축한다. 본 명세서에 따른 큐브 맵핑 포매팅은 큐빅 뷰포인트의 모든 면에 고유한 프레임을 보낸다. 따라서, 360도 비디오의 경우, 시스템은 이미지당 6개의 고유 프레임 또는 큐브 면을 고려한다. 고유한 이미지 프레임들 또는 면들 각각은 기본 품질 포트 및 전술한 추가 품질을 위한 추가적인 2차 "diff" 포트를 포함하는 TCP 또는 UDP 포트의 전용 세트를 포함하는 고유 한 데이터 스트림을 따라 전송된다. 추가 또는 2차 포트는 기본 품질 데이터와 중간/고 품질 데이터의 "diff"를 전송한다.
수신 클라이언트의 클라이언트 애플리케이션은, 뷰어가 어느 방향을 향하는지 또는 큐브면 중 어느 것이 주 면인지에 따라, 기본 품질 데이터만 사용할지 아니면 고품질 데이터를 사용할지 여부를 결정한다. 이것은, 클라이언트가 큐브의 모든 면을 기본 품질로 끊임없이 스트리밍하여 뷰어가 관점을 변경할 때 프레임이확실하게 로드되도록할 수 있다는 것을 의미한다. 사용자가 현재 볼 수 있는 뷰가 가능한 최고 품질이 되도록 추가 품질 데이터가 선택적으로 추가된다. 선택 데이터 스트림은 오디오 데이터를 포함하도록 지정될 수 있다. 오디오 데이터를 포함하는 비디오 스트림이 바람직하게는 음악을 정렬하기 위해 사용될 수도 있고, 아니면, 오디오 스트림이 병렬의 전용 TCP 또는 UDP 포트 세트에서 개별적으로 전달될 수도 있다.
본 발명의 특정한 특징, 구성요소, 및 이점뿐만 아니라 본 발명의 다른 목적들은 본 명세서를 뒷받침하기 위해 제공된 도면에 대한 아래의 간단한 설명으로부터 명료해지거나 명백해질 것이다.
도 1a는 제1 데이터 파일이 제2 데이터 파일과 비교하여 크기 및 형태가 상이함을 나타내는 나란한 제1 및 제2 데이터 파일을 나타내는 개략도이다.
도 1b는 유사하거나 또는 고도로 중복된 크기 및 형태의 부분을 각각 갖는 제1 데이터 파일 및 제2 데이터 파일을 나타내는 나란한 제1 및 제2 데이터 파일이 데이터 파일 저장 메커니즘에 배치되어 있는 것을 나타내는 개략도이다.
도 2a는 (a) 제2 데이터 파일과 비교하여 크기 및 형태가 상이한 제1 데이터 파일의 특징, 및 (b) 제2 데이터 파일과 비교하여 크기와 모양이 유사하거나 중복되는 제1 데이터 파일의 특징을 결정하기 위해 비교되는 나란한 제1 및 제2 데이터 파일을 나타내는 개략도이다.
도 2b는 제1 및 제2 데이터 파일 사이의 데이터(크기 및 형상) 차이를 보여주는 개략도이다.
도 2c는, 데이터 파일 저장 메커니즘에 배치되어 있는, 하나의 사각형으로 표현된 유사한 크기 및 형태의 데이터 파일 요소와 삼각형으로 표현된 제1 및 제2 데이터 파일 간의 데이터 차이를 나타내고, 도 1b와 비교하여 상대적으로 데이터 중복의 감소를 나타낸다는 것을 제외하면 도 1b에 도시된 것과 같은, 개략도이다.
도 3은 본 발명에 따른 펄스 코드 변조 또는 PCM 패칭 시스템 및 프로세스를 도시한 흐름도이다.
도 4는 본 발명에 따른 데이터 저장 시스템 및 프로세스를 도시한 흐름도이다.
도 4a는 본 발명에 따른 제1 대안적인 데이터 검색/리턴 시스템 및 프로세스를 도시한 흐름도이다.
도 4b는 본 발명에 따른 제2 대안적인 데이터 검색/리턴 시스템 및 프로세스를 도시한 흐름도이다.
도 5는 본 발명에 따른 베이스 파일 맵핑 시스템 및 프로세스를 도시한 흐름도이다.
도 6은 본 발명에 따른 PCM 데이터 차이 재생 시스템 및 프로세스를 도시한 흐름도이다.
도 7은 본 발명의 시스템 및 프로세스에 따른 멀티 포트 데이터 전송 장치가 각각 구비된 송신 클라이언트 및 수신 클라이언트를 나타내는 흐름도이다.
도 8은 본 발명의 시스템 및 프로세스에 따라 멀티 포트 데이터 전송 구성을 구비하며, 선택적으로 (a) 기본 품질 포트를 통해 전송된 기본 품질 프레임 데이터를 (i) 제1 2차 포트를 통해 전송된 중간 품질의 프레임 데이터 또는 (ii) 제2 2차 포트를 통해 전송된 고품질 프레임 데이터와 병합하고, (b) (1) 재생을 위해 중간 품질 프레임 또는 (2) 재생을 위해 고품질 프레임을 출력하는 수신 클라이언트를 도시한 흐름도이다.
도 9는, 검은 점으로 표시된 관점(viewpoint)과 이 관점에 대해 90도 간격으로 배치된 객체를 보여주는 개략적인 투시도이다.
도 10은 굵은 선으로 강조된 내부 큐브의 제1 면을 갖는 내부 큐브를 보여주기 위해 확대된 관점 및 대응하는 구 표면 영역을 나타내는 투시도이다.
도 11은 장면 내 각 객체와 마주보는 일련의 큐브 면을 갖는 내부 큐브가 원래의 관점에 중첩되어 있는, 도 9에 도시된 장면의 투시도를 도시한 것이다.
도 12는 원래의 관점에서 본 도 9 및 도 11에 도시된 장면의 개략적인 네트 도면이다.
도 13은 송신 클라이언트 및 수신 클라이언트 사이에서 큐브 맵핑 데이터가 전송되는 것을 도시하는 흐름도로서, 큐브 맵핑 데이터는 큐브 맵핑 프로토콜의 각 큐브면에 대한 데이터를 포함하며, 각 큐브면에 대한 데이터는 기본 품질 포트와 기본 품질 포트보다 높은 적어도 하나의 2차 품질 포트를 포함하는 멀티 포트 구성을 통해 전송되고, 선택 큐브면은 다른 큐브 면 묘사에 비해 크기가 상대적으로 확대되어 제1의 대안적인 조합의 비디오-오디오 전송 채널을 나타내고, 점선 사각형은 제2의 대안적인 별개의 오디오 전송 채널을 나타낸다.
이제 보다 구체적으로 도면을 참조하면, 본 발명은 기본적으로 펄스 코드 변조(Pulse Code Modulation) 또는 PCM 패칭 또는 처리 시스템 및 방법을 제공한다. PCM 패칭은 기본적으로, PCM 관련 콘텐츠 저장에 중점을 두고 디지털 저장 시스템 내에서 중복되는 PCM 데이터를 줄이기 위한 관련 알고리즘에 의해 지원되는 컴퓨터로 구현된 애플리케이션 기반 시스템이다. 일반적인 PCM 저장부는 이러한 설명을 뒷받침하기 위해 제공된 여러 도면에서 참조번호 20으로 도시되고 참조된다.
도 1a 및 1b를 비교 참조하면, 제1 PCM 데이터 파일이 16으로 단순화되어 도시되어 있고, 제2 PCM 데이터 파일이 17로 단순화되어 도시되어 있으며, PCM 데이터 저장 시스템(20)이 단순화되어 도시되어 있음을 알 수 있을 것이다. 제1 및 제2 PCM 데이터 파일(16 및 17)이 화살표(18)와 같이 저장 시스템(20)에 배치되면, 제1 및 제2 PCM 데이터 파일(16 및 17)이 2개의 PCM 데이터 파일(16 및 17)의 19 및 19'의 정사각형 부분으로 도시된 상당한 양의 중첩 데이터를 포함한다는 것을 알 수 있을 것이다. 따라서, 정사각형 부분 또는 요소(19')는 정사각형 부분 또는 요소(19)의 관점에서 중복으로 보일 수 있다.
도 2a 내지 2c를 비교 참조하면, 다시 제1 PCM 데이터 파일(16)이 단순화되어 도시되어 있고, 제2 PCM 데이터 파일(17)이 단순화되어 도시되어 있으며, PCM 데이터 저장 시스템(20)이 단순화되어 도시되어 있음을 알 수 있을 것이다. 본 발명의 데이터 패칭/처리 특징의 핵심 수칙에 따르면, 제1 PCM 데이터 파일(16)과 제2 PCM 데이터 파일(17)이 PCM 데이터 비교 프로세스(103)에서 비교되는 것이 바람직하며, 이 프로세스(103) 동안에 중복 부분(정사각형 부분(19')으로 표시된 부분)이 판정되어 PCM 데이터 차이(15)가 출력된다. 따라서, 기본적인 PCM 데이터 부분(정사각형 부분(19)으로 표시된 부분) 및 PCM 데이터 차이(15)가 화살표(18)에서와 같이 데이터 저장 시스템(20)에 배치될 수 있다. 또한, 도 1b와 도 2c를 비교해 보면, 도 1b에 비해 도 2c에서 데이터 중복이 감소했음을 알 수 있을 것이며, 이 중복 감소는 화살표(21)로 표시되어 있다.
따라서, 본 발명에 따른 PCM 패칭 시스템 및 방법은 비교를 위해 적어도 제1 및 제2 미디어(오디오) 파일을 필요로 하거나 또는 이들과 조합하여 동작할 수 있다. 제1 및 제2 미디어 파일은 미가공 PCM 데이터로서 또는 압축된 형태로(PCM 데이터로 디코딩됨) 저장되는 것이 바람직하다. 도 3에서, 제1 오디오 파일을 반영하는 제1 미가공 PCM 데이터 파일은 11로 도시되고 참조되며, 제2 오디오 파일을 반영하는 제2 미가공 PCM 데이터 파일은 12로 도시되고 참조된다. 도 3을 더 참조하면, 제1 오디오 파일을 반영하는 제1 압축된 PCM 데이터 파일은 13으로 도시되고 참조되며, 제2 오디오 파일을 반영하는 제2 압축된 PCM 데이터 파일은 14로 도시되고 참조됨을 알 수 있을 것이다.
따라서, 본 발명에 따른 PCM 패칭 시스템 및 방법은, 압축된 제1 및 제2 PCM 데이터(오디오) 파일(13 및 14)을 입력받아(101) 프로세스(100)에서 압축해제하기 위한 비일시적 컴퓨터 실행 가능한 압축 해제 애플리케이션 또는 압축 해제기(decompression appliance)를 포함하는 것이 바람직할 수 있다. 도 3에 도시된 흐름도의 시작 부분에 도시된 바와 같이, 압축된 제1 및 제2 PCM 데이터(오디오) 파일(13 및 14)은 프로세스(100)에서 참조된 압축 해제기를 통해 압축 해제되어, 제1 및 제2 미가공 PCM 데이터 파일(11 및 12)로서 출력될 수 있다(102).
그 다음에, 압축해제된 출력 PCM 샘플 또는 데이터 파일(11, 12)은 본 발명의 실시에서 핵심으로 믿어지는 비일시적인 컴퓨터 구현가능한 PCM 데이터 비교 애플리케이션을 통해 샘플 비교 프로세스(103)에서 비교된다. 비일시적인 컴퓨터로 구현가능한 PCM 데이터 비교 애플리케이션은 (a) 제1 및 제2 미디어 또는 오디오 파일과 제각기 연관된 입력된(104) 제1 및 제2 PCM 데이터 파일을 비교하고, (b) 입력된 제1 및 제2 PCM 데이터 파일(11, 12) 사이의 PCM 데이터 차이(15)를 계산하며, (c) 계산된 제1 및 제2 PCM 데이터 파일(12, 13) 사이의 PCM 데이터 차이(15)를 데이터 차이 파일로서 출력한다(105).
그 다음에, 본 발명에 따른 비일시적인 컴퓨터로 구현가능한 PCM 데이터 압축 애플리케이션은 (a) 출력된 계산된 데이터 차이(15) 또는 데이터 차이 파일을 압축하고 (b) 출력되어 압축된 계산된 데이터 차이(15) 또는 데이터 차이 파일을 데이터 저장부(20)에 저장하며, 이 프로세스(들)는 프로세스 박스(106)에 표시되어 있다. 매우 유사한 PCM 데이터를 갖는 데이터 파일에서, 예컨대, 256kbs 및 224kbs로 압축된 동일한 오디오 트랙에 대해 파일 비교가 수행될 경우, PCM 값들 사이의 차이는 작고 높은 중복성을 나타낼 것이다. 중복성이 높은 경우, 데이터 차이(15) 또는 데이터 차이 파일의 크기를 원본 압축 파일 크기의 60% 내지 70%로 줄이기 위해 표준 압축 알고리즘이 적용될 수 있다. 데이터 차이(15)는 프로세스(106)에서 압축 알고리즘을 통과한 데이터 차이 파일로서 저장되는 것이 바람직하다.
이어서, 데이터 차이 파일 또는 "diff" 파일(15)은 제1 또는 제2의 이전에 비교된 미디어(오디오) 파일의 PCM 데이터를 무손실로 재생성하는데 사용될 수 있다. 따라서, 본 발명에 따른 PCM 패칭 시스템 방법은 출력되어 압축된 계산된 데이터 차이(15), 또는 데이터 차이 파일을 통해 제1 및 제2 PCM 데이터 파일(11, 12)로 이루어진 그룹으로부터 선택된 선택 PCM 데이터 파일을 무손실로 재생성하도록 동작가능한 비일시적 컴퓨터 규현가능한 PCM 데이터 복원 애플리케이션을 더 포함하는 것이 바람직할 수 있다.
이와 관련하여, PCM 데이터 복원 애플리케이션은 복원 프로세스(108)를 통해서, (a) (i) 압축된 제2 (오디오) 파일 데이터(22) 및 (ii) 출력되어 압축된 계산된 데이터 차이(15) 또는 데이터 차이 파일의 입력(107)을 통해 제1 PCM 데이터 파일(11)을, 그리고 (b) (i) 압축된 제1 (오디오) 파일 데이터(23) 및 (ii) 출력되어 압축된 계산된 데이터 차이(15) 또는 데이터 차이 파일의 입력(107)을 통해 제2 PCM 데이터 파일(12)을 무손실로 재생성하거나 또는 출력(109)하도록 동작가능하다. 본 발명에 따른 PCM 패칭 시스템 및 방법은 통상적으로 원본 압축 파일의 60% 내지 70% 크기 감소를 가능하게 하는 한편, 원본 파일의 PCM 데이터를 무손실로 재생성하는 능력을 제공한다.
본 발명에 따른 저장 시스템 또는 메커니즘(20)은 바람직하게는 베이스 파일 데이터(24)를 데이터 차이 파일 데이터(15)에 맵핑한다. 데이터 차이 파일(15)은 베이스 파일(24)과 처음에 업로드된 미디어(오디오) 파일 간의 PCM 데이터의 차이를 저장한다. 도 4를 참조하면, 처음에 업로드된 파일은 "파일 2"로 지칭될 수 있다. 호환가능한 클라이언트(25)가 요청할 경우(111), 저장 시스템(20)은 일반적인 프로세서(112)에서 (a) 베이스 파일 데이터(24) 및 (b) "파일 2 diff" 데이터(15) 모두를 리턴한다. 그런 다음, 클라이언트(25)는 데이터 수집을 사용하여 원본 파일의 PCM 데이터를 재생성한다. 검색 또는 리턴 프로세스(112)는 도 4a 및 4b에서 112A 및 112B로 각각 표시된 예시적인 메커니즘을 포함하는 다수의 상이한 메커니즘을 통해 동작할 수 있다.
본 발명에 따른 제1의 예시적인 검색 메커니즘 또는 프로세스(112A)는 모든 "diff" 파일들 또는 데이터 차이 파일들(15)을, 프로세스(122)에서 클라이언트(25)로 점차적으로(incrementally) 전달할 수 있는 보다 작은 "diff" 파일 조각(45)으로 조각화(fragmentation)하고, 클라이언트에서 PCM 데이터를 재생성하기 전에 점차적으로(incrementally) 패칭한다. 도 4a를 참조하면, 프로세스 검색/리턴 메커니즘(112A)은, PCM "diff" 파일 조각(45) 및 PCM 베이스 파일 조각(26)이 비일시적인 컴퓨터로 구현가능한 애플리케이션을 구비한 클라이언트(25)에게 전달되어(122), 프로세스(123)에서 PCM "diff" 파일 및 베이스 파일 조각(45, 46)을 병합함을 나타내고 있음을 알 수 있을 것이다.
본 발명에 따른 제2의 예시적인 검색/리턴 메커니즘(112B)은 PCM 베이스 데이터(47) 및 PCM "diff" 데이터(48)를 단일 이진 스트림(49)에 리턴하며, 여기서 도 4b에서와 같이, 입력되는(124) "diff" 데이터(48)를 일관되게 그리고 교호적인 간격으로 PCM 베이스 파일 데이터(47)와 혼합 또는 병합(세그먼트 병합 데이터 체인(50)에서)한다. 예를 들어, 이진 스트림의 처음 100kb는 PCM 베이스 파일(47)의 제1 세그먼트(47(1))를 나타내고, 후속하는 100kb는 PCM "diff" 파일(48)의 제1 세그먼트(48(1))를 나타낸다. 따라서, 시스템은 매 100kb마다 PCM 베이스 및 "diff" 데이터 세그먼트(47/48)를 번갈아 전달하고, 클라이언트(25)에게 전달가능한 세그먼트 병합된 PCM 데이터 체인(50)을 포함하는 병합된 PCM "diff" 및 베이스 데이터 스트림(51)으로서 출력하며(125), 여기서 PCM "diff" 및 베이스 데이터(47, 48)는 프로세스(127)에서 추출될 수 있고 프로세스(128)에서 재병합될 수 있다. 단일 이진 데이터 스트림에서 데이터를 전달하는 다른 방법들도 가능하다.
따라서, 본 발명에 따른 PCM 패칭 또는 처리 시스템 및 방법은 서버 기반의 데이터 파일 저장소(20)로부터 선택 데이터 파일을 요청하는 클라이언트(25)를 통해 개시된 선택 PCM 데이터 파일의 무손실 복원을 제공한다. 베이스 데이터 파일(24) 및 대응하는 출력되어 압축된 계산된 데이터 차이 파일(15)이 서버 기반의 데이터 파일 저장소(20)로부터 클라이언트(25)에게 리턴된다(112). 요청된 선택 데이터 파일의 PCM 데이터는 일반적으로 프로세스(108)로 표시된 컴퓨터로 구현되는 비일시적 데이터 복원 애플리케이션을 통해 클라이언트(25)에서 재생성된다. 압축된 계산된 데이터 차이 파일 데이터(15)가 조각화되고 점차적으로 클라이언트(25)로 전달되어 PCM 데이터의 재생성 동안에 파일 표현 PCM 데이터를 점차적으로 패칭하게 할 수도 있고, 또는 PCM 데이터가 단일 이진 스트림에 리턴되어 베이스 파일 데이터 및 출력되어 압축된 계산된 데이터 차이 파일 데이터가 세그먼트 병합 데이터 체인(50)에서 일관되게 교호적인 간격으로 혼합되고 전달되게 할 수도 있다.
도 5를 참조하면, 시스템 및/또는 방법이 데이터 차이 파일 또는 "diff"(15)를 생성하고 저장하기 전에, 시스템 또는 방법이 먼저 프로세스(113)에서 미디어 또는 오디오 파일 지문(식별) 메커니즘/애플리케이션을 통해 데이터 차이 파일 또는 "diff"(15)를 가능한 매치에 맵핑하는 것을 고려해 볼 수 있을 것이다. 업로드된 파일에 대한 유사한 지문 또는 파일 식별 특징을 갖는 모든 베이스 파일이 가능한 베이스 파일 후보이다. 최적의 베이스 파일을 식별하기 위해, 시스템 및 방법은 모든 베이스 파일로부터 "diff"를 생성하고, 쿼리 프로세스(115)에서 각각의 "diff" 크기를 설정된 임계 값과 비교한다. 모든 "diff"가 임계 값을 초과하면, 경로 프로세스(116)에서 업로드된 파일(27)이 베이스 파일이 된다. 하나 이상의 "diff"가 임계 값보다 작은 것으로 판정되면, 가장 작은 값의 "diff" 파일이 저장되고, 경로 프로세스(117)에서 원본 파일이 삭제된다.
도 6을 참고하면, 본 발명에 따른 "diff" 시스템 및 방법에 대한 미디어 또는 오디오 재생은 (a) 디코딩 프로세스(118)를 통해 베이스 파일(28)을 PCM 데이터(29)로 디코딩하는 단계와, (b) 패칭 프로세스(119)를 통해 베이스 파일의 PCM 데이터(29)를 "diff" 파일(15)로부터의 데이터로 패칭하여 패칭된 PCM 데이터 출력(30)(즉, 원본 파일 PCM)을 형성하는 단계와, (c) 재생 프로세스(120)에서 패칭된 PCM 데이터 출력(30) 또는 원본 파일 PCM을 미디어/오디오 재생을 위해 전송하는 단계를 필요로 한다는 것을 알 수 있을 것이다. 따라서, 본 시스템 및 방법에 따른 파일 재생(120)은, 베이스 파일을 베이스 파일 PCM으로 디코딩하고, 베이스 파일 PCM을 계산된 PCM 데이터 차이 파일 데이터로 패칭하여 원본 PCM 파일을 형성하며, 패칭된 베이스 파일 PCM을 원본 PCM 파일로서 재생하기 위해 송신하는 것에 의해 달성된다.
많은 실시간 프로토콜은 보안 실시간 전송 프로토콜(Secure Real-time Transport Protocol: SRTP)에 의존하며, 품질 조정은 일반적으로 일관된 품질을 보장하기 위해 송신 장치로 다시 호출하여 이루어짐에 유의하라. 그러나, 이 방법은 (i) 가장 느린 클라이언트가 종종 모든 클라이언트에게 전송되는 품질을 결정하거나 지시할 것이고, (ii) 송신 장치가, 제시간에 데이터를 수신하고 처리하도록 수신 클라이언트의 능력에 기초하여 품질을 조정할 것이기 때문에, 전반적인 품질 전송이 낮아지게 하는 경향이 있다.
이러한 단점을 해결하기 위해, 본 발명에 따른 시스템 및 방법은 도 7에 도시된 바와 같이 비디오/오디오 데이터 전송을 위한 복수의 TCP 또는 UDP 포트에 의존한다. 도 7을 참조하면, 수신 클라이언트 및 송신 클라이언트는 각각 31 및 32로 도시되어있는 것을 알 수 있다. 본 시스템 및 방법에 따른 각각의 수신 클라이언트(31) 및 송신 클라이언트(32)는 33의 기본 또는 1차 TCP 또는 UDP 포트 구성 및 34 및/또는 35의 기본보다 적어도 1 높거나 또는 2차 TCP 또는 UDP 포트 구성을 포함하는 복수의 TCP 또는 UDP 포트 구성을 갖추고 있거나 또는 이들로 구성된다.
1차 또는 기본 TCP 또는 UDP 포트(33)는 기본 품질 전송 전용이며, 이를 통해 브로드캐스팅 클라이언트(32)는 이용가능한 가장 낮은 품질의 데이터 전송을 송신하고, 수신 클라이언트(31)는 이용가능한 가장 낮은 품질의 데이터 전송을 수신한다. 이 시스템은 또한, 추가의(기본보다 높거나 더 나은) 데이터가 전송될 수 있는 34 및/또는 35의 적어도 하나, 바람직하게는 복수의 추가적인 또는 2차 TCP 또는 UDP 포트를 지정한다. 따라서, 추가적인 TCP 또는 UDP 포트 메커니즘은 기본 TCP 또는 UDP 포트(33)와 조합하여, 베이스 데이터 전송의 품질을 향상시키는데 사용된다. TCP 또는 UDP 포트(34 및/또는 35)를 통한 데이터 전송은 바람직하게는 기본 품질 데이터(38)의 "diff" 데이터(36 또는 37)로서 송신되는데, 이는 도 8에 추가로 표시되어 있다.
도 8을 참조하면, 수신 클라이언트(31)는, 2차 TCP 또는 UDP 포트(34 또는 35)를 통한 중간 품질의 "diff" 데이터(36) 또는 고품질의 "diff" 데이터(37)의 "diff" 데이터를 1차 또는 기본 TCP 또는 UDP 포트(33)의 베이스 데이터(38)와 조합하여, 120에서 오디오/비디오를 재생하기 위해 39 또는 40에서 기본 품질보다 더 높은 품질의 미디어를 생성함을 알 수 있을 것이다. 36 또는 37에서의 "diff" 데이터는 바람직하게는 타임 스탬프 방법을 통해 혹은 오디오 또는 비디오의 이진 해시(binary hash) 방법(예컨대, CRC-64 또는 MD5)을 통해 동기화된다. 이진 해시는 "diff" 데이터(36 또는 37)에 기인하며 베이스 데이터(38)로부터 생성된다. 이런 유형의 시스템은, 세션을 유지하기 위해 베이스 파일 데이터(38)만 요구되기 때문에, 송신 클라이언트(32)가 가능하다면 보다 높은 품질의 데이터를 송신할 수 있게 한다. 또한, 시스템은 수신 클라이언트가 보다 높은 품질의 브로드캐스트를 수신할 수 있으면 수신 클라이언트(31)가 가능하다면 2차 포트(34 및/또는 35)에서 이를 리스닝하고 수신할 수 있게 한다.
따라서, 본 발명에 따른 시스템 및 방법을 통해, 파일 데이터는 적어도 2개의 TCP 또는 UDP 포트를 통해 송신 클라이언트(32)와 수신 클라이어트(31) 사이에서 전송되며, 이들 적어도 2개의 TCP 또는 UDP 포트 중 기본 TCP 또는 UDP 포트(33)는 기본 품질 전송에 전용이고, 적어도 2개의 TCP 또는 UDP 포트 중 적어도 하나의 2차 TCP 또는 UDP 포트는 데이터 차이 파일 데이터 전송에 전용임을 알 수 있을 것이다. 기본 품질 및 데이터 차이 파일 데이터 전송은 기본 품질 출력보다 더 높은 품질 출력을 생성하기 위해 수신 클라이언트(31)에서 동기화된다. 기본 품질 및 데이터 차이 파일 데이터 전송은 바람직하게는 타임스탬핑 메커니즘 또는 이진 해시 메커니즘을 통해 수신 클라이언트(31)에서 동기화될 수 있으며, 이진 해시 메커니즘은 기본 품질 데이터로부터 생성된 데이터 차이 파일 데이터에 기인한다.
다음은, 본 시스템 및 방법에 의해 전술한 멀티 포트 데이터 전송 포트로부터 비롯되는 특징으로서 더 고려되는, 전술한 점차적이고 적응적인 품질 메커니즘이 어떻게 고품질의 실시간 360 비디오 전송에서 지연을 낮추는데 이용될 수 있는지를 설명한다. 360도 비디오 재생은 여러 이미지 스티칭(image-stitching) 방법을 통해 발생할 수 있으며, 본 시스템 및 방법은 바람직하게는 360 비디오들을 생성하기 위한 큐브 맵핑(cube-mapping) 방법을 이용하는 것을 고려한다는 점에 유의하라. 본 발명에 따른 큐브 맵핑 포맷은 40에서 큐브 관점(cubic viewpoint)의 모든 큐브 면(41)에 대한 고유한 프레임을 송신하고, 따라서, 360 비디오의 경우, 본 시스템 및 방법은 큐브 면 또는 프레임(41)에서 360도 이미지마다 6개의 고유의 프레임을 고려한다.
이런 종류의 이미지들은 통상적으로 단일 데이터 스트림으로 송신되고, 본 발명에 따른 시스템 및 방법은, 기본 또는 1차 TCP 또는 UDP 포트(33) 및 34 또는 35에서의 2차 또는 베이스-플러스 TCP 또는 UDP 포트를 포함하는 TCP 또는 UDP 포트의 전용 멀티 포트 세트를 포함하는 고유의 데이터 스트림을 따라 큐브(40)의 각 면 또는 프레임(41)을 송신한다. 도 9 및 10을 참조하면, 관점(130)을 고려할 수 있을 것이다. 도 10을 참조하면, 강조된 큐브 면(41)은 큐브 관점(cubic viewpoint)(40)의 단일 뷰를 나타낸다. 큐브 면(41)과 연관된 각각의 단일 뷰는, 기본 품질 또는 1차 TCP 또는 UDP 포트(33) 및 전술한 추가 품질을 위한 34 또는 35에서의 추가적인 2차 TCP 또는 UDP 포트를 포함하는 TCP 또는 UDP 포트의 전용 멀티 포트 세트를 갖는다.
34 및/또는 35에서의 추가의 2차 TCP 또는 UDP 포트는 바람직하게는 중간/고 품질 데이터에 대응하는 기본 품질 데이터(38)의 "diff" 데이터(36 또는 37)를 전송한다. 수신 클라이언트(31)에서의 비일시적인 컴퓨터로 구현가능한 클라이언트 애플리케이션은 기본 품질 데이터만 이용할지 또는 뷰어가 어느 방향을 향하는지 또는 어느 큐브 면(41)이 플레이 중인지에 기초하여 보다 높은 품질의 데이터를 추가할지 여부를 결정한다. 이것은 뷰어가 관점을 바꿈에 따라 프레임들이 로드되도록 보장하기 위해, 수신 클라이언트(31)가 큐브(40)의 모든 면들 또는 프레임들(41)을 지속적으로 스트리밍할 수 있다는 것을 의미한다. 현재 사용자가 볼 수 있는 뷰가 최고의 품질이 되도록 보장하기 위해 추가적인 품질 데이터가 추가될 수 있다. 이 방법은, 큐브(40)의 모든 6개의 면 또는 프레임(41)과 반대로 선택된 몇 개의 큐브면 또는 프레임(41)에 대한 고품질 데이터만 전달되면 되므로, 고 품질 뷰를 더욱 향상시킨다.
360 비디오의 모든 데이터가 본 발명의 시스템 및 방법에 따라 상이한 포트에서 전송되기 때문에, 선택 데이터 스트림은 바람직하게는 오디오 데이터 전송을 더 포함하도록 전용될 수 있어, 선택 면 또는 프레임(41) 및 오디오 스트림이 결합되어, 도 13에서 상대적으로 큰 정사각형(41')으로 도시된 TCP 또는 UDP 기본 포트 및 2차 포트 세트를 통해 전송된다. 오디오 데이터를 포함하는 스트림은 본 명세서에 참고로 포함된 미국 특허출원 제15/407,192호(192 출원)의 명세서에서 보다 상세히 논의된 방법을 이용하여 바람직하게 동기화 및/또는 재생성된 음악을 정렬하는데 사용된다. 오디오 데이터 전송의 또 다른 방법은 오디오 데이터 패킷(42)을 도 13의 43에서와 같이 별도의 전용 TCP 또는 UDP 멀티 포트 세트 상에서 전달하는 것이다. 어느 방법이든 192 출원에 기술된 방법과 협업하여 작동할 수 있다.
따라서, 본 발명에 따른 PCM 패칭 또는 처리 시스템 및 방법은 큐브 맵핑 메커니즘을 통해 비디오 데이터를 전송하도록 동작가능한 것으로 기술될 수 있는데, 이 큐브 맵핑 메커니즘은 360도 맵 형상 또는 파노라마를 컴파일하기 위해 큐브 관점의 6개의 큐브 면을 이용한다. 각각의 큐브 면과 연관된 비디오 데이터는 바람직하게는 송신 및 수신 클라이언트 사이에서 기본 TCP 또는 UDP 포트 및 적어도 하나의 2차 TCP 또는 UDP 포트를 통해 전송된다. 오디오 데이터는 선택적으로 그리고 동시에 비디오 데이터와 함께 전송될 수 있으며, 큐브 면 또는 프레임(41')에서의 선택 큐브 면 비디오 전송에 첨부되거나 또는 전용의 기본 포트 및 43에서의 2차 TCP 또는 UDP 멀티 포트 세트를 통해 비디오 데이터와 병렬로 전송될 수 있다.
전술한 설명은 많은 구체적인 사항을 포함하고 있지만, 이러한 구체적인 사항은 본 발명에 대한 한정으로 해석되어서는 안 되고, 오히려 본 발명의 일례로 해석되어야 한다. 예를 들어, 본 발명은 기본적으로 먼저 데이터 저장에서 중복 데이터를 감소시키기 위한 컴퓨팅 환경 내에서 동작가능한 데이터 처리 시스템 및/또는 방법을 제공하기 위한 것이라고 할 수 있다. 본 발명의 이 측면에서의 체계적인 특징은, 서버 기반의 데이터 저장소, 제1 비일시적인 컴퓨터로 구현가능한 데이터 비교 애플리케이션 및 제2 비일시적인 컴퓨터로 구현가능한 데이터 압축 애플리케이션에 중점을 두고 있다고 할 수 있다.
비일시적인 컴퓨터로 구현가능한 데이터 비교 애플리케이션은 (a) 제1 및 제2 오디오 파일과 제각기 연관된 입력된 제1 및 제2 데이터 파일을 비교하고, (b) 입력된 제1 및 제2 데이터 파일 사이의 데이터 차이를 계산하며, (c) 제1 및 제2 데이터 파일 사이의 계산된 데이터 차이를 데이터 차이 파일로서 출력하도록 동작가능하다. 비일시적인 컴퓨터 구현가능한 데이터 압축 애플리케이션은 (a) 데이터 차이 파일을 압축하고, (b) 데이터 저장소에 데이터 차이 파일을 저장하여 데이터 저장소 내에서 데이터 중복을 줄이도록 동작가능하다.
제3 비일시적인 컴퓨터로 구현가능한 데이터 복원 애플리케이션은 데이터 차이 파일을 통해 제1 및 제2 데이터 파일로 이루어진 그룹으로부터 선택 데이터 파일을 무손실로 재생성하도록 동작가능하다. 보다 구체적으로, 데이터 복원 애플리케이션은 (a) (i) 압축된 제2 오디오 파일 데이터 및 (ii) 데이터 차이 파일의 입력을 통해 제1 데이터 파일을, 그리고 (b) (i) 압축된 제1 오디오 파일 데이터 및 (ii) 데이터 차이 파일의 입력을 통해 제2 데이터 파일을 무손실로 재생성하도록 동작가능하다. 선택 데이터 파일의 무손실 복원은 요청 클라이언트를 통해 서버 기반 데이터 저장소에 선택 데이터 파일을 요청함으로써 개시되고, 그 후 베이스 데이터 파일 및 데이터 차이 파일이 함께 서버 기반 데이터 저장소로부터 요청 클라이언트로 리턴된다.
데이터 차이 파일은, 재생성되는 동안에 선택 데이터 파일을 점차적으로 패칭하도록, 요청 클라이언트에게 조각화/전달되거나, 또는 단일 이진 스트림으로 리턴될 수 있다. 후자의 경우, 이진 데이터 파일 및 출력되어 압축된 계산된 데이터 차이 파일이 혼합되고 일관되고 교호적인 간격으로 전달된다. 파일 재생은 베이스 파일을 베이스 파일 데이터로 디코딩하고, 베이스 파일 데이터를 데이터 차이 파일로 패칭하여 패칭된 베이스 파일을 형성하며, 패칭된 베이스 파일을 원본 파일로서 재생하기 위해 송신함으로써 달성된다.
파일 데이터는 바람직하게는 적어도 2개의 데이터 전송 포트를 통해 송신 클라이언트 및 수신 클라이언트 사이에서 전송될 수 있으며, 적어도 2개의 데이터 전송 포트의 기본 포트는 기본 품질 전송 전용이고, 적어도 2개의 데이터 전송 포트 의 적어도 하나의 2차 포트는 데이터 차이 파일 전송 전용이다. 기본 품질 및 데이터 차이 파일 전송은 기본 품질 파일 및 수신 클라이언트에서의 "diff" 파일 동기화 툴을 통해 기본 품질보다 높은 품질 출력을 생성하기 위해 수신 클라이언트에서 동기화되는 것이 바람직하다.
방법론적으로 봤을 때, 본 발명은 데이터 저장소 내에서 중복 데이터를 줄이기 위한 데이터 처리 또는 패칭 방법을 제공한다. 패칭 방법은 기본적으로, 제1 및 제2 오디오 파일을 컴퓨터로 구현된 비일시적 데이터 비교 애플리케이션과 제각기 연관된 제1 및 제 2 데이터 파일을 입력하는 단계와, 입력된 제1 및 제2 데이터 파일을 컴퓨터로 구현된 비일시적 데이터 비교 애플리케이션을 통해 비교하는 단계와, 비교된 제1 및 제2 데이터 파일 사이의 데이터 차이를 컴퓨터로 구현된 비일시적 데이터 비교 애플리케이션을 통해 비교하는 단계와, 계산된 데이터 차이를 컴퓨터로 구현된 비일시적 데이터 비교 애플리케이션을 통해 데이터 차이 파일로서 데이터 저장부에 출력하는 단계를 포함한다고 할 수 있다.
데이터 차이 파일은 바람직하게는 컴퓨터로 구현된 비일시적 데이터 압축 애플리케이션을 통해 압축되고 저장될 수 있고, 제1 및 제2 데이터 파일로 이루어진 그룹으로부터의 선택 데이터 파일은 컴퓨터로 구현된 비일시적 데이터 복원 애플리케이션을 통해 무손실로 복원될 수 있으며, 선택 데이터 파일은 압축된 데이터 차이 파일을 통해 무손실로 복원된다. 제1 및 제2 데이터 파일로 이루어진 그룹으로부터의 선택 데이터 파일을 컴퓨터로 구현된 비일시적 데이터 복원 애플리케이션을 통해 무손실로 복원하는 단계는, 요청 클라이언트를 통해 서버 기반의 데이터 파일 저장소에 선택 데이터 파일을 요청하는 단계와, 베이스 데이터 파일과 압축된 데이터 차이 파일을 서버 기반 데이터 파일 저장소로부터 요청 클라이언트로 리턴하는 단계를 포함한다고 할 수 있다.
요청된 선택 데이터 파일 중 어떤 데이터는 컴퓨터로 구현된 비일시적 데이터 복원 애플리케이션을 통해 요청 클라이언트에서 재생성될 수 있다. 압축된 데이터 차이 파일은 조각화되어 재생성되는 동안 선택 데이터 파일을 점차적으로 패칭하도록 요청 클라이언트로 전달될 수도 있고, 또는 단일 이진 스트림에 리턴되어 베이스 데이터 파일 및 압축된 데이터 차이 파일이 혼합되어 일관되고 교호적인 간격으로 전달될 수도 있다.
데이터 처리 방법은 바람직하게는, 선택 데이터 파일을 비일시적인 컴퓨터로 구현가능한 파일 식별(예컨대 지문) 생성 애플리케이션에 업로드하는 단계, 업로드된 선택 데이터 파일을 간단히 식별하는 파일 식별자(예컨대, 지문)를 생성하는 단계, 및 모든 베이스 파일을 업로드된 선택 데이터 파일과 비교하는 단계를 포함하는 일련의 예비 단계를 포함할 수 있다. 따라서, 각 베이스 파일에 대한 데이터 차이 파일 값을 생성하고, 데이터 차이 파일 값을 설정된 임계 값과 비교함으로써, 최적의 베이스 파일이 식별될 수 있다. 이들 데이터 차이 파일 값이 임계 값을 초과하면 대응하는 업로드된 파일이 베이스 파일을 나타내고, 이들 데이터 차이 파일 값이 임계 값보다 작으면 대응하는 가장 낮은 데이터 차이 파일 값을 제외하고는 삭제되며, 가장 낮은 데이터 차이 파일 값은 대응하는 베이스 파일에 저장되고 맵핑된다.
파일 재생은 바람직하게는, 베이스 파일을 베이스 파일 데이터로 디코딩하는 단계, 베이스 파일 데이터를 데이터 차이 파일로 배치하여 패칭된 베이스 파일을 형성하는 단계, 및 패칭된 베이스 파일을 원본 파일로서 재생하기 위해 송신하는 단계를 포함하는 일련의 재생 단계를 포함한다고 할 수 있다. 송신 클라이언트와 수신 클라이언트 사이에서 전송된 파일 데이터는 바람직하게는 적어도 2개의 데이터 전송 포트를 통해 전송된다. 적어도 2개의 데이터 전송 포트의 기본 포트는 기본 품질 전송에 전용이고, 적어도 2개의 데이터 전송 포트의 적어도 하나의 2차 포트는 데이터 차이 파일 전송에 전용이다. 기본 품질 및 데이터 차이 파일 전송은 베이스 폼질보다 더 높은 품질의 출력을 생성하기 위해 동기화 툴을 통해 수신 클라이언트에서 동기화된다.
본 발명의 다른 특징에서, 전체 맵 형상을 컴파일하기 위한 각각의 큐브 면 또는 프레임의 전송을 위해, 바람직하게는 큐브 맵핑 방법을 통해 전송된 비디오 데이터가 기본 데이터 전송 포트 및 적어도 하나의 2차 데이터 전송 포트를 포함하는 본 명세서에 기술된 멀티 포트 구성을 통해 전송된다. 비디오 데이터는 바람직하게는 개별 큐브 면이 맵 형상을 컴파일하도록 동작하도록 큐브 맵핑 메커니즘 또는 애플리케이션을 통해 전송될 수 있다. 각 개별 큐브 면과 연관된 비디오 데이터는 기본 포트와 적어도 하나의 2차 포트를 통해 전송된다. 오디오 데이터는 선택적으로 그리고 동시에 비디오 데이터와 함께 전송될 수 있으며, 일차적으로 선택 큐브 면 비디오 전송에 첨부되거나 또는 이차적으로 전용의 기본 포트 및 2차 멀티 포트 세트를 통해 비디오 데이터와 병렬로 전송될 수 있다.
따라서, 다수의 예시적인 시스템 및 방법을 참조하여 본 시스템 및 방법을 설명하였지만, 데이터 처리 및 전송 시스템 및 방법을 이들로 제한하고자 하는 것은 아니며, 그 변형도 전술한 개시, 첨부한 청구범위 및 이들 명세서를 뒷받침하기 위해 제출된 도해적이고 예시적인 도면의 넓은 범위 및 사상 내에 포함하고자 한다.

Claims (22)

  1. 컴퓨팅 환경에서 데이터 저장소 내의 데이터 중복을 줄이도록 동작가능한 데이터 처리 시스템으로서,
    데이터 저장소 및 비일시적인 컴퓨터로 구현가능한(non-transitory, computer-implementable) 데이터 비교 애플리케이션을 포함하고,
    상기 비일시적인 컴퓨터로 구현가능한 데이터 비교 애플리케이션은
    가능한 베이스 파일 후보들의 그룹을 결정하기 위해 파일 식별 메커니즘을 통해 입력 데이터 파일을 일련의 저장된 베이스 파일들과 비교 - 상기 가능한 베이스 파일 후보들의 그룹은 상기 입력 데이터 파일과 상기 일련의 저장된 베이스 파일들 내의 각각의 베이스 파일 사이의 파일 식별자 유사성에 의해 결정됨 - 하고,
    상기 입력 데이터 파일과 상기 일련의 저장된 베이스 파일들 내의 각각의 베이스 파일 사이의 데이터 차이 크기를 계산함으로써 상기 베이스 파일 후보들의 그룹으로부터 최적의 베이스 파일 후보를 식별하며,
    모든 데이터 차이 크기가 임계값을 초과하는지 여부를 질의(query)하고, 모든 데이터 차이 크기가 상기 임계값을 초과하면, 상기 입력 데이터 파일이 상기 데이터 저장소에 새로운 베이스 파일로서 저장되고, 하나 이상의 데이터 차이 크기가 상기 임계값 미만이면, 상기 임계값 미만의 상기 데이터 차이 크기는 최소값인 데이터 차이 크기를 결정하기 위해 추가로 비교되며, 상기 최소값인 데이터 차이 크기는 상기 데이터 저장소 내 데이터 중복을 감소시키기 위해 상기 데이터 저장소 내의 원본 파일 대신에 저장되는
    데이터 처리 시스템.
  2. 제1항에 있어서,
    비일시적인 컴퓨터로 구현가능한 데이터 복원 애플리케이션을 포함하되,
    상기 비일시적인 컴퓨터로 구현가능한 데이터 복원 애플리케이션은 선택 데이터 차이 파일을 통해 상기 입력 데이터 파일과 상기 일련의 저장된 베이스 파일들로 이루어진 그룹으로부터 선택 데이터 파일을 무손실로 재생성하도록 동작가능한
    데이터 처리 시스템.
  3. 제2항에 있어서,
    상기 비일시적인 컴퓨터로 구현가능한 데이터 복원 애플리케이션은 (a) 입력된 (i) 압축된 파일 데이터와 (ii) 상기 선택 데이터 차이 파일을 통해 상기 입력 데이터 파일을 무손실로 재생성하고, (b) 입력된 (i) 압축된 입력 데이터 파일 데이터와 (ii) 상기 선택 데이터 차이 파일을 통해 제2 데이터 파일을 무손실로 재생성하도록 동작가능한
    데이터 처리 시스템.
  4. 제2항에 있어서,
    상기 선택 데이터 파일의 무손실 복원은, 요청 클라이언트를 통해, 상기 선택 데이터 파일을 상기 데이터 저장소에 요청함으로써 개시되고, 베이스 데이터 파일 및 상기 선택 데이터 차이 파일이 모두 상기 데이터 저장소로부터 상기 요청 클라이언트로 리턴되며, 상기 요청된 선택 데이터 파일의 복원 데이터는 상기 비일시적인 컴퓨터로 구현가능한 데이터 복원 애플리케이션을 통해 상기 요청 클라이언트에서 재생성되는
    데이터 처리 시스템.
  5. 제4항에 있어서,
    상기 선택 데이터 차이 파일은 조각화되고, 재생성되는 동안 상기 선택 데이터 파일의 조각들을 점차적으로(incrementally) 패칭하도록 상기 요청 클라이언트로 상기 조각들이 점차적으로(incrementally) 전달되는
    데이터 처리 시스템.
  6. 제4항에 있어서,
    상기 복원 데이터는 단일 이진 스트림으로 리턴되고, 상기 베이스 데이터 파일 및 상기 선택 데이터 차이 파일은 혼합되어 일관되고 교호적인 간격으로 전달되는
    데이터 처리 시스템.
  7. 제4항에 있어서,
    선택 베이스 파일을 베이스 파일 데이터로 디코딩하고, 상기 베이스 파일 데이터를 상기 선택 데이터 차이 파일로 패칭하여 패칭된 베이스 파일을 형성하며, 상기 패칭된 베이스 파일을 상기 원본 파일로서 재생하기 위해 송신함으로써 파일 재생이 수행되는
    데이터 처리 시스템.
  8. 제4항에 있어서,
    적어도 2개의 데이터 전송 포트를 통해 송신 클라이언트와 수신 클라이언트 사이에서 파일 데이터가 전송되며, 상기 적어도 2개의 데이터 전송 포트 중 기본 포트는 기본 품질 전송 전용이고, 상기 적어도 2개의 데이터 전송 포트 중 적어도 하나의 2차 포트는 데이터 차이 파일 전송 전용이며, 상기 기본 품질 및 데이터 차이 파일 전송은 기본 품질보다 더 높은 품질 출력을 생성하기 위해 상기 수신 클라이언트에서 동기화되는
    데이터 처리 시스템.
  9. 데이터 저장소 내의 데이터 중복을 줄이기 위한 데이터 처리 시스템에 의해 수행되는 데이터 처리 방법으로서,
    제1 데이터 파일을 컴퓨터로 구현된 비일시적 데이터 비교 애플리케이션에 입력하는 단계와,
    가능한 베이스 파일 후보들의 그룹을 결정하기 위해 파일 식별 메커니즘을 통하여 상기 컴퓨터로 구현된 비일시적 데이터 비교 애플리케이션을 통해 상기 입력된 제1 데이터 파일을 일련의 저장된 베이스 파일들과 비교하는 단계 - 상기 가능한 베이스 파일 후보들의 그룹은 상기 입력된 제1 데이터 파일과 상기 일련의 저장된 베이스 파일들 내의 각각의 베이스 파일 사이의 파일 식별자 유사성에 의해 결정됨 - 와,
    상기 베이스 파일 후보들의 그룹으로부터 최적의 베이스 파일 후보를 식별하기 위해 상기 컴퓨터로 구현된 비일시적 데이터 비교 애플리케이션을 통해 상기 비교된 제1 데이터 파일과 상기 일련의 저장된 베이스 파일들 내의 각각의 베이스 파일 사이의 데이터 차이 크기를 계산하는 단계와,
    모든 데이터 차이 크기가 임계값을 초과하는지 여부를 질의하는 단계를 포함하되, 모든 데이터 차이 크기가 상기 임계값을 초과하면, 상기 입력된 제1 데이터 파일이 상기 데이터 저장소에 새로운 베이스 파일로서 저장되고, 하나 이상의 데이터 차이 크기가 상기 임계값 미만인 경우, 상기 임계값 미만의 상기 데이터 차이 크기는 최소값인 데이터 차이 크기를 결정하기 위해 추가로 비교되며, 상기 최소값인 데이터 차이 크기는 상기 데이터 저장소 내 데이터 중복을 감소시키기 위해 데이터 차이 파일로서 상기 데이터 저장소 내의 원본 파일 대신에 저장되는
    데이터 처리 방법.
  10. 제9항에 있어서,
    컴퓨터로 구현된 비일시적 데이터 압축 애플리케이션을 통해 상기 데이터 차이 파일을 압축하는 단계와,
    상기 컴퓨터로 구현된 비일시적 데이터 압축 애플리케이션을 통해 상기 압축된 데이터 차이 파일을 저장하는 단계를 포함하는
    데이터 처리 방법.
  11. 제10항에 있어서,
    컴퓨터로 구현된 비일시적 데이터 복원 애플리케이션을 통해, 상기 입력된 제1 데이터 파일과 상기 일련의 저장된 베이스 파일들로 이루어진 상기 그룹으로부터 선택 데이터 파일을 무손실로 복원하는 단계를 포함하되, 상기 선택 데이터 파일은 상기 압축된 데이터 차이 파일을 통해 무손실로 복원되는
    데이터 처리 방법.
  12. 제11항에 있어서,
    상기 선택 데이터 파일을 무손실로 복원하는 단계는
    요청 클라이언트를 통해, 데이터 파일 저장소에 상기 선택 데이터 파일을 요청하는 단계와,
    상기 데이터 파일 저장소로부터 상기 요청 클라이언트로, 베이스 데이터 파일 및 상기 압축된 데이터 차이 파일을 리턴하는 단계와,
    상기 컴퓨터로 구현된 비일시적 데이터 복원 애플리케이션을 통해, 상기 요청 클라이언트에서 상기 요청된 선택 데이터 파일의 복원 데이터를 재생성하는 단계를 포함하는
    데이터 처리 방법.
  13. 제12항에 있어서,
    상기 압축된 데이터 차이 파일은 조각화되고, 재생성되는 동안 상기 선택 데이터 파일의 조각들을 점차적으로(incrementally) 패칭하도록 상기 요청 클라이언트로 상기 조각들이 점차적으로(incrementally) 전달되는
    데이터 처리 방법.
  14. 제12항에 있어서,
    상기 복원 데이터는 단일 이진 스트림으로 리턴되고, 상기 베이스 데이터 파일 및 상기 압축된 데이터 차이 파일은 혼합되어 일관되고 교호적인 간격으로 전달되는
    데이터 처리 방법.
  15. 제9항에 있어서,
    일련의 예비 단계를 포함하되, 상기 일련의 예비 단계는
    선택 데이터 파일을 비일시적인 컴퓨터로 구현가능한 파일 식별자 생성 애플리케이션에 업로드하는 단계와,
    상기 비일시적인 컴퓨터로 구현가능한 파일 식별자 생성 애플리케이션을 통해, 상기 업로드된 선택 데이터 파일을 간단히 식별하는 파일 식별자를 생성하는 단계와,
    상기 가능한 베이스 파일 후보들을 결정하기 위해 상기 일련의 저장된 베이스 파일들에 상기 파일 식별자를 맵핑하는 단계를 포함하는
    데이터 처리 방법.
  16. 제15항에 있어서,
    상기 최적의 베이스 파일을 식별하는 단계는
    데이터 차이 파일 값들을 상기 임계값과 비교하는 단계 - 상기 임계값을 초과하는 상기 데이터 차이 파일 값들은 대응하는 업로드된 파일들을 베이스 파일로서 나타내고, 상기 임계값보다 작은 상기 데이터 차이 파일 값들은 최소값인 상기 데이터 차이 크기를 제외하고는 삭제되며, 상기 최소값인 데이터 차이 크기는 저장되고 대응하는 베이스 파일에 맵핑되는
    데이터 처리 방법.
  17. 제9항에 있어서,
    파일 재생 프로세스를 포함하며, 상기 파일 재생 프로세스는 일련의 재생 단계를 포함하고, 상기 일련의 재생 단계는
    선택 베이스 파일을 베이스 파일 데이터로 디코딩하는 단계와,
    상기 베이스 파일 데이터를 상기 데이터 차이 파일로 패칭하여 패칭된 베이스 파일을 형성하는 단계와,
    상기 패칭된 베이스 파일을 원본 파일 데이터로서 재생하기 위해 송신하는 단계를 포함하는
    데이터 처리 방법.
  18. 제12항에 있어서,
    적어도 2개의 데이터 전송 포트를 통해 송신 클라이언트와 수신 클라이언트 사이에서 파일 데이터가 전송되며, 상기 적어도 2개의 데이터 전송 포트 중 기본 포트는 기본 품질 전송 전용이고, 상기 적어도 2개의 데이터 전송 포트 중 적어도 하나의 2차 포트는 데이터 차이 파일 전송 전용이며, 상기 기본 품질 및 데이터 차이 파일 전송은 기본 품질보다 더 높은 품질 출력을 생성하기 위해 상기 수신 클라이언트에서 동기화되는
    데이터 처리 방법.
  19. 데이터 전송 품질을 향상시키기 위한 데이터 전송 시스템으로서,
    컴퓨터 기반 네트워크 환경 내의 송신 클라이언트 및 수신 클라이언트를 포함하되,
    상기 송신 클라이언트 및 수신 클라이언트 각각은 비일시적인 컴퓨터로 구현가능한 데이터 전송 애플리케이션 및 적어도 2개의 데이터 전송 포트를 포함하고, 상기 적어도 2개의 데이터 전송 포트 중 기본 포트는 기본 품질 전송 전용이고, 상기 적어도 2개의 데이터 전송 포트 중 적어도 하나의 2차 포트는 데이터 차이 파일 전송 전용이며, 상기 데이터 차이 파일 전송은 비교된 데이터 차이 크기로부터 도출되고, 상기 데이터 차이 크기 모두가 수립된 임계값을 초과하는 것은 전송을 위한 새로운 베이스 파일 지정을 나타내며, 상기 수립된 임계값 미만으로 결정된 데이터 차이 크기는 최소값인 데이터 차이 크기를 제공하고, 상기 최소값인 데이터 차이 크기는 전송을 위해 원본 파일 대신에 저장되며, 상기 기본 품질 및 데이터 차이 파일 전송은 기본 품질보다 더 높은 품질 출력을 생성하기 위해 상기 비일시적인 컴퓨터로 구현가능한 데이터 전송 애플리케이션을 통해 상기 수신 클라이언트에서 동기화되는
    데이터 전송 시스템.
  20. 제19항에 있어서,
    큐브 맵핑 메커니즘을 통해 비디오 데이터가 전송되고, 상기 큐브 맵핑 메커니즘은 큐브의 6개의 큐브 면을 이용하여 맵 형상을 컴파일하고, 각 큐브 면과 연관된 비디오 데이터는 상기 기본 포트 및 적어도 하나의 2차 포트를 통해 전송되는
    데이터 전송 시스템.
  21. 제20항에 있어서,
    오디오 데이터가 선택적으로 그리고 동시에 상기 비디오 데이터와 함께 전송되고, 상기 오디오 데이터는 선택 큐브 면 비디오 전송에 첨부되는
    데이터 전송 시스템.
  22. 제20항에 있어서,
    오디오 데이터가 선택적으로 그리고 동시에 상기 비디오 데이터와 함께 전송되고, 상기 오디오 데이터는 전용의 기본 및 2차의 멀티 포트 세트를 통해 상기 비디오 데이터와 병렬로 전송되는
    데이터 전송 시스템.
KR1020187033780A 2016-04-22 2017-04-21 네트워크 환경에서 데이터 처리를 향상시키는 시스템 및 방법 KR102411973B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662326428P 2016-04-22 2016-04-22
US62/326,428 2016-04-22
US15/407,192 2017-01-16
US15/407,192 US10198777B2 (en) 2013-12-06 2017-01-16 System, method, and application for exchanging content in a social network environment
PCT/US2017/028908 WO2017185014A1 (en) 2016-04-22 2017-04-21 System and method for enhancing data handling in a network environment

Publications (2)

Publication Number Publication Date
KR20180137540A KR20180137540A (ko) 2018-12-27
KR102411973B1 true KR102411973B1 (ko) 2022-06-22

Family

ID=60116502

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187033780A KR102411973B1 (ko) 2016-04-22 2017-04-21 네트워크 환경에서 데이터 처리를 향상시키는 시스템 및 방법

Country Status (4)

Country Link
EP (1) EP3446219B1 (ko)
KR (1) KR102411973B1 (ko)
CA (1) CA3021351A1 (ko)
WO (1) WO2017185014A1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120304233A1 (en) 2011-05-27 2012-11-29 Verizon Patent And Licensing, Inc. Systems and methods for bridging and managing media content associated with separate media content networks
US20140044191A1 (en) 2012-08-13 2014-02-13 Gurulogic Microsystems Oy Decoder and method

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2341249A (en) * 1998-08-17 2000-03-08 Connected Place Limited A method of generating a difference file defining differences between an updated file and a base file
US20020188745A1 (en) 2001-06-11 2002-12-12 Hughes David A. Stacked stream for providing content to multiple types of client devices
US20030216958A1 (en) * 2002-05-15 2003-11-20 Linwood Register System for and method of doing business to provide network-based in-store media broadcasting
US7640363B2 (en) * 2005-02-16 2009-12-29 Microsoft Corporation Applications for remote differential compression
US9124650B2 (en) * 2006-12-13 2015-09-01 Quickplay Media Inc. Digital rights management in a mobile environment
US20080184128A1 (en) * 2007-01-25 2008-07-31 Swenson Erik R Mobile device user interface for remote interaction
US8074241B2 (en) * 2007-03-30 2011-12-06 The Board Of Trustees Of The Leland Stanford Jr. University Process for displaying and navigating panoramic video, and method and user interface for streaming panoramic video and images between a server and browser-based client application
US9699232B2 (en) * 2007-08-24 2017-07-04 Iheartmedia Management Services, Inc. Adding perishable content to media stream based on user location preference
US9477667B2 (en) * 2010-01-14 2016-10-25 Mobdub, Llc Crowdsourced multi-media data relationships
US8656020B1 (en) * 2010-01-21 2014-02-18 Google Inc. Delta compression of files in web applications
US8589171B2 (en) 2011-03-17 2013-11-19 Remote Media, Llc System and method for custom marking a media file for file matching
US9270718B2 (en) * 2011-11-25 2016-02-23 Harry E Emerson, III Internet streaming and the presentation of dynamic content
US9026505B1 (en) * 2011-12-16 2015-05-05 Emc Corporation Storing differences between precompressed and recompressed data files
US9549024B2 (en) * 2012-12-07 2017-01-17 Remote Media, Llc Routing and synchronization system, method, and manager
US8769031B1 (en) * 2013-04-15 2014-07-01 Upfront Media Group, Inc. System and method for implementing a subscription-based social media platform
KR102177246B1 (ko) * 2014-04-23 2020-11-10 버티고 미디어 인코포레이티드 합성 리브로드캐스트 및 그룹 스트림을 소셜라이징하기 위한 스마트 라우팅 동기화 시스템 및 방법
US9690540B2 (en) * 2014-09-24 2017-06-27 Sonos, Inc. Social media queue

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120304233A1 (en) 2011-05-27 2012-11-29 Verizon Patent And Licensing, Inc. Systems and methods for bridging and managing media content associated with separate media content networks
US20140044191A1 (en) 2012-08-13 2014-02-13 Gurulogic Microsystems Oy Decoder and method

Also Published As

Publication number Publication date
EP3446219A4 (en) 2020-01-15
CA3021351A1 (en) 2017-10-26
EP3446219A1 (en) 2019-02-27
KR20180137540A (ko) 2018-12-27
WO2017185014A1 (en) 2017-10-26
EP3446219B1 (en) 2022-11-09

Similar Documents

Publication Publication Date Title
US10185625B2 (en) Data storage system and method by shredding and deshredding
KR101896048B1 (ko) 분산된 보안 데이터 저장 및 스트리밍 매체 콘텐트의 전송
US8838968B2 (en) System and method for virtual machine data protection in a public cloud
US20140082376A1 (en) System, Method and Apparatus for Securely Saving/Retrieving Data on a Data Storage
US8868575B2 (en) Method and system for transformation of logical data objects for storage
CN107851112A (zh) 用于从摄像机安全传输信号的系统和方法
US20100034257A1 (en) Transcoding Video Data
CN111698576A (zh) 信息加密方法、解密方法、服务器、客户端及介质
US20200026601A1 (en) Method of Using Common Storage of Parity Data for Unique Copy Recording
KR102411973B1 (ko) 네트워크 환경에서 데이터 처리를 향상시키는 시스템 및 방법
US11232524B2 (en) System for enhancing data transmission in a network environment
CN110557651A (zh) 一种基于大数据分布式存储技术的超高清动态图像展示方法
JP5194936B2 (ja) ファイル変換装置、ファイル変換方法及びプログラム
US20180070048A1 (en) Management of media content on a storage medium
JP2005130204A (ja) 情報別埋め込みコンテンツ生成装置、その方法及びそのプログラム、並びに、識別情報埋め込みコンテンツ生成装置、その方法及びそのプログラム、並びに、コンテンツ利用端末及びコンテンツ配信システム

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