KR20070104920A - Mpeg 비디오 스트림에서 완전한 화상을 구축하는데필요로 되는 프레임들의 동적 결정을 위한 방법 및 장치 - Google Patents

Mpeg 비디오 스트림에서 완전한 화상을 구축하는데필요로 되는 프레임들의 동적 결정을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20070104920A
KR20070104920A KR1020077019370A KR20077019370A KR20070104920A KR 20070104920 A KR20070104920 A KR 20070104920A KR 1020077019370 A KR1020077019370 A KR 1020077019370A KR 20077019370 A KR20077019370 A KR 20077019370A KR 20070104920 A KR20070104920 A KR 20070104920A
Authority
KR
South Korea
Prior art keywords
frame
frames
video stream
gop
stream
Prior art date
Application number
KR1020077019370A
Other languages
English (en)
Other versions
KR101238277B1 (ko
Inventor
테오도르 제이. 고울드
Original Assignee
프리스케일 세미컨덕터, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 프리스케일 세미컨덕터, 인크. filed Critical 프리스케일 세미컨덕터, 인크.
Publication of KR20070104920A publication Critical patent/KR20070104920A/ko
Application granted granted Critical
Publication of KR101238277B1 publication Critical patent/KR101238277B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

MPEG 비디오 스트림(60)에서 완전한 화상을 구축하는데 필요로 되는 프레임들을 동적으로 결정하기 위한 방법은 종속 벡터 모델에 따라서 MPEG 비디오 스트림(80)에서 프레임들의 순서를 디코딩하는 단계(70)를 포함한다. 이 종속 벡터 모델은 여러 유형의 MPEG 스트림들에 대해서 무결절성 동작을 위하여 디코드 순서 비디오 스트림(80)의 함수로서 종속 벡터(102)를 결정하기 위하여 구성된다. 이 방법은 또한 종속 벡터 모델에 따라서 결정된 종속 벡터의 함수로서 양방향 형태로 MPEG 스트림의 프레임 정확한 표시들(frame accurate representations)(131)을 수행하는 단계를 포함한다.
프로세서, 디멀티플렉서, 비디오 디코더, 디지털 비디오 인코더, 디스플레이

Description

MPEG 비디오 스트림에서 완전한 화상을 구축하는데 필요로 되는 프레임들의 동적 결정을 위한 방법 및 장치{METHOD AND APPARATUS FOR DYNAMIC DETERMINATION OF FRAMES REQUIRED TO BUILD A COMPLETE PICTURE IN AN MPEG VIDEO STREAM}
본 발명은 일반적으로 MPEG 비디오 스트림들에 관한 것이며 특히 MPEG 비디오 스트림에서 완전한 화상을 구축하는데 필요로 되는 프레임들의 동적 결정에 관한 것이다.
MPEG는 동화상 전문가 그룹의 약어이며, 즉 국제 표준화 기구의 작업 그룹 이고, 상기 그룹에 의해 개발된 디지털 비디오 압축 표준 및 파일 포맷 군이라고 칭한다. MPEG는 일반적으로 경쟁중인 포맷보다 질 좋은 비디오를 생성시킨다. 게다가 MPEG 파일인 특별한 하드웨어 또는 소프트웨어로써 디코드 될 수 있다.
MPEG 비디오 스트림에서, 비디오 데이터는 시간적 유사성(temporal similarities)을 제거하고 데이터 스트림에서의 압축을 증가시키는 것을 돕도록 다시 정리된다. 이 압축은 스트림의 순방향 플레이를 돕고, 이를 고려하여 설계되었지만, 역방향에서 스트림이 플레이 하고자 할 때 또는 스트림의 랜덤한 위치에서 스트림을 시작하고자 할 때 어려움이 야기된다. 특히, 이 문제는 개인용 비디오 녹 화장치(PVR) 애플리케이션에서 야기된다. PVR 시스템은 스트림을 중단시키고, 천천히 또는 빠르게 진행시키며, MPEG 스트림을 역방향으로 플레이 시킬 수 있어야만 한다. 이 모든 재생 작업에서 정확하게 화상을 구축하는 능력이 필요하며 이처럼 비디오 스트림 내에서 모든 종속성들이 요구된다.
오늘날 대부분의 PVR 해결책은 맹목적인 계산 집중 방식으로 이 문제들을 해결한다. 예를 들면, 공지된 한 가지 해법은 몇 개의 프레임을 역으로 하고 이 스트림을 비디오 디코더로 강제로 넣어, 합리적인 스트림에 부합되도록 하는 것이다.
따라서, 종래의 문제들을 극복하기 위하여 MPEG 비디오 스트림에 완전한 화상을 구축하고 필수적인 프레임의 결정을 위한 향상된 방법을 제공하는 것이 바람직하다.
본 발명의 실시예는 예로써 설명하고 전체 도면에서 동일한 소자에 대해서 동일한 참조 번호가 병기된 첨부 도면에 의해 제한되지 않는다.
도 1은 종래에 알려진 비디오 스트림을 생성하기 위한 채널의 다양한 구성들을 도시하는 블록도.
도 2는 본 발명의 일 실시예에 따른 프레임 프로세서를 포함하는 정보 처리 시스템을 도시하는 블록도.
도 3은 디코드 순서로 압축된 비디오 스트림 및 디스플레이 순서로 관련된 비디오 스트림의 연속적인 비디오 프레임들의 대표도.
도 4는 개별적인 프레임들의 절대적인 종속 및 상대적인 종속을 나타내는 디코더 순서로 압축된 비디오 스트림의 연속적인 비디오 프레임들의 대표도.
도 5는 비디오 스트림 인코더들의 다른 구성 셋팅들에 의해 종속 벡터를 생성하기 위한 다른 조건들의 일 실시예를 도시하는, 디코드 순서로 I-슬라이스 비디오 스트림 실행의 연속적인 비디오 프레임들의 대표도.
도 6은 본 발명의 일 실시예에 따른 종속 벡터 결정 알고리즘의 흐름도.
도 7은 본 발명의 다른 실시예에 따라 비디오 슬라이스들의 확장을 도시하는 도면.
도 8은 디스플레이 순서로 MPEG 비디오 스트림에서 프레임들의 디스플레이의 관련 비용의 그래프를 도시하는 도면.
도 9는 도 8의 그래프로부터 비롯된 디스플레이 순서로 MPEG 비디오 스트림에서 프레임들의 디스플레이의 관련 비용을 나타낸 변경 그래프를 도시하는 도면.
유사하거나 동일한 항목들에 대해서 여러 도면들에서 동일한 참조 기호들이 사용된다. 당업자들은 전체 도면들의 소자들이 간단 및 명료하게 도시되었고 원래 크기대로 도시되지 않았다는 것을 이해할 것이다. 예를 들어, 전체 도면들에서 일부 소자들의 크기들은 본 발명의 실시예들의 이해를 돕기 위하여 다른 소자들에 비해서 확대될 수 있다.
본 발명의 실시예는 비디오 스트림에서 주어진 프레임에 대한 종속성을 결정하기 위한 종속 벡터를 이용한다. 얼마나 종속 벡터가 재생을 간단히 하는데 사용 될 수 있는지를 이해할 수 있지만, 벡터를 결정하는 것이 상당히 어렵다. 본 실시예들은 랜덤 MPEG 스트림으로부터 결정되고 구성될 개별 프레임을 고려한다.
표준 MPEG 비디오 스트림 (IPB 스트림)에 대하여, 종속 벡터는 스트림내 특정 포인트로부터 발생된 최종 I-프레임까지 비디오 스트림을 다시 주의깊게 고려함으로써 결정된다. 스트림내 이 포인트에서, I-프레임 때문에, 모든 라인들은 인트라코딩(intracoded)되고 완전한 화상이 디스플레이될 수 있다. 이 프레임 및 현재 프레임(P 프레임들) 간의 증분적인 변화들(incremental changes)이 또한 필요로 된다.
개방 GOP(화상 그룹)의 경우, 그 결정은 다소 더 어렵다. 개방 GOP가 존재할 때, 주어진 I-프레임 직후에 발생하는 B-프레임들은 두 개의 다시 I-프레임들에 걸쳐서 종속성들을 갖는다. 이는 종속 벡터를 이들 B-프레임들을 위해 다소 길게 만든다. 설명을 간단하게 할 수 있지만, 이 구현 방식은 다소 더 복잡한데, 그 이유는 이 경우는 스트림내 프레임들의 위치와 다른 어떤 것에 의해 식별되지 않기 때문이다. 일단 결정되면, 이 종속 벡터를 생성하는 것이 상당히 쉽게 된다.
마지막 경우는 가장 어렵다. 이는 I-슬라이스 스트림 경우이다. I-슬라이스 스트림에서, 스트림내 완전한 화상을 위한 절대적인 기준은 존재하지 않는다. 이와 같은 완전한 기준은 여러 P-프레임들에 의해 결정된다. 모든 P-프레임들은 개별적인 인트라코딩된 라인들의 배치 및 이들 개별적인 인트라코딩된 라인들이 완전한 프레임들을 구축하도록 어떻게 결합되는지를 결정하기 위하여 검사되어야만 된다. 대부분의 I-슬라이스 MPEG 스트림들이 순서대로 인트라코딩된 P-프레임들을 갖지만 이와 같은 순서는 필요치 않다는 것을 또한 상기하여야만 된다. 따라서, 종속성들을 결정하기 위한 알고리즘은 완전한 프레임이 임의로 이격된 인트라코딩된 라인들로부터 구축될 때를 결정할 수 있어야만 된다. 비디오 스트림이 상술된 모든 포맷들 사이에서 변화될 수 있다는 점에서, 전체 종속 벡터 결정은 통합된 식을 이용하여 행해져야만 된다.
도 1은 채절들(1, 2 내지 N)의 다야한 구성들을 도시한 블록도(10)인데, 여기서 이 구성들은 대응하는 참조 번호들(12, 14, 16) 각각으로 표시된다. 채널의 다양한 구성들은 종래 기술에 공지된 바와 같이 참조 번호들(28, 34, 44)로 표시된 바와 같은 비디오 스트림들을 생성하는데 적응된다. 도시된 바와 같이, 참조 번호 (12)로 표시된 채널(1)은 참조 번호들 (18, 20, 22) 각각으로 표시된 바와 같은 다수의 입력 인코더들(ENC1, ENC2 내지 ENCN)을 포함한다. 입력 인코더들은 출력 상으로(26) 그리고 디코드 순서 비디오 스트림(28)으로 다중화되기 위하여 멀티플렉서(24)에 결합된다. 즉, 인코더들(18, 20, 22)은 비디오 스트림(28)으로서 단일 비디오 프로그램 출력을 제공하도록 사용된다. 따라서, 각 인코더는 상이한 량의 비디오 스트림(28)을 점유하는 비디오를 제공할 수 있다. 예를 들어, 인코더(18)는 메인 프로그램을 제공하기 위하여 사용될 수 있고 인코더(20)는 방송광고시간을 제공하기 위하여 사용될 수 있다. 게다가, 인코더(18)는 대응하는 인코딩된 신호를 제공하기 위한 세팅들의 제 1 그룹을 갖는 반면에, 인코더(20)는 다르게 인코딩된 신호를 제공하기 위하여 인코더(18)의 세팅들의 제 1 그룹과 다른 세팅들의 제 2 그룹을 가질 수 있다.
참조 번호 (14)로 표시된 채널(2)에 대해서, 입력 인코더(ENCX)(30)는 출 력(32)을 갖고 출력(32) 상에 디코드 순서 비디오 스트림(34)을 제공한다. 참조 번호 (16)으로 표시된 채널(N)에 대해서, 채널은 참조 번호들(36, 38) 각각으로 표시된 바와 같은 2개의 입력 인코더들(ENCY, ENCZ)을 포함한다. 입력 인코더들은 출력(42) 상으로 그리고 디코드 순서 비디오 스트림(44)으로 다중화되기 위하여 멀티플렉서(40)에 결합된다. 다시 말해서, 인코더들(36, 38)은 비디오 스트림(44)으로서 단일 비디오 프로그램 출력을 제공하도록 사용된다. 따라서, 채널(16)과 관련하여, 각 인코더(36, 38)는 상이한 양의 비디오 스트림(44)을 점유하는 비디오를 제공할 수 있다. 인코더(36)는 대응하는 인코딩된 신호를 제공하기 위한 세팅들의 제 1 그룹을 갖는 반면에, 인코더(38)는 상이하게 인코딩된 신호를 제공하기 위한 인코더(36)의 세팅들의 제 1 그룹과 다른 세팅들의 제 2 그룹을 가질 수 있다.
인코더들(18, 20, 22, 30, 36, 38) 중 하나 이상의 인코더가 상이한 구성들, 즉 제 2 구성과 다른 제 2 구성 등을 가질 수 있다. 또한, 정보 처리 시스템(information handling system)은 채널 선택에 따라서 채널들 (1, 2 또는 N)(참조 번호들 12, 14, 및 16 각각으로 표시됨)의 비디오 스트림들 중 임의의 스트림을 수신할 수 있다. 또한, 인코더들(18, 20, 22, 30, 36, 38) 중 하나 이상의 인코더들은 예를 들어 비디오 신호 입력을 토대로 실시간을 토대로 자신의 인코더 세팅들을 변화시키도록 구성될 수 있다.
도 2는 본 설명의 일 실시예를 따른 프레임 프로세서(52)를 포함한 정보 처리 시스템(50)의 블록도이다. 정보 처리 시스템(50)은 입력(58)을 통해서 디코더 순서 비디오 스트림을 수신한다. 입력 (58)은 안테나(53)로부터 입력(54)상에 수신되고 프론트 엔드(56)에 의해 처리되는 무선 주파수(RF) 신호로부터 도출될 수 있다. 프론트 엔드(56)는 종래 기술에 공지된 바와 같이 튜너, 복조기, 증폭기(들) 등을 포함할 수 있다. 대안적으로, 입력(58)은 또한 인터넷, 컴퓨터 네트워크 등과 같은 다른 소스들로부터 직접 제공될 수 있다.
프레임 프로세서(52)는 출력(60) 상에 디스플레이 순서로 압축되지 않은 비디오 프레임들을 제공한다. 출력(60)은 디지털 비디오 인코더(62)로 입력된다. 디지털 비디오 인코더(62)는 출력(60)에 응답하고 비디오 신호를 출력(64)상에 제공한다. 비디오 신호는 디스플레이 장치(65)상에 디스플레이하는데 적합하다. 디스플레이 장치(65)는 CRT, LCD, 플라즈마 등과 같은 임의의 적절한 디스플레이를 포함한다.
프레임 프로세서(52)는 호스트 프로세서(66), 디멀티플렉서(68), 비디오 디코더(70), 및 저장 장치(72)를 포함한다. 일 실시예에서, 호스트 프로세서(66)는 본원에 부가 설명될 본 설명의 실시예들을 따른 종속 벡터 결정들을 수행하기 위한 실행가능한 컴퓨터를 포함한다. 대안적으로, 종속 벡터 결정들을 수행하는 것은 또한 다른 프로세서 형 구현 방식들, 하드웨어 구현 방식, 또는 하드웨어 및 소프트웨어 구현 방식들의 조합에서 발생될 수 있다.
일 실시예에서, 호스트 프로세서(66)는 적절한 버스(67)를 통해서 디멀티플렉서(68), 비디오 디코더(70) 및 저장 장치(72)에 결합된다. 디멀티플렉서(68)는 신호선(69)을 통해서 비디오 디코더(70)에 결합된다. 게다가, 디멀티플렉서(68)는 신호선(71)을 통해서 저장 장치(72)에 결합된다. 신호선들(69, 71)은 또한 신호 버스들을 포함할 수 있다. 다른 실시예들이 가능할 수 있다. 예를 들어, 호스트 프로세서, 디멀티플렉서, 비디오 디코더, 및 저장 장치 중 하나 이상 간의 커플링은 상술된 바와 다르게 구성될 수 있다.
일 실시예를 따르면, 동작시에, 비디오 스트림은 디멀티플렉서(68)로 입력(58)상의 신호 내에 포함된다. 입력(58)상의 신호내에서 비디오 스트림의 검출에 응답하여, 디멀티플렉서(68)는 인덱스를 생성한다. 인덱스는 비디오 스트림에서 종속성들을 찾기 위한 한가지 방식을 제공한다. 인덱스가 종속성을 발견하는데 중요하지 않지만, 본 설명의 실시예들을 따른 방법 및 장치를 구현하기 위한 한 가지 방법을 제공한다. 인덱스 및 비디오 스트림은 저장 장치(72)에 저장된다. 비디오 스트림 및 인덱스의 신호 라우팅 및 저장 할당은 호스트 프로세서(66)에 의해 관리된다. 호스트 프로세서(66)의 요청시, 비디오 스트림은 저장 장치로부터 복사되며, 디멀티플렉서(68)로 통과되고 나서 비디오 디코더(70) 상으로 전달될 수 있다. 비디오 디코더(70)는 본원에 부가 설명된 바와 같이 비디오 스트림을 압축해제하고 압축해제된 비디오 스트림을 디스플레이 순서로 재순서화한다. 디스플레이 순서로 압축해제된 비디오 스트림을 재순서화한 다음에, 비디오 디코더(70)는 출력(60) 상에 디스플레이 순서로 비디오 스트림을 제공한다. 출력(60)은 디지털 비디오 인코더(62)로 입력된다.
일반적인 비디오 처리를 위하여, 저장 장치는 필요로 되지 않는다. 즉, 표준 비디오 처리가 행해질 때, 디코드 순서 MPEG 스트림은 입력 또는 인터페이스(58)를 통해서 프론트 엔드(56)에 의해 제공된다. 디멀티플렉서(68)는 호스트 프로세서(66)에 의해 요청되는 비디오 스트림을 발견하고 이를 인터페이스(69)를 통해서 비디오 디코더(70)로 전달한다. 비디오 디코더(70)는 MPEG 디코드 순서 압축된 비디오 스트림을 해석하고 이를 디스플레이 순서로 인터페이스(60)를 통해서 디지털 비디오 인코더(62)로 출력한다.
역순서 비디오 처리를 위하여, 최소 저장 및 축적 레지스터가 필요로 된다. 즉, 역 순서로 압축된 비디오 스트림을 디코딩할 때, 비디오 스트림은 저장 장치(72)로부터 나온다. 압축된 비디오 스트림이 최근에 저장 장치상에 배치되거나 프로그램을 기록함으로써 저장 장치상에 배치되는지 여부는 디코딩하는데 비현실적이다. 호스트 프로세서(66)는 저장 장치(72)로부터 인덱스를 획득한다. 이러한 인덱스는 어느 비디오 프레임들이 비디오 디코더(70)에 의해 디지털 비디오 인코더(62)에 제공될 필요가 있는지를 결정하는데 사용된다. 호스트 프로세서(66)는 인덱스 및 축적 레지스터(73)를 이용하여 압축된 비디오 스트림의 어느 세그먼트들이 본원에 서술된 방법들을 이용하여 적절한 비디오 프레임들을 출력하도록 하는데 필요로 되는지를 결정한다. 압축된 비디오 스트림의 이들 세그먼트들은 디멀티플렉서(68)를 통해서 저장 장치(72)로부터 입수되어 비디오 디코더(70)로 통과된다. 각 블록(72, 68, 70)이 압축된 비디오 스트림을 처리하는 방법에 대한 특정사항들은 호스트 프로세서(66)에 의해 결정되고 인터페이스(67)를 통해서 이들에 통신된다. 출력 프레임들을 결정하는 프로세스들 및 이들을 구축하는데 사용되는 압축된 비디오 스트림의 세그먼트들은 비디오 스트림의 역방향 플레이가 요청되는 동안 계속된 다.
도 3은 디코드 순서로 압축된 비디오 스트림(80)의 연속적인 비디오 프레임들을 도시한 도면이다. 도 3은 또한 비디오 스트림(100)으로 표시된 바와 같이 디스플레이 순서로 비디오 스트림(80)을 도시한다. 압축된 비디오 스트림(80)은 일련의 프레임들을 포함하는데, 이들 중 8개가 예시의 간결성을 위하여 도시된다. 8개의 프레임들은 참조 번호들(82 내지 96)로 표시된다. 게다가, 8개의 도시된 프레임들 전 및 다음에서 발생되는 프레임들은 타원형 "..."으로 표시된다. 특히, 비디오 스트림(80)에서, 프레임(82)은 I-프레임을 포함하며, 프레임(84)은 B-프레임을 포함하며, 프레임(86)은 P-프레임을 포함하며, 프레임(88)은 B-프레임을 포함하며, 프레임(90)은 P-프레임을 포함하며, 프레임(92)은 B-프레임을 포함하며, 프레임(94)은 P-프레임을 포함하며, 프레임(96)은 B-프레임을 포함한다.
MPEG 표준에서, 각 프레임은 3 개의 모드들, 인트라프레임(I), 순방향 예측(P), 및 양방향 예측(B) 중 한 모드로 코딩될 수 있다. I-프레임은 종속성들을 전혀 갖지 않는 완전히 독립적인 프레임으로서 규정된다. I 프레임들에서, 프레임의 매 매크로블록은 내부프레임 모드로 코딩될 수 있는데, 즉, 예측이 전혀 사용되지 않는다. 따라서, I 프레임들은 다른 프레임들과 관계없이 코딩된다. P-프레임들은 선행하는 앵커 프레임(I 또는 P 프레임)을 토대로 한 예측을 따른다. P 프레임들에서, 프레임의 각 매크로블록은 순방향 예측으로 또는 인트라프레임 모드로 코딩될 수 있다. B-프레임들은 선행하는 그리고 후속하는 I 또는 P 프레임들을 토대로 한 예측을 따른다. 각 B-프레임은 장차 프레임으로부터의 데이터를 따르는데, 즉, 장차 프레임은 현재 B-프레임이 디코딩될 수 있기 전에 (디)코딩되어야 한다는 점에 유의하라. 이 때문에, 코딩 순서는 디스플레이 순서로부터 구별된다. B 프레임들에서, 프레임의 각 매크로블록은 순방향, 역방향, 또는 양방향 예측으로 코딩될 수 있다. 하나의 움직임 벡터(MV)는 각 순방향 및 역방향 예측된 매크로블록에 대해서 특정되는 반면에, 2개의 MV들은 각 양방향적으로 예측된 매크로블록에 대해서 특정된다. 따라서, 각 P-프레임은 순방향 움직임 벡터 필드 및 하나의 앵커 프레임을 갖는 반면에, 각 B-프레임은 순방향 및 역방향 움직임 벡터 필드 및 2개의 앵커 프레임들을 갖는다.
따라서, MPEG은 코딩된 비디오 데이터가 코딩 순서로 데이터 스트림에 배치되도록 할 필요가 있다. 게다가, 앵커 프레임은 I-프레임 또는 P-프레임을 포함할 수 있다. 일부 MPEG 스트림들에서 최소 내부적으로 참조된 비디오 프레임들의 세트를 나타내는 논리적 구조를 화상들의 그룹(GOP)라 칭한다. GOP는 그 자신의 I, P, 또는 B 프레임들의 수를 특정하지 않거나 GOP 내의 프레임들의 순서를 특정하지도 않는다. GOP의 구조는 스트림 내 데이터의 순서에 의해 완전히 결정된다. GOP의 크기 및 구조를 제한하는 규칙들이 존재하지 않는 한, 버퍼 제한들은 충족되지 않는다.
도 2 및 도 3을 계속 참조하면, 비디오 디코더(70)는 스트림(80)의 디코드 순서 프레임들을 각 프레임 종속성들의 함수에 따라서 디스플레이 순서 스트림(100)로 재순선화한다. 특히, 디스플레이 순서 비디오 스트림(100)은 일련의 프레임들을 포함하는데, 이들 중 8개가 예시의 간결성을 위하여 도시된다. 8개의 도 시된 프레임들 전 및 다음에서 발생되는 프레임들은 타원형 "..."으로 표시된다. 스트림(100)의 디스플레이 순서로 8개의 프레임들은 (84, 82, 88, 86, 92, 90, 96, 94)를 포함한다. 재순서화는 인코딩의 특성에 의해 결정된 바와 같이 압축된 비디오 스트림을 디코딩하는 함수에 따라서 성취된다. 예를 들어, 프레임(88)은 B-프레임이며, 이에 따르면 I-프레임은 (82)이고 P-프레임은 (86)이다.
도 4는 개별적인 프레임들의 상대 종속성 및 절대 종속성들을 도시한 디코드 순서로 압축된 비디오 스트림(80)의 연속적인 비디오 프레임들을 도시한 도면이다. 상기 본원에서 알 수 있는 바와 같이, 압축된 비디오 스트림(80)은 일련의 프레임들을 포함하는데, 이들 중 8개는 예시의 간결성을 위하여 도시된다. 8개의 프레임들은 참조 번호들(82 내지 96)으로 표시된다. 게다가, 8개의 도시된 프레임들 전 및 다음에 발생하는 프레임들은 타원형 "..."으로 표시된다.
상대 종속성들은 종속 벡터들(102)로 도시된다. 예를 들어, P-프레임(86)은 상대적으로 I-프레임(82)에 좌우된다. B-프레임(92)은 상대적으로 P-프레임(90) 및 P-프레임(86)에 좌우된다. P-프레임(94)은 상대적으로 P-프레임(90)에 좌우되는 등등이다. 다른 한편으로, 절대 종속성들은 종속 벡터들(104)로 도시된다. 예를 들어, P-프레임(86)은 절대적으로 I-프레임(82)에 좌우된다. B-프레임(92)은 P-프레임들(90, 86)을 통해서 I-프레임(82)에 절대적으로 좌우된다. P-프레임(94)은 상대적으로 P-프레임(90)에 좌우되며, 이 P-프레임은 상대적으로 P-프레임(86)에 좌우되며, 이 P-프레임은 상대적으로 I-프레임(82)에 좌우되는데, 이로 인해 절대 종속성은 I-프레임(82)으로 된다. 프레임들(88, 90, 96)은 유사하게 I-프레임에 절대적 으로 좌우된다. 그러나, B-프레임(84)은 도시된 프레임들 밖에선 상대적인 종속성을 가질 뿐만 아니라 절대 종속성을 갖는다는 점에 유의하라. I-프레임(82) 바로 다음 B-프레임(84)을 배치함으로써, 도시된 GOP는 개방 GOP로 간주되는데, 이는 종속성들이 GOP 밖에서 필요로 된다는 것을 의미한다.
절대 종속성은 전체 프레임이 디스플레이될 수 있을 때까지 종속성들의 체인을 따름으로써 매 프레임에 대해서 결정된다. 압축된 비디오 스트림(80)에서, 이는 I-프레임(82), 전체적으로 인트라코딩된 프레임에 의해 성취된다. 예를 들어, P-프레임(90)은 P-프레임(86)에 좌우되며, 그후, 이는 I-프레임(82)에 좌우된다. 이는 P-프레임(90)에 대한 절대 종속성이 I-프레임(82)이 되게 한다.
도 5는 도면의 좌에서 우까지 시간 함수에 따라서 디코드 순서로 I-슬라이스 비디오 스트림 구현 방식의 연속적인 P-프레임들을 도시한 도면이다. 도 5는 비디오 스트림 인코더들의 상이한 구성 세팅들에 의해 초래되는 종속 벡터들을 생성하기 위한 상이한 요건들의 한 예를 도시한 것이다. I-슬라이스 비디오 스트림은 일반적으로 부분적인 I-프레임들의 P-프레임들을 포함하는 비디오 스트림이라 칭하는데, 여기서 부분적인 I-프레임들을 포함하는 소정수의 P-프레임들은 완전한 I-프레임을 생성하는데 필요로 된다. 일반적으로, I-슬라이스 스트림들은 임의의 I-프레임들을 포함하지 않는다. 도 5에 도시된 바와 같이, 프레임들(105, 106, 107, 108, 109)은 부분적인 I-프레임들을 포함하는 P-프레임들을 표시한다. 이 예에서, 부분적인 I-프레임들은 I-프레임의 1/5을 포함한다. 또한 도 5와 관련하여, 도시된 P-프레임들 사이에서 발생하는 참조 번호들(111, 113, 115, 117)로 표시된 바와 같은 비디오 스트림의 섹션들에서, 인트라코딩없이(즉, 임의의 부분적인 I-프레임 없이) (a) B-프레임들 또는 (b) P-프레임들 중 (i) 제로 또는 (ii) 하나 이상 발생될 수 있다. 종속 벡터(119)로 도시된 바와 같이, 종속 벡터(121)로 표시된 바와 같이 P-프레임(109)은 상대적으로 P-프레임(108)에 좌우되고 게다가 절대적으로 P-프레임(105)에 좌우된다.
역방향 플레이를 위하여, 다음을 고려하자. MPEG 데이터 스트림이 제공되면, 역방향 플레이의 목표는 프레임 프로세서의 출력 상에 역방향 순서로 프레임들을 디스플레이하기 위한 것이다. 코딩되지 않은 비디오를 위하여, 이 해법은 간단하게 된다. 역방향 순서로 비디오 프레임들을 전송하라. 이와 같은 해법의 간결성은 2가지 특성들에 좌우된다. 각 비디오 프레임을 위한 데이터는 자체 포함되고 이는 데이터 스트림내에 배치와 무관하다. 그러나, 이와 같은 특성들은 일반적으로 MPEG-코딩된 비디오 데이터에 대해서 참(true)을 유지하지 않는다.
역방향 플레이 디코딩은 어려운데, 그 이유는 MPEG 압축이 프레임 순서의 변화들, 예를 들어 출력 MPEG 비트스트림의 순서를 역으로 함에 따라 변화되지 않기 때문이다. 게다가, 입력 비디오 프레임들의 순서를 역으로 하면 "역방향의" 움직임 벡터 필드를 발생시키지 않는다. 또한 전체 스트림이 손쉽게 압축해제되지 않고 간단히 역방향 순서로 디스플레이될 수 있기 때문에 실질적인 제한들이 존재한다.
도 6은 본 설명의 일 실시예에 따라서 사용되는 종속 벡터 결정 프로세스(110)를 도시한 도면이다. 종속 벡터 결정 프로세스(110)는 단계(112)에서 시작되고 단계(114)로 진행한다. 단계(114)에서, 프로세스는 디스플레이될 원하는 프레 임을 선택한다. 그 후, 단계(115)에서 프로세스는 현재 프레임임 B-프레임인지를 결정함으로써 계속된다. 프레임이 B-프레임인 경우, 프로세스는 단계(116)로 지속되어, 프레임을 평가한다. 한편, 원하는 프레임이 B-프레임인 경우, 단계(117)에서 B-프레임의 상대적인 종속성인 제 1 앵커 프레임이 발견된다. 제 1 앵커 프레임은 앵커 프레임이 원하는 B-프레임으로부터 a) 제로, b) 하나, 또는 다수의 m-프레임에 의해 분리될 수 있을지라도, 디코드 순서에서 B-프레임보다 바로 앞서는 앵커 프레임에 대응한다. 제 1 앵커 프레임을 찾아낸 후에, 프로세스는 단계(119)로 계속된다. 단계(119)에서, 디코더 순서에서 다음 프레임이 발견되고 나서, 단계(116)에서 제공된다.
단계(116)는 선택된 프레임 내에서 제로, 또는 하나 이상의 인트라코딩된 섹션이 발생하는 장소를 토대로 축척 버퍼가 마킹되어야 하는 장소를 결정하는 것을 포함하는 선택된 프레임의 평가를 수행한다. 축적 버퍼가 예를 들어, 축적 레지스터 또는 RAM(73) 또는 저장 장치(72)와 같은 프레임 프로세서(52) 내의 임의의 다른 적절한 메모리를 포함할 수 있다는 점에 주의하라. I-프레임이 선택되고/되거나 수신되는 경우에, 축적 버퍼는 완전히 마킹되는데, 그 이유는 I-프레임의 모든 섹션이 인트라코딩되기 때문이다. 다른 예들에서, 부분적인 I-프레임을 갖는 P-프레임은 I-프레임의 어떤 프랙션을 포함한다. I-프레임이 완전히 인트라코딩된 프레임이라는 것을 상기하라. 이와 같은 경우에, 축적 버퍼는 부분적인 I-프레임을 포함하는 P-프레임의 인트라코딩된 섹션 부분의 함수에 따라서 마킹된다. 1/4 I-프레임 콘텐트를 가진 P-프레임의 경우에, 축적 버퍼의 1/4이 P-프레임의 I-프레임 콘텐트 를 나타내는 대응하는 위치에서 마킹된다. 유사하게, 1/5 I-프레임 콘텐트를 가진 P-프레임의 경우에, 축적 버퍼의 1/5이 P-프레임의 I-프레임 콘텐트를 나타내는 대응하는 위치에서 마킹된다. 비디오 스트림 내의 B-프레임들의 발생에 관하여, 상기 평가는 축적 버퍼의 마킹을 발생시키지 않는데, 그 이유는 B-프레임들이 인트라코딩된 섹션들을 포함하지 않기 때문이다.
종종 비디오 스트림의 프레임들 내의 슬라이스들의 수가 반드시 일관되지는 않는다는 점에 주의하라. 따라서, 상이한 프레임들에서 슬라이스들의 상이한 수를 보상하기 위하여 조정이 필요로 된다. 필요하다면, 이와 같은 조정은 단계(118)에서 수행된다; 그렇지 않으면, 프로세스는 단계(120)로 진행한다. 단계(118)에서, 선택된 프레임 내의 슬라이스들의 실제 수는 필요하다면, 슬라이스들의 상이한 수로 확장될 수 있다. 슬라이스들의 수는 슬라이스들의 고정된 수이거나, 입력된 비디오 스트림을 토대로 결정될 수 있다. 슬라이스들의 수를 슬라이스들의 균일한 수로 확장하는 부가적인 논의는 이하에 더 논의되는 바와 같이, 도 7과 관련하여 제공될 것이다.
도 6을 계속 참조하면, 단계(120)에서, 질의는 축적 버퍼의 상태가 충분한 인트라코딩된 슬라이스들이 축적되어서, 완전한 프레임 또는 픽처를 출력하게 된다는 것을 나타내는지를 결정한다. 충분도(sufficiency)는 특정 프레임 프로세서 구현 방식의 요건에 따라 결정될 수 있다. 즉, 충분도는 비디오 프레임 내의 총 슬라이스들의 소정 퍼센티지와 동일하다. 일 예에서, 충분도는 90 퍼센트(90%) 정도의 총 슬라이스트들의 퍼센티지에 대응한다. 다시, 상술된 바와 같이, 충분도는 특정 프레임 프로세서 구현 방식의 요건에 따라 결정된다.
충분한 인트라코딩된 슬라이스들이 축적되지 않았다고 결정하는 것에 응답하여, 프로세스는 단계(122)로 진행한다. 단계(122)에서, 프로세서는 평가할 비디오 스트림 내의 다음 프레임을 선택한다. 일 실시예에서, 순방향 또는 역방향 순서로 디코드 순서 비디오 스트림을 디스플레이하기 위하여, 다음의 선택된 프레임은 디코더 순서에서 이전 프레임에 대응한다. 그 후, 프로세서는 다음의 선택된 프레임과 함께 단계(116)로 계속되고 나서, 상술된 바와 같이 진행된다.
단계(120)에서 완전한 프레임 또는 픽처가 관측되도록 인트라코딩된 슬라이스들의 충분한 수가 축적된다라고 결정하는 것에 응답하여, 프로세스는 단계(124)로 진행된다. 단계(124)에서, 현재 선택된 프레임은 단계(114)에서 선택된 프레임의 절대적인 종속성인 것으로 결정되고, 프로세스는 단계(126)에서 종료된다.
도 7은 본 명세서의 실시예와 관련된 비디오 슬라이스들의 확장을 도시한 도면이다. 상술된 바와 같이, 종종 비디오 스트림의 프레임들이 비디오 스트림의 각종 프레임들 중에서 슬라이스들의 상이한 수들을 포함할 수 있다는 점에 주의하라. 즉, 슬라이스들의 수는 비디오 스트림의 픽처들 사이에서 균일하다는 것을 보장받지 않는다. 따라서, 상이한 프레임들에서 슬라이스들의 상이한 수를 보상하기 위하여 조정이 필요로 될 수 있다.
현재 평가 및 축적 버퍼 하에서 프레임에서의 슬라이스들의 수가 슬라이스들의 수에서 상이한 경우, 2개의 더 적은 수가 더 큰 수의 크기로 확장되어, 평가 용도들을 위해 슬라이스들의 수를 균일하게 한다. 도 7에 도시된 바와 같이, 더 적은 슬라이스들의 수는 참조 번호(130)로 표시된다. 참조 번호들(132, 134, 136, 및 138)은 축적 버퍼의 슬라이스들 또는 데이터 위치들을 표시한다. 도시된 바와 같이, 표시(130)는 표시(131)로 확장된다.
특히, 표시(130)의 4개의 슬라이스들 또는 데이터 위치들(132, 134, 136, 및 138)은 표시(131)의 7개의 슬라이스 또는 데이터 위치들(140, 142, 144, 146, 148, 150, 및 152)로 확장된다. 슬라이스(132)는 슬라이스(140) 및 슬라이스(142)의 일부로 확장된다. 슬라이스(134)는 슬라이스(142)의 나머지 부분, 슬라이스(144) 및 슬라이스(146)의 일부로 확장된다. 슬라이스(136)는 슬라이스(146)의 나머지 부분, 슬라이스(148) 및 슬라이스(150)의 일부로 확장된다. 최종적으로, 슬라이스(138)는 슬라이스(150)의 나머지 부분 및 슬라이스(152)로 확장된다. 확장은 업샘플링의 형태를 포함한다. 본원에 상술된 바와 같이, 슬라이스들의 균일한 수는 슬라이스들의 고정된 수이거나, 비디오 스트림을 토대로 동적으로 결정될 수 있다.
본 명세서의 실시예들은 유용하게도 MPEG 비디오 스트림의 프레임들이 특히, 역방향 순서로 서로 어떻게 관련되는지를 결정하는 연속적인 방법을 제공한다. 또한, 본 명세서의 실시예는 비디오 스트림에서 완전한 픽처를 구성하는데 필요로 되는 프레임들의 동적 결정을 위해 MPEG 비디오 스트림의 단지 하나의 로컬 카피를 필요로 한다. 따라서, 실시예들은 프레임들이 역방향 순서로 서로 어떻게 관련되는지를 결정하기 위하여 최소 량의 저장 장치만을 필요로 한다. 본 명세서의 실시예들은 또한 비디오 스트림의 순방향 및/또는 역방향 재생 시에 작은 점프들을 제공한다.
도 8은 디스플레이 순서로 MPEG 비디오 스트림에서의 프레임들을 디스플레이하는 상대 비용의 그래프(160)를 도시한다. 일 실시예에서, 상대 비용은 프레임의 시작부로부터 그 프레임에 대한 절대적인 종속성까지의 바이트들의 수를 사용하여 계산되거나 결정된다. Y-축(162)은 상대 비용을 나타내고, 바들(170)은 디코드 순서 스트림(164)의 각 프레임의 상대 비용을 나타낸다. 특히, 스트림(164)으로부터 특정 프레임을 디스플레이하는 비용이 특정 프레임인 I-프레임(82)으로부터 더 증가한다는 점이 주의될 수 있다. 또한, 앵커 프레임들의 비용이 도시된 바와 같이 이들보다 앞서는 B-프레임들보다 예를 들어, B-프레임(86) 및 P-프레임(88)의 비용 사이의 차이만큼 더 적다는 점이 주의될 수 있다. 이에 대한 이유는 이들 중 하나가 P-프레임(86)인 B-프레임(88)의 이중 종속성들 때문이다. 그러므로, B-프레임(88)을 디스플레이하기 위하여, B-프레임(88) 자체에 대한 데이터 이외에, P-프레임(86)에 대한 요건들 모두가 필요로 된다.
도 9는 도 8의 그래프로부터 도출되는 바와 같이, 디스플레이 순서로 MPEG 비디오 스트림에서의 프레임들을 디스플레이하는 상대 비용의 수정된 그래프를 도시한다. 그래프(180)는 그래프(160)를 선택하고, 프레임들 각각에 단순한 차이(즉, 차이 필터)를 적용한 결과이다. 즉, 특정 프레임 값은 그래프(160)에서의 자신의 엔티티의 높이 및 그래프(160)에서의 자신보다 이전의 엔티티의 높이 사이의 차이로 대체된다. 모든 차이들이 표준화된다. 예를 들어, 그래프(160)에서의 프레임(82)의 값은 자신으로부터 감산된 프레임(84)의 값을 가지며, 그 후에 새로운 값을 생성하기 위하여 표준화된다. 상기 새로운 값이 도 9의 그래프(180)에서 프레 임(82)의 값에 사용된다.
도 9를 계속 참조하면, 그래프(180)는 또한 임계값(184)을 포함한다. 임계값(184)은 소정 범위에 걸쳐 하나의 값이 발생하도록 결정된다. 임계값(184)은 입력 스트림, 예를 들어, 입력 비트 스트림(188)의 함수로서 동적으로 결정된다. 임계값(184)의 정보에 의하여, 비디오 스트림 내의 최적의 스플라이스들이 결정될 수 있다. 그래프(180)에 존재하는 하이 값들의 위치들은 스트림 내에 스플라이스 포인트들을 위치시키기 위하여 최적화된 위치들을 식별한다. 디스플레이 스트림 내의 프레임들의 비용을 계산하고, 차이 필터를 적용하고, 임계값을 결정함으로써, 역방향 플레이를 위한 스플라이스 포인트들의 선택 또는 결정이 스트림에 대해 최적화될 수 있다.
스플라이스 포인트들은 비디오 프레임 디코더의 구현 방식에서의 제한들로 인해 역방향에서 압축된 비디오 스트림들을 플레이할 때 필요로 된다. 이와 같은 제한들은 사용되는 비디오 프레임 프로세서의 특성들에 따르므로, 임계값 결정을 변화시킬 것이다. 그러나, 모든 경우들에서, 스플라이스들이 결정되어야 한다. 역방향 순서로 압축된 비디오 스트림들을 플레이하는데 필요로 되는 메모리 공간이 이용 가능한 메모리 공간보다 더 클지라도, 스플라이스(및 이에 따른 대응하는 스플라이스 포인트)는 그 메모리 공간을 최적으로 사용하도록 구성되는 것을 희망할 것이다.
또 다른 실시예에 따르면, 비디오 디코더로 입력되는 스플라이스 세그먼트들은 각각 스플라이스 헤더에서 시작된다. 스플라이스 헤더는 대응하는 세그먼트에서 프레임들의 수를 나타낸다. 그러나, 다수의 GOPs를 스팬하는 스플라이스 세그먼트로부터 문제가 발생할 수 있다. 스플레이스 세그먼트가 하나 이상의 GOP를 스팬하는 경우에, 종속성들의 리스트가 동적으로 성장한다. 따라서, 본 명세서의 방법은 스플라이스 세그먼트가 특정 MPEG 디코더 시스템 구현 방식의 요건들에 따라 선택되는 소정의 크기 파라미터 내에서 종속성들의 리스트를 유지하기 위하여 하나의 GOP로부터 또 다른 GOP로의 경계를 교차하지 않는 것을 필요로 한다.
게다가, 프레임들의 비용을 결정하는 것을 다음을 포함할 수 있다. 예를 들어, 스플라이스 세그먼트 내로의 여분의 프레임들을 부가하는 것은 시스템에 여러 악영향들을 줄 수 있다. 첫째, 프레임들의 수를 증가시키면 비디오 디코더들이 더 많은 프레임들을 디코딩해야 한다. 이와 같은 실시예에서, 이것은 비디오 디코더가 시스템이 디스플레이하고 있지 않은 B-프레임들을 디코딩하지 않기 때문에, 앵커 프레임들에만 적용되지만, 이와 같은 최적화는 본 명세서에 따른 실시예들을 구현하는데 필요로 되지 않는다. 둘째, 여분의 프레임들은 또한 여분의 데이터가 시스템 하드 드라이브로부터 회수되고 나서, 메모리를 통해 라우팅되어야 한다는 것을 의미할 수 있다. 따라서, 일 실시예에서, 프레임의 비용은 전송 패킷 카운트와 관련되며, 여기서 상기 전송 패킷 카운트는 소정의 픽처가 적절하게 디스플레이될 필요가 있는 전송 패킷의 수에 대응한다. 전송 패킷 카운트는 하드 드라이브 대역폭이 많은 PVR 동작들에 대한 그레이팅 팩터(grating factor)이고 본 실시예의 인덱스에서 마킹의 방법을 사용하여 계산하는 것이 용이하기 때문에 사용된다.
더구나, GOP 크기를 계산하는 것을 다음을 포함할 수 있다. 예를 들어, 프레 임들의 그룹이 단일 I-프레임에 종속될 때, GOP의 개별적인 프레임들에 대한 비용은 대응하는 개별적인 프레임들의 I-프레임 부근으로 기울어진다. 그러나, 다음 GOP가 발생할 때, 프레임들의 비용은 극적으로 증가한다. 이 비용 특성을 사용하면, GOP의 크기가 발견될 수 있다. 일 실시예에서, 개별적인 프레임들의 비용들의 어레이가 생성된다. 어레이의 크기는 중요하지 않지만, 검출되고 있는 GOP보다 더 커야 한다. 그러나, GOP 크기는 어레이가 더 작은 경우들에서 검출될 수 있지만, 어레이 크기가 GOP보다 더 크지 않다면, GOP 크기의 검출은 보장될 수 없다. 더구나, GOP 크기 검출이 1X 속도들에 대해 중요하지 않지만(즉, GOP의 엔드가 성취되기 전, 스플라이스 헤더가 다 소모될 것이다), 더 높은 속도들에서, 전체 GOP의 검출은 더 중요하다. 따라서, 이 결과의 비용 어레이는 도 8에 도시된 것과 유사하게 나타날 것이며, 여기서 비용 값은 어레이를 통해 저속으로 증가한다. 또한, 도 8의 비용 그래프의 처음 부근에서, 비용이 극적으로 강하되는 포인트가 존재한다는 것을 알 수 있다. 비용의 큰 강하는 GOP의 에지를 나타낸다.
또한, 에지 검출을 돕기 위하여, 호스트 프로세서는 에지 검출 필터를 사용함으로써 비용의 상당한 변화를 찾아내도록 구성된다. 프로세싱의 엔드에서, 비용 어레이는 임계 량 위에서 발생하는 적어도 하나의 비용을 가지는 임계 량 아래에서 발생하는 비용들의 어레이로 이루어진다. 임계 량 위에서 발생하는 비용은 GOP의 에지에 대응한다.
본 명세서의 실시예들은 프레임의 정확한 역방향 및 다양한 속도들이 필요로 되는 임의의 PVR 시스템에서 사용될 수 있다. 모든 MPEG 비디오 디코더들은 이들이 셀룰러 전화와 같이 더 작은 캐시된 환경의 종래의 셋-톱 박스 환경에서 발생하든지 또는 다른 최종-사용자 애플리케이션에서 발생하든지 간에, PVR 유형 애플리케이션에서 사용되는 것이 필요로 될 것이다.
상기의 설명에서, 본 명세서는 각종 실시예들과 관련하여 설명되었다. 그러나, 당업자들은 이하의 청구항들에서 설명된 바와 같은 본 실시예들의 범위로부터 벗어남이 없이 각종 수정들 및 변화들이 행해질 수 있다는 것을 인식한다. 따라서, 명세서 및 도면들은 제한적인 의미라기보다는 설명적인 것으로 간주되어야 하며, 모든 이와 같은 수정들이 본 실시예들의 범위 내에 포함되도록 의도된다. 예를 들어, 본 실시예들은 셋-톱 박스들, 셀룰러 전화들, PDAs, 휴대형 비디오 플레이어들, 차 기반 비디오 시스템들, 등에 적용될 수 있다.
문제점들에 대한 이점들, 다른 장점들, 및 해법들이 설명되었다. 그러나, 문제점들에 대한 이점들, 장점들, 솔루션들, 및 이점, 장점, 또는 솔루션이 발생되도록 하거나 보다 명백해지도록 할 수 있는 임의의 요소(들)이 청구항들 중 어느 하나 또는 모두의 중요한, 필요로 되는, 또는 필수적인 특징 또는 요소로서 해석되지 않아야 한다. 본원에 사용된 바와 같은, 용어 "포함한다", "포함하는", 또는 이의 임의의 다른 변형은 비-배제적인 포함을 커버하도록 의도되어서, 요소들의 리스트를 포함하는 프로세스, 방법, 품목, 또는 장치가 이러한 요소들만을 포함하는 것이 아니라, 명백하게 리스트화되지 않거나 이와 같은 프로세스, 방법, 품목, 또는 장치에 고유한 다른 요소들을 포함할 수 있게 된다.

Claims (20)

  1. MPEG 비디오 스트림에서 완전한 화상을 구축하는데 필요로 되는 프레임들을 동적으로 결정하기 위한 방법에 있어서,
    종속 벡터 모델(dependency vector model)에 따라서 상기 MPEG 비디오 스트림에서 프레임들의 순서를 디코딩하는 단계로서, 상기 종속 벡터 모델은 여러 유형들의 MPEG 스트림들에 걸쳐서 무결절성 동작(seamless operation)을 위한 디코드 순서 비디오 스트림의 함수에 따라서 종속 벡터를 결정하도록 구성되는, 상기 디코딩 단계; 및
    상기 종속 벡터 모델에 따라서 결정된 상기 종속 벡터의 함수에 따라서 양방향 방식으로 상기 MPEG 스트림의 프레임 정확한 표시들을 수행하는 단계를 포함하는, 프레임들을 동적으로 결정하는 방법.
  2. 제 1 항에 있어서,
    상기 종속 벡터 모델은 완전한 인트라코딩된 화상이 도출될 수 있을 때까지 역방향으로 디코드 순서 비디오 스트림의 프레임들을 검토함으로써 상기 종속 벡터를 결정하는, 프레임들을 동적으로 결정하는 방법.
  3. 제 2 항에 있어서,
    상기 검토 단계는:
    상기 디코드 순서 비디오 스트림의 현재 프레임을 버퍼로 로딩하는 단계;
    상기 현재 프레임의 모든 라인들이 인트라코딩 되는지의 여부를 질의하는 단계; 및
    상기 현재 프레임의 모든 라인들이 인트라코딩되는 경우, 상기 현재 프레임을 절대 종속 프레임으로서 지정하고; 그렇지 않다면, 상기 현재 프레임의 모든 라인들이 인트라코딩되지 않는 경우, 이전 프레임을 상기 버퍼로 로딩하고, 상기 이전 프레임은 상기 현재 프레임이 되고, 이후에 상기 질의를 반복하는 단계를 더 포함하는, 프레임들을 동적으로 결정하는 방법.
  4. 제 3 항에 있어서,
    상기 디코드 순서 비디오 스트림은 제 1 수의 인트라코딩된 슬라이스들을 포함하는 제 1 화상 및 제 2 수의 인트라코딩된 슬라이스들을 포함하는 제 2 화상을 포함하고, 상기 제 1 수는 상기 제 2 수와 상이한 프레임들을 동적으로 결정하는 방법.
  5. 제 4 항에 있어서,
    (i) 상기 제 1 화상의 더 작은 수의 슬라이스들을 상기 제 2 화상의 더 많은 수의 슬라이스들로 또는 (ii) 상기 제 2 화상의 더 작은 수의 슬라이스들을 상기 제 1 화상의 더 많은 수의 슬라이스들로 업샘플링함으로써 상기 제 1 및 제 2 화상 간에서 슬라이스들의 수의 변화를 수용하는 단계를 더 포함하는, 프레임들을 동적 으로 결정하는 방법.
  6. 제 3 항에 있어서,
    디코드 순서 비디오 스트림의 화상들 간의 다수의 슬라이스들은 불균일한, 프레임들을 동적으로 결정하는 방법.
  7. 제 6 항에 있어서,
    상기 디코드 순서 비디오 스트림에서 화상들 간의 슬라이스들의 수의 변화들을 수용하는 단계를 더 포함하는, 프레임들을 동적으로 결정하는 방법.
  8. 제 1 항에 있어서,
    상기 MPET 스트림들의 유형들은 (i) 표준 MPEG 비디오 스트림, (ii) 개방 화상들의 그룹(GOP), 및 (iii) I-슬라이스 스트림을 포함하는, 프레임들을 동적으로 결정하는 방법.
  9. 제 8 항에 있어서,
    상기 표준 MPEG 비디오 스트림에 대해서, 폐쇄된 화상들의 그룹(GOP)은 상기 디코드 순서 비디오 스트림 내에서 B-프레임의 발생에 앞서 2개의 앵커 프레임들(anchor frames)의 발생을 포함하고, 상기 2개의 앵커 프레임들은 I 프레임들, P 프레임들, 또는 I 및 P 프레임들을 포함하는, 프레임들을 동적으로 결정하는 방법.
  10. 제 8 항에 있어서,
    상기 개방 화상들의 그룹(GOP)에 대해서, 상기 개방 GOP는 상기 디코드 순서 비디오 스트림 내에서 I-프레임의 발생 바로 다음에 B-프레임의 발생을 포함하고, 상기 B-프레임은 이전 GOP 내에서 발생되는 앵커 프레임으로부터 좌우됨으로써, 상기 디코드 순서 비디오 스트림의 이전 GOP로의 종속성을 생성하는, 프레임들을 동적으로 결정하는 방법.
  11. 제 8 항에 있어서,
    상기 I-슬라이스 스트림에 대해서, 상기 I-슬라이스 스트림은 100% 인트라코딩된 화상을 생성하는데 필요로 되는 다수의 P-프레임들을 포함하고, 각 P-프레임은 인트라코딩된 데이터의 주어진 퍼센티지를 포함하는, 프레임들을 동적으로 결정하는 방법.
  12. 제 11 항에 있어서,
    상기 P-프레임들의 수는 5개의 P-프레임들을 포함하는, 프레임들을 동적으로 결정하는 방법.
  13. 제 1 항에 있어서,
    상기 종속 벡터를 결정하는 단계는 상대 종속성들 및 절대 종속성들을 포함 하는 MPEG 프레임 종속성들을 결정하는 단계를 포함하고, 상대 종속성들은 상기 디코드 순서 비디오 스트림 내에서 이전 발생하는 앵커 프레임에 의존하는 앵커 프레임들을 포함하고, 또한 상기 절대 종속성들은 상기 디코드 순서 비디오 스트림 내에서 화상들의 그룹(GOP)을 위한 I-프레임에서 바텀 아웃되는 종속성들을 포함하는, 프레임들을 동적으로 결정하는 방법.
  14. 제 13 항에 있어서,
    상기 GOPs는 I-슬라이스 비디오 스트림 GOP에 대응하는 I-프레임의 GOP 부재를 포함하여 다양한 프레임들의 수에 대응하는 다양한 길이들의 GOPs를 포함하는, 프레임들을 동적으로 결정하는 방법.
  15. 제 1 항에 있어서,
    디스플레이 순서로 상기 MPEG 비디오 스트림에서 프레임들을 디스플레이하는 상대적인 비용을 결정하는 단계;
    디스플레이 순서로 상기 MPEG 비디오 스트림에서 프레임들을 디스플레이하는 상대적인 비용을 변경하기 위한 차분 필터(difference filter)를 이용하는 단계; 및
    임계량을 초과하는 변경된 상대적인 비용을 갖는 프레임의 함수에 따라서 스플라이스 포인트를 선택하는 단계로서, 상기 스플라이스 포인트는 GOP의 에지를 나타내는, 상기 선택 단계를 포함하는, 프레임들을 동적으로 결정하는 방법.
  16. 제 15 항에 있어서,
    상기 상대적인 비용은 프레임의 시작으로부터 상기 프레임에 대한 절대 종속성까지 다수의 바이트들의 함수에 따라서 결정되는, 프레임들을 동적으로 결정하는 방법.
  17. 제 1 항에 있어서,
    상기 종속 벡터 결정은 (i) 하드웨어 구현 방식, (ii) 소프트웨어 구현 방식, 또는 (iii) 하드웨어 및 소프트웨어 구현 방식들의 조합 중 하나인, 프레임들을 동적으로 결정하는 방법.
  18. 제 1 항에 있어서,
    화상들의 그룹(GOP) 내에서 프레임들의 상대적인 종속성을 결정하는 단계를 더 포함하고, 상기 GOP는 디스플레이 순서에서 다수의 프레임들을 포함하는, 프레임들을 동적으로 결정하는 방법.
  19. 제 18 항에 있어서,
    상기 GOP 내에서 상기 프레임들의 절대 종속성을 결정하는 단계를 더 포함하는, 프레임들을 동적으로 결정하는 방법.
  20. 정보 처리 시스템(information handling system)에 있어서,
    비디오 스트림을 수신하는 입력으로서, 상기 비디오 스트림은 채널 선택의 함수인 디코드 순서 비디오 스트림을 포함하는, 상기 입력;
    출력 상에 디스플레이 순서로 압축되지 않은 비디오 프레임들의 신호를 제공하기 위하여 상기 디코드 순서 비디오 스트림에 응답하는 프레임 프로세서; 및
    디스플레이 순서에서 상기 압축되지 않은 비디오 프레임들에 응답하여 디스플레이 장치상에 디스플레이하기에 적합한 비디오 신호를 제공하는 디지털 비디오 인코더를 포함하고,
    상기 프레임 프로세서는 제 1 항에 따른 방법을 수행하도록 구성되는, 정보 처리 시스템.
KR1020077019370A 2005-02-24 2006-01-25 Mpeg 비디오 스트림에서 완전한 화상을 구축하는데필요로 되는 프레임들의 동적 결정을 위한 방법 및 장치 KR101238277B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/065,403 2005-02-24
US11/065,403 US7522667B2 (en) 2005-02-24 2005-02-24 Method and apparatus for dynamic determination of frames required to build a complete picture in an MPEG video stream
PCT/US2006/002645 WO2006091313A2 (en) 2005-02-24 2006-01-25 Method and apparatus for dynamic determination of frames required to build a complete picture in an mpeg video stream

Publications (2)

Publication Number Publication Date
KR20070104920A true KR20070104920A (ko) 2007-10-29
KR101238277B1 KR101238277B1 (ko) 2013-03-04

Family

ID=36912690

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077019370A KR101238277B1 (ko) 2005-02-24 2006-01-25 Mpeg 비디오 스트림에서 완전한 화상을 구축하는데필요로 되는 프레임들의 동적 결정을 위한 방법 및 장치

Country Status (5)

Country Link
US (1) US7522667B2 (ko)
JP (1) JP5226325B2 (ko)
KR (1) KR101238277B1 (ko)
CN (1) CN101427572B (ko)
WO (1) WO2006091313A2 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9100702B2 (en) 2006-09-11 2015-08-04 Tivo Inc. Personal content distribution network
US8401366B2 (en) 2006-10-31 2013-03-19 Tivo Inc. Method and apparatus for downloading ancillary program data to a DVR
US8270819B2 (en) 2006-10-31 2012-09-18 Tivo Inc. Performing trick play functions in a digital video recorder with efficient use of resources
CN101523911B (zh) 2006-10-31 2013-08-28 Tivo有限公司 用于将辅助节目数据下载到dvr的方法和装置
US8179976B2 (en) 2008-01-11 2012-05-15 Apple Inc. Control of video decoder for reverse playback operation
US8359612B2 (en) 2008-08-13 2013-01-22 Tivo Inc. Content distribution system using transportable memory devices
EP2425629A2 (en) * 2009-04-28 2012-03-07 Vubites India Private Limited Method and apparatus for coordinated splicing of multiple streams
US9307261B2 (en) * 2012-08-13 2016-04-05 Hulu, LLC Splicing of video for parallel encoding
CN104243920B (zh) * 2014-09-04 2017-09-26 浙江宇视科技有限公司 一种基于基本流视频数据封装的图像拼接方法及装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5091782A (en) * 1990-04-09 1992-02-25 General Instrument Corporation Apparatus and method for adaptively compressing successive blocks of digital video
KR0128860B1 (ko) * 1993-07-16 1998-04-10 배순훈 저비트율의 영상전화 시스템의 부호화장치
KR960704441A (ko) * 1993-07-30 1996-08-31 배리 조지 윌리엄 로이드 이미지 데이터 코딩 방법 및 장치(coding image data)
US5539467A (en) * 1993-09-14 1996-07-23 Goldstar Co., Ltd. B-frame processing apparatus including a motion compensation apparatus in the unit of a half pixel for an image decoder
US6920175B2 (en) * 2001-01-03 2005-07-19 Nokia Corporation Video coding architecture and methods for using same
US20030079228A1 (en) * 2001-10-23 2003-04-24 Shu Lin Searching for frames to perform a trick mode
US7787746B2 (en) * 2001-10-23 2010-08-31 Thomson Licensing Fast motion trick mode using non-progressive dummy bidirectional predictive pictures
US6738980B2 (en) * 2001-11-15 2004-05-18 Industrial Technology Research Institute Methods and systems for video streaming with VCR functionality
EP1377040A1 (en) * 2002-06-19 2004-01-02 STMicroelectronics S.r.l. Method of stabilizing an image sequence
US20040260827A1 (en) * 2003-06-19 2004-12-23 Nokia Corporation Stream switching based on gradual decoder refresh

Also Published As

Publication number Publication date
WO2006091313A3 (en) 2008-08-14
US7522667B2 (en) 2009-04-21
CN101427572B (zh) 2011-12-14
JP5226325B2 (ja) 2013-07-03
CN101427572A (zh) 2009-05-06
KR101238277B1 (ko) 2013-03-04
JP2008536349A (ja) 2008-09-04
US20060188016A1 (en) 2006-08-24
WO2006091313A2 (en) 2006-08-31

Similar Documents

Publication Publication Date Title
KR101238277B1 (ko) Mpeg 비디오 스트림에서 완전한 화상을 구축하는데필요로 되는 프레임들의 동적 결정을 위한 방법 및 장치
US8416859B2 (en) Signalling and extraction in compressed video of pictures belonging to interdependency tiers
JP4769717B2 (ja) 画像復号化方法
EP2186340B1 (en) A video data reproduction system
US8265168B1 (en) Providing trick mode for video stream transmitted over network
US8275247B2 (en) Method and apparatus for normal reverse playback
US20080019445A1 (en) Image Coding Device, Image Decoding Device, Image Coding Program, And Image Decoding Program
KR101122898B1 (ko) 비디오 스트림 내의 유효 진입점 시그널링
US20120275518A1 (en) Moving picture coding method, apparatus, program, and integrated circuit
US20090190667A1 (en) Picture Relevance By Compressed Size
EP1599048A2 (en) Reverse presentation of digital media streams
EP2642764B1 (en) Transcoding a video stream to facilitate accurate display
JP2010041354A (ja) 動画像符号化方法、符号化装置及び符号化プログラム
GB2321154A (en) Reverse playback of MPEG video
US8170375B2 (en) Image processing apparatus and method for controlling the same
US8300701B2 (en) Offspeed playback in a video editing system of video data compressed using long groups of pictures
JP2002027483A (ja) 画像符号化装置、画像復号化装置および記憶媒体
US7929604B2 (en) Data processing device and data processing method
JP2002223449A (ja) 画像圧縮符号化装置及び画像圧縮符号化方法
KR101391600B1 (ko) 어댑티브 녹화 방법 및 장치
JP2004228617A (ja) 動画像符号化装置および動画像復号化装置
JP2007043575A (ja) 画像処理装置及び画像処理方法
KR20040077765A (ko) 랜덤 액세스 및 스플라이싱을 가능하게 하기 위해 비디오데이터를 인코딩 및 디코딩하는 방법 및 시스템
JP2006100947A (ja) Mpeg−2ストリームのワイプ切換方法
JP2007304797A (ja) データアクセス回路、デコード装置、情報再生装置及び電子機器

Legal Events

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

Payment date: 20160205

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee