KR100841338B1 - 비디오 디코더를 위한 에뮬레이션 방지 바이트 제거 장치 - Google Patents

비디오 디코더를 위한 에뮬레이션 방지 바이트 제거 장치 Download PDF

Info

Publication number
KR100841338B1
KR100841338B1 KR1020070019787A KR20070019787A KR100841338B1 KR 100841338 B1 KR100841338 B1 KR 100841338B1 KR 1020070019787 A KR1020070019787 A KR 1020070019787A KR 20070019787 A KR20070019787 A KR 20070019787A KR 100841338 B1 KR100841338 B1 KR 100841338B1
Authority
KR
South Korea
Prior art keywords
stream data
buffer
emulation prevention
byte
prevention byte
Prior art date
Application number
KR1020070019787A
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 삼성전자주식회사
Priority to KR1020070019787A priority Critical patent/KR100841338B1/ko
Priority to US12/071,831 priority patent/US8867900B2/en
Application granted granted Critical
Publication of KR100841338B1 publication Critical patent/KR100841338B1/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

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

Abstract

여기에 개시된 에뮬레이션 방지 바이트 제거 장치는, 제1 스트림 데이터를 저장하기 위한 제1 버퍼와, 제2 스트림 데이터를 저장하기 위한 제2 버퍼와, 상기 제1 및 제2 버퍼들에 저장된 상기 제1 및 제2 스트림 데이터에 에뮬레이션 방지 바이트가 포함되어 있는 지를 검사하고, 검사 신호를 출력하는 검사기, 그리고 상기 검사 신호에 응답해서 상기 제1 및 제2 버퍼들로부터의 상기 제1 및 2 스트림 데이터에서 상기 에뮬레이션 방지 바이트를 제거한 후 소정 크기의 출력 스트림 데이터를 출력하는 쉬프터를 포함한다.

Description

비디오 디코더를 위한 에뮬레이션 방지 바이트 제거 장치{APPARATUS FOR ELIMINATING EMULATION PREVENTION BYTE OF VIDEO DECODER}
도 1은 본 발명의 바람직한 실시예에 따른 영상 처리 시스템을 보여주는 도면;
도 2는 본 발명의 바람직한 실시예에 따른 에뮬레이션 방지 바이트 제거기의 구체적인 구성을 보여주는 블록도;
도 3은 스트림 데이터에 에뮬레이션 방지 바이트가 포함된 경우들을 예시적으로 보여주는 도면; 그리고
도 4 내지 도 6은 도 2에 도시된 에뮬레이션 방지 바이트 제거기의 동작을 설명하기 위해서 다양한 스트림 데이터를 예시적으로 보여주는 도면들이다.
*도면의 주요 부분에 대한 설명
100 : 영상 처리 시스템 110 : 메모리
120 : 에뮬레이션 방지 바이트 제거기
130 : 디코더 210, 220, 230 : 버퍼
240 : 에뮬레이션 방지 바이트 검사기
250 : 바이트 쉬프터 260 : 포인터
본 발명은 영상 처리 시스템에 관한 것으로, 좀 더 구체적으로는 비디오 디코더를 포함하는 시스템에 관한 것이다.
H.264는 국제전기통신연합(ITU-T:International Telecommunication Unio)에서 제안하는 비디오 코덱에 관련된 권고안으로서, 영상 회의와 방송, 스트리밍(streaming) 서비스 등에 적용할 수 있는 패킷(packet) 기반의 동영상 압축 기술의 하나이다. H.264는 H.262를 기반으로 하는 MPEG-2나 H.263을 기반으로 하는 MPEG-4에 비해 더욱 향상된 압축률을 가진다.
H.264 압축 방식에 의하면, 스트림 데이터(stream data)에 에뮬레이션 바이트(emulation byte)가 나타날 수 있다. 에뮬레이션 바이트에는 0x000001, 0x000002, 0x000003 등이 있다. H.264 시스템은 에뮬레이션 바이트와 노말 스트림 데이터를 구별하기 위해 에뮬레이션 방지 바이트(emulation prevent byte) 0x03을 에뮬레이션 바이트 형태의 스트림 데이터에 포함시킨다. 즉, 노말 스트림 데이터 0x000001, 0x000002 및 0x000003는 각각 0x0000031, 0x00000302 및 0x00000303으로 정정된다.
그러나, 디코더에 의해서 스트림 데이터가 디코딩되기 위해서는 스트림 데이터에 포함된 에뮬레이션 방지 바이트가 제거되어야만 한다. 영상의 해상도가 높아지고, 빠른 속도로 스트림 데이터를 처리하기 위해서는 소프트웨어적 방식으로 에뮬레이션 방지 바이트를 제거하는데 한계가 있다.
따라서 본 발명의 목적은 효율적으로 에뮬레이션 방지 바이트를 제거할 수 있는 장치를 제공하는데 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 일 특징에 의하면, 비디오 디코더를 위한 에뮬레이션 방지 바이트를 제거하는 장치는: 제1 스트림 데이터를 저장하기 위한 제1 버퍼와, 제2 스트림 데이터를 저장하기 위한 제2 버퍼와, 상기 제1 및 제2 버퍼들에 저장된 상기 제1 및 제2 스트림 데이터에 상기 에뮬레이션 방지 바이트가 포함되어 있는 지를 검사하고, 검사 신호를 출력하는 검사기, 그리고 상기 검사 신호에 응답해서 상기 제1 및 제2 버퍼들로부터의 상기 제1 및 2 스트림 데이터에서 상기 에뮬레이션 방지 바이트를 제거한 후 소정 크기의 출력 스트림 데이터를 출력하는 쉬프터를 포함한다.
이 실시예에 있어서, 상기 제2 버퍼에 저장된 상기 제2 스트림 데이터는 상기 제1 스트림 데이터로서 상기 제1 버퍼로 이송되고, 외부로부터 입력되는 스트림 데이터는 상기 제2 스트림 데이터로서 상기 제2 버퍼에 저장된다.
이 실시예에 있어서, 상기 제1 및 제2 스트림 데이터 각각은 복수의 바이트들을 포함한다.
이 실시예에 있어서, 상기 제1 스트림 데이터와 제2 스트림 데이터는 연속된 데이터이다.
이 실시예에 있어서, 상기 쉬프터는, 상기 제1 및 제2 스트림 데이터에 포함 된 상기 에뮬레이션 방지 바이트를 제거한 후 제1 및 제2 스트림 데이터의 나머지 바이트들을 왼쪽으로 쉬프트하여 상기 출력 스트림 데이터를 생성한다.
이 실시예에 있어서, 상기 쉬프터로부터 출력되는 상기 출력 스트림 데이터를 저장하기 위한 제 3 버퍼를 더 포함한다.
이 실시예에 있어서, 상기 제 3 버퍼는, 상기 출력 스트림 데이터의 일부를 저장한다.
이 실시예에 있어서, 상기 제 3 버퍼는, 상기 출력 스트림 데이터의 최하위 2 바이트를 저장한다.
이 실시예에 있어서, 상기 검사기는, 상기 제1 및 제2 버퍼들에 저장된 상기 제1 및 제2 스트림 데이터와 상기 제3 버퍼에 저장된 상기 출력 스트림 데이터를 입력받아서 상기 에뮬레이션 방지 바이트가 포함되어 있는 지를 검사하고, 상기 검사 신호를 출력한다.
이 실시예에 있어서, 상기 쉬프터에 의해서 상기 출력 스트림 데이터가 생성되는 상기 제1 스트림 데이터의 시작 위치를 나타내는 포인트 값을 출력하는 포인터를 더 포함한다.
이 실시예에 있어서, 상기 포인터는, 상기 쉬프터에 의해서 상기 에뮬레이션 방지 바이트가 제거될 때마다 상기 포인트 값을 증가시킨다.
이 실시예에 있어서, 상기 쉬프터는, 워드 단위로 상기 출력 스트림 데이터를 출력한다.
이 실시예에 있어서, 상기 워드 단위는 4 바이트이다.
본 발명의 다른 특징에 따른 비디오 디코더를 위한 에뮬레이션 방지 바이트를 제거하는 장치는: 제1 스트림 데이터를 저장하기 위한 제1 버퍼와, 제2 스트림 데이터를 저장하기 위한 제2 버퍼와, 제 3 스트림 데이터를 저장하기 위한 제3 버퍼와, 상기 제1 내지 제3 버퍼들에 저장된 상기 제1 내지 제3 스트림 데이터를 입력받아서 상기 에뮬레이션 방지 바이트가 포함되어 있는 지를 검사하고, 검사 신호를 출력하는 검사기, 그리고 상기 검사 신호에 응답해서 상기 제1 및 제2 버퍼에 저장된 상기 제1 및 2 스트림 데이터에서 상기 에뮬레이션 방지 바이트를 제거하고, 포인트 값이 지정하는 위치부터 소정 크기의 출력 스트림 데이터를 출력하는 쉬프터; 그리고 상기 포인트 값을 출력하는 포인터를 포함한다. 상기 출력 스트림 데이터는 상기 제3 스트림 데이터로서 상기 제3 버퍼에 저장된다.
이하 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 영상 처리 시스템을 보여주는 도면이다.
도 1을 참조하면, 영상 처리 시스템(100)은 메모리(110). 에뮬레이션 방지 바이트(EPB) 제거기(120) 그리고 디코더(130)를 포함한다. H.264 시스템 등과 같은 영상 처리 시스템은 도 1에 도시된 구성 요소들 외에 더 많은 구성들을 포함하나, 본 명세서에서는 에뮬레이션 방지 바이트 제거를 위해 필요한 일부 구성들 만을 도시하고 설명한다.
에뮬레이션 방지 바이트 제거기(120)는 클럭 신호(CLK)에 동기해서 메모 리(110)로부터 입력 스트림 데이터(I_STR[31:0])를 입력받는다. 메모리(110)와 제거기(120)는 DMA(direct memory access) 등을 통해 연결될 수 있다. 다른 실시예에서, 메모리(110)는 FIFO(First-In First-Out)로 구성될 수 있다.
에뮬레이션 방지 바이트 제거기(120)는 입력 스트림 데이터(I_STR[31:0])에 에뮬레이션 방지 바이트가 포함되었는 지를 검사하고, 스트림 데이터(I_STR[31:0])에 에뮬레이션 방지 바이트가 포함되었을 때 에뮬레이션 방지 바이트를 제거한 후 워드 단위의 출력 스트림 데이터(O_STR[31:0])를 출력한다. 디코더(130)는 에뮬레이션 방지 바이트를 포함하지 않는 출력 스트림 데이터(O_STR[31:0])를 디코딩한다.
에뮬레이션 방지 바이트 제거기(120)는, 입력 스트림 데이터(I_STR[31:0])에 에뮬레이션 방지 바이트가 포함된 경우 하나의 스트림 데이터(I_STR[31:0])만으로 출력 스트림 데이터(O_STR[31:0])를 생성할 수 없다. 그러므로 에뮬레이션 방지 바이트 제거기(120)는 적어도 연속된 두 개의 입력 스트림 데이터(I_STR[31:0])를 순차적으로 입력받아서 출력 스트림 데이터(O_STR[31:0])를 생성할 수 있는 구조를 갖는다.
도 2는 본 발명의 바람직한 실시예에 따른 에뮬레이션 방지 바이트 제거기(120)의 구체적인 구성을 보여주는 블록도이다.
도 2를 참조하면, 에뮬레이션 방지 바이트 제거기(120)는 버퍼들(210, 220, 230), 에뮬레이션 방지 바이트 검사기(240), 바이트 쉬프터(250) 그리고 포인터(260)를 포함한다.
도 1에 도시된 메모리(110)로부터의 입력 스트림 데이터(I_STR[31:0])는 클럭 신호(CLK)에 동기해서 버퍼(220)에 저장된다. 다음 클럭 사이클에서, 버퍼(220)에 저장된 k번째 스트림 데이터(Ak[31:0])는 k-1번째 스트림 데이터(Ak-1[31:0])로서 버퍼(210)로 이송(transfer)되고, 메모리(110)로부터의 입력되는 새로운 스트림 데이터(I_STR[31:0])가 k번째 스트림 데이터(Ak[31:0])로서 버퍼(220)에 저장된다.
바이트 쉬프터(250)는 버퍼들(210, 220)에 저장된 스트림 데이터(Ak[31:0], Ak-1[31:0])를 입력받고, 검사 신호(CHK)에 따라서 스트림 데이터(Ak[31:0], Ak-1[31:0])를 쉬프트하여 출력 스트림 데이터(O_STR[31:0])를 출력한다. 출력 스트림 데이터(O_STR[31:0]) 중 하위 2바이트(O_STR[15:0])는 버퍼(230)에 저장된다.
버퍼들(210, 220)에 저장된 k번째 및 k-2번째 스트림 데이터(Ak[31:0], Ak-1[31:0])가 에뮬레이션 방지 바이트 검사기(240)로 입력될 때 버퍼(230)에 저장된 스트림 데이터가 k-2번째 스트림 데이터(Ak-2[31:0])로서 에뮬레이션 방지 바이트 검사기(240)로 입력된다.
에뮬레이션 방지 바이트 검사기(240)는 버퍼들(210, 220)로부터의 스트림 데이터(Ak[31:0], Ak-1[31:0]) 그리고 버퍼(230)로부터의 스트림 데이터(Ak-2[15:0])를 참조하여, 스트림 데이터(Ak-1[31:0], Ak[31:0])에 에뮬레이션 방지 바이트가 포함되 었는 지를 검사한다. 스트림 데이터(Ak-1[31:0], Ak[31:0])에 에뮬레이션 방지 바이트가 포함된 경우는 도 3에 도시된 바와 같이 5가지 케이스들 중 어느 하나이다.
검사기(240)는 스트림 데이터(Ak-1[31:0], Ak[31:0])에 포함된 "0x03"이 에뮬레이션 방지 바이트인지 아니면 노말 바이트인 지를 검사하기 위해서 스트림 데이터(Ak-2[15:0], Ak-1[31:0], Ak[31:0])를 참조한다. 예를 들어, 도 3에 도시된 "Case 0"과 같이 스트림 데이터(Ak-1[31:0])의 바이트(A7)에 0x03이 포함된 경우, 검사기(240)는 바이트(A7)의 "0x03"이 에뮬레이션 방지 바이트인 지를 판별하기 위해서 스트림 데이터(Ak-2[15:0], Ak-1[15:0])를 참조해야 한다.
또한, "Case 3"과 같이 스트림 데이터(Ak-1[31:0])의 바이트(A4)에 0x03이 포함된 경우, 검사기(240)는 바이트(A4)의 "0x03"이 에뮬레이션 방지 바이트인 지를 판별하기 위해서 스트림 데이터(Ak[31:0], Ak-1[15:0])를 참조해야 한다.
다른 예로, "Case 5"과 같이 스트림 데이터(Ak-1[31:0])의 바이트(A7) 및 스트림 데이터(Ak[31:0])의 바이트(A3)에 "0x03"이 포함된 경우, 검사기(240)는 바이트들(A7, A4)의 "0x03"이 에뮬레이션 방지 바이트인 지를 판별하기 위해서 스트림 데이터(Ak-2[31:0], Ak[31:0])를 참조해야 한다.
검사기(240)는 스트림 데이터(Ak-1[31:0])의 바이트들(A7-A4) 중 어느 하나에 포함된 "0x03"이 에뮬레이션 방지 바이트인 것으로 판별될 때 바이트 위치 정보를 검사 신호(CHK)로서 바이트 쉬프터(250)로 제공한다. 이 실시예에 있어서, 검사 신호(CHK)는 바이트들(A7-A0)에 각각 대응하는 최대 8 비트 신호이다.
바이트 쉬프터(250)는 검사 신호(CHK)에 응답해서 스트림 데이터(Ak[31:0], Ak-1[15:0])를 쉬프트하여 출력 스트림 데이터(O_STR[31:0])를 출력한다.
예컨대, "Case 0"에서, 스트림 데이터(Ak-1[31:0])의 바이트(A7)가 에뮬레이션 방지 바이트 "0x03"를 포함하므로, 스트림 데이터(Ak-1[31:0])의 바이트들(A6, A5, A4) 및 스트림 데이터(Ak[31:0])의 바이트(A3)를 왼쪽으로 1바이트씩 쉬프트하여 새로운 4 바이트 출력 스트림 데이터(O_STR[31:0])를 생성한다. 이 때 새로이 생성된 출력 스트림 데이터(O_STR[31:0])는 "0x01040506"이다. 다음 클럭 사이클에서 버퍼(220)의 스트림 데이터(Ak[31:0])는 스트림 데이터(Ak-1[31:0])로서 버퍼(210)로 이송된다. 이 때, 스트림 데이터(Ak-1[31:0])의 바이트(A7)의 "0x06"는 이전 클럭 사이클에서 이미 출력 스트림 데이터(O_STR[31:0])로서 출력되었으므로, 쉬프터(250)는 새로운 클럭 사이클에서 스트림 데이터(Ak-1[31:0])의 바이트(A6)부터 출력 스트림 데이터(O_STR[31:0]) 생성에 사용해야 한다. 이와 같이, 이전 클럭 사이클에서 에뮬레이션 방지 바이트의 제거에 의한 출력 스트림 데이터(O_STR[31:0]) 생성 위치 변화를 나타내기 위해 포인터(260)가 사용된다. 즉, 포인터(260)는 출력 스트림 데이터(O_STR[31:0]) 중 스트림 데이터(Ak-1[31:0])의 위치를 나타내는 포인트 값(P)을 출력한다.
포인터(260)는 바이트 쉬프터(250)에 의해서 에뮬레이션 방지 바이트가 제거될 때마다 1씩 증가하는 포인트 값(P)을 출력한다. 초기에 포인트 값(P)이 '0'일 때 바이트 쉬프터(250)는 스트림 데이터(Ak-1[31:0])의 바이트(A7)부터 출력 스트림 데이터(O_STR[31:0]) 생성에 사용한다. "Case 0" 내지 "Case 3"과 같이, 스트림 데이터(Ak-1[31:0])에 에뮬레이션 방지 바이트 "0x00"이 포함된 경우, 포인트 값(P)은 1 증가하여 "1"로 된다.
초기에 포인트 값(P)이 '0'이고, "Case 4"과 같이, 스트림 데이터(Ak-1[31:0], Ak[31:0])에 에뮬레이션 방지 바이트 "0x00"가 2개 포함된 경우, 포인트 값(P)은 2 증가하여 "2"로 된다.
도 4 내지 도 6은 도 2에 도시된 에뮬레이션 방지 바이트 제거기(120)의 동작을 설명하기 위해서 다양한 스트림 데이터를 예시적으로 보여주는 도면들이다.
도 4를 참조하면, 클럭 신호(CLK)의 사이클(T11)에서 포인트 값(P)은 '0'이고, 바이트(A7)에 에뮬레이션 방지 바이트 "0x00"이 포함된 경우, 출력 스트림 데이터(O_STR[31:0])는 "0x01040506"이다. 클럭 신호(CLK)의 사이클(T12)에서 에뮬레이션 방지 바이트 검사기(240)로 입력되는 스트림 데이터(Ak-2[15:0])는 "0x0506"이고, 스트림 데이터(Ak-1[31:0])는 "0x06070809"이며, 스트림 데이터(Ak[31:0])는 "0x04050607"이다. 클럭 신호(CLK)의 사이클(T11)에서 포인트 값(P)이 '0'에서 '1'로 변경되었으므로, 출력 스트림 데이터(O_STR[31:0])는 "0x07080904"이다.
도 5를 참조하면, 클럭 신호(CLK)의 사이클(T21)에서 포인트 값(P)은 '0'이고, 바이트(A6)에 에뮬레이션 방지 바이트 "0x00"이 포함된 경우, 출력 스트림 데 이터(O_STR[31:0])는 "0x00010405"이다. 클럭 신호(CLK)의 사이클(T22)에서 에뮬레이션 방지 바이트 검사기(240)로 입력되는 스트림 데이터(Ak-2[15:0])는 "0x0405"이고, 스트림 데이터(Ak-1[31:0])는 "0x05060708"이고, 스트림 데이터(Ak[31:0])는 "0x09040506"이다. 클럭 신호(CLK)의 사이클(T21)에서 포인트 값(P)이 '0'에서 '1'로 변경되었으므로, 출력 스트림 데이터(O_STR[31:0])는 "0x06070809"이다.
도 6을 참조하면, 클럭 신호(CLK)의 사이클(T31)에서 포인트 값(P)은 '1'이고, 바이트(A5)에 에뮬레이션 방지 바이트 "0x00"이 포함된 경우, 출력 스트림 데이터(O_STR[31:0])는 "0x00010405"이다. 클럭 신호(CLK)의 사이클(T32)에서 에뮬레이션 방지 바이트 검사기(240)로 입력되는 스트림 데이터(Ak-2[15:0])는 "0x0405"이고, 스트림 데이터(Ak-1[31:0])는 "0x04050607"이고, 스트림 데이터(Ak[31:0])는 "0x08090405"이다. 클럭 신호(CLK)의 사이클(T31)에서 포인트 값(P)이 '1'에서 '2'로 변경되었으므로, 출력 스트림 데이터(O_STR[31:0])는 "0x06070809"이다.
예시적인 바람직한 실시예들을 이용하여 본 발명을 설명하였지만, 본 발명의 범위는 개시된 실시예들에 한정되지 않는다는 것이 잘 이해될 것이다. 오히려, 본 발명의 범위에는 다양한 변형 예들 및 그 유사한 구성들이 모두 포함될 수 있도록 하려는 것이다. 따라서, 청구범위는 그러한 변형 예들 및 그 유사한 구성들 모두를 포함하는 것으로 가능한 폭넓게 해석되어야 한다.
이와 같은 본 발명에 의하면, 스트림 데이터에 포함된 에뮬레이션 방지 바이 트를 효율적으로 제거할 수 있다. 또한, 제1 및 제2 버퍼들이 2워드 길이의 스트림 데이터를 저장하므로, 스트림 데이터에 에뮬레이션 방지 바이트가 포함되어 있더라도 클럭 사이클의 지연없이 매 클럭 사이클마다 출력 스트림 데이터가 출력된다.

Claims (22)

  1. 제1 스트림 데이터를 저장하기 위한 제1 버퍼와;
    제2 스트림 데이터를 저장하기 위한 제2 버퍼와;
    상기 제1 및 제2 버퍼들에 저장된 상기 제1 및 제2 스트림 데이터에 에뮬레이션 방지 바이트가 포함되어 있는 지를 검사하고, 검사 신호를 출력하는 검사기; 그리고
    상기 검사 신호에 응답해서 상기 제1 및 제2 버퍼들로부터의 상기 제1 및 2 스트림 데이터에서 상기 에뮬레이션 방지 바이트를 제거한 후 소정 크기의 출력 스트림 데이터를 출력하는 쉬프터를 포함하는 것을 특징으로 하는 에뮬레이션 방지 바이트 제거 장치.
  2. 제 1 항에 있어서,
    상기 제2 버퍼에 저장된 상기 제2 스트림 데이터는 상기 제1 스트림 데이터로서 상기 제1 버퍼로 이송되고,
    외부로부터 입력되는 스트림 데이터는 상기 제2 스트림 데이터로서 상기 제2 버퍼에 저장되는 것을 특징으로 하는 에뮬레이션 방지 바이트 제거 장치.
  3. 제 2 항에 있어서,
    상기 제1 및 제2 스트림 데이터 각각은 복수의 바이트들을 포함하는 것을 특 징으로 하는 에뮬레이션 방지 바이트 제거 장치.
  4. 제 3 항에 있어서,
    상기 제1 스트림 데이터와 제2 스트림 데이터는 연속된 데이터인 것을 특징으로 하는 에뮬레이션 방지 바이트 제거 장치.
  5. 제 4 항에 있어서,
    상기 쉬프터는,
    상기 제1 및 제2 스트림 데이터에 포함된 상기 에뮬레이션 방지 바이트를 제거한 후 제1 및 제2 스트림 데이터의 나머지 바이트들을 왼쪽으로 쉬프트하여 상기 출력 스트림 데이터를 생성하는 것을 특징으로 하는 에뮬레이션 방지 바이트 제거 장치.
  6. 제 5 항에 있어서,
    상기 쉬프터로부터 출력되는 상기 출력 스트림 데이터를 저장하기 위한 제 3 버퍼를 더 포함하는 것을 특징으로 하는 에뮬레이션 방지 바이트 제거 장치.
  7. 제 6 항에 있어서,
    상기 제 3 버퍼는,
    상기 출력 스트림 데이터의 일부를 저장하는 것을 특징으로 하는 에뮬레이션 방지 바이트 제거 장치.
  8. 제 6 항에 있어서,
    상기 제 3 버퍼는,
    상기 출력 스트림 데이터의 최하위 2 바이트를 저장하는 것을 특징으로 하는 에뮬레이션 방지 바이트 제거 장치.
  9. 제 6 항에 있어서,
    상기 검사기는,
    상기 제1 및 제2 버퍼들에 저장된 상기 제1 및 제2 스트림 데이터와 상기 제3 버퍼에 저장된 상기 출력 스트림 데이터를 입력받아서 상기 에뮬레이션 방지 바이트가 포함되어 있는 지를 검사하고, 상기 검사 신호를 출력하는 것을 특징으로 하는 에뮬레이션 방지 바이트 제거 장치.
  10. 제 5 항에 있어서,
    상기 쉬프터에 의해서 생성된 상기 출력 스트림 데이터 중 상기 제1 스트림 데이터의 시작 위치를 나타내는 포인트 값을 출력하는 포인터를 더 포함하는 것을 특징으로 하는 에뮬레이션 방지 바이트 제거 장치.
  11. 제 10 항에 있어서,
    상기 포인터는,
    상기 쉬프터에 의해서 상기 에뮬레이션 방지 바이트가 제거될 때마다 상기 포인트 값을 증가시키는 것을 특징으로 하는 에뮬레이션 방지 바이트 제거 장치.
  12. 제 1 항에 있어서,
    상기 쉬프터는,
    워드 단위로 상기 출력 스트림 데이터를 출력하는 것을 특징으로 하는 에뮬레이션 방지 바이트 제거 장치.
  13. 제 12 항에 있어서,
    상기 워드 단위는 4 바이트인 것을 특징으로 하는 에뮬레이션 방지 바이트 제거 장치.
  14. 비디오 디코더를 위한 에뮬레이션 방지 바이트를 제거하는 장치에 있어서:
    제1 스트림 데이터를 저장하기 위한 제1 버퍼와;
    제2 스트림 데이터를 저장하기 위한 제2 버퍼와;
    제 3 스트림 데이터를 저장하기 위한 제3 버퍼와;
    상기 제1 내지 제3 버퍼들에 저장된 상기 제1 내지 제3 스트림 데이터를 입력받아서 상기 에뮬레이션 방지 바이트가 포함되어 있는 지를 검사하고, 검사 신호를 출력하는 검사기; 그리고
    상기 검사 신호에 응답해서 상기 제1 및 제2 버퍼에 저장된 상기 제1 및 2 스트림 데이터에서 상기 에뮬레이션 방지 바이트를 제거하고, 포인트 값이 지정하는 위치부터 소정 크기의 출력 스트림 데이터를 출력하는 쉬프터; 그리고
    상기 포인트 값을 출력하는 포인터를 포함하며;
    상기 출력 스트림 데이터는 상기 제3 스트림 데이터로서 상기 제3 버퍼에 저장되는 것을 특징으로 하는 에뮬레이션 방지 바이트 제거 장치.
  15. 제 14 항에 있어서,
    상기 제2 버퍼에 저장된 상기 제2 스트림 데이터는 상기 제1 스트림 데이터로서 상기 제1 버퍼로 이송되고,
    외부로부터 입력되는 스트림 데이터는 상기 제2 스트림 데이터로서 상기 제2 버퍼에 저장되는 것을 특징으로 하는 에뮬레이션 방지 바이트 제거 장치.
  16. 제 15 항에 있어서,
    상기 제1 및 제2 스트림 데이터 각각은 복수의 바이트들을 포함하는 것을 특징으로 하는 에뮬레이션 방지 바이트 제거 장치.
  17. 제 16 항에 있어서,
    상기 제1 스트림 데이터와 제2 스트림 데이터는 연속된 데이터인 것을 특징으로 하는 에뮬레이션 방지 바이트 제거 장치.
  18. 제 17 항에 있어서,
    상기 쉬프터는,
    상기 제1 및 제2 스트림 데이터에 포함된 상기 에뮬레이션 방지 바이트를 제거한 후 제1 및 제2 스트림 데이터의 나머지 바이트들을 왼쪽으로 쉬프트하여 상기 출력 스트림 데이터를 생성하는 것을 특징으로 하는 에뮬레이션 방지 바이트 제거 장치.
  19. 제 18 항에 있어서,
    상기 제 3 버퍼는,
    상기 출력 스트림 데이터의 최하위 2 바이트를 상기 제3 스트림 데이터로서 저장하는 것을 특징으로 하는 에뮬레이션 방지 바이트 제거 장치.
  20. 제 18 항에 있어서,
    상기 검사기는,
    상기 제1 및 제2 버퍼들에 저장된 상기 제1 및 제2 스트림 데이터와 상기 제3 버퍼에 저장된 상기 출력 스트림 데이터를 입력받아서 상기 에뮬레이션 방지 바이트가 포함되어 있는 지를 검사하고, 상기 검사 신호를 출력하는 것을 특징으로 하는 에뮬레이션 방지 바이트 제거 장치.
  21. 삭제
  22. 제 14 항에 있어서,
    상기 포인터는,
    상기 쉬프터에 의해서 상기 에뮬레이션 방지 바이트가 제거될 때마다 상기 포인트 값을 증가시키는 것을 특징으로 하는 에뮬레이션 방지 바이트 제거 장치.
KR1020070019787A 2007-02-27 2007-02-27 비디오 디코더를 위한 에뮬레이션 방지 바이트 제거 장치 KR100841338B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070019787A KR100841338B1 (ko) 2007-02-27 2007-02-27 비디오 디코더를 위한 에뮬레이션 방지 바이트 제거 장치
US12/071,831 US8867900B2 (en) 2007-02-27 2008-02-27 Emulation prevention byte removers for video decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070019787A KR100841338B1 (ko) 2007-02-27 2007-02-27 비디오 디코더를 위한 에뮬레이션 방지 바이트 제거 장치

Publications (1)

Publication Number Publication Date
KR100841338B1 true KR100841338B1 (ko) 2008-06-26

Family

ID=39717263

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070019787A KR100841338B1 (ko) 2007-02-27 2007-02-27 비디오 디코더를 위한 에뮬레이션 방지 바이트 제거 장치

Country Status (2)

Country Link
US (1) US8867900B2 (ko)
KR (1) KR100841338B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9014259B2 (en) 2010-12-21 2015-04-21 Samsung Electronics Co., Ltd. Apparatus and method for sequentially parsing bitstreams based on removal of emulation prevention byte

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120163471A1 (en) * 2010-12-23 2012-06-28 Qualcomm Incorporated Variable length coding of video block coefficients
US9490839B2 (en) 2011-01-03 2016-11-08 Qualcomm Incorporated Variable length coding of video block coefficients
US9516316B2 (en) 2011-06-29 2016-12-06 Qualcomm Incorporated VLC coefficient coding for large chroma block
US9338456B2 (en) 2011-07-11 2016-05-10 Qualcomm Incorporated Coding syntax elements using VLC codewords
US9854261B2 (en) 2015-01-06 2017-12-26 Microsoft Technology Licensing, Llc. Detecting markers in an encoded video signal
US10271069B2 (en) 2016-08-31 2019-04-23 Microsoft Technology Licensing, Llc Selective use of start code emulation prevention

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003080788A (ja) 2001-09-10 2003-03-19 Ricoh Co Ltd 画像形成装置
KR20040075956A (ko) * 2002-01-22 2004-08-30 마이크로소프트 코포레이션 시작 코드 에뮬레이션 방지 및 데이터 스터핑 방법 및시스템
KR20050113501A (ko) * 2004-05-29 2005-12-02 삼성전자주식회사 에이치 264 비디오 디코더를 위한 구문 분석기

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4448334B2 (ja) 2002-04-19 2010-04-07 マイクロソフト コーポレーション バイト整列されていない(non−byte−alignedpositions)のポジション、および/またはビット・シフトされたポジション(bit−siftedpositions)を含む位置におけるスタート・コード・エミュレーションを防ぐための方法およびシステム
US7436328B2 (en) 2003-07-09 2008-10-14 Texas Instruments Incorporated Video coding with start code emulation prevention
US20060013318A1 (en) * 2004-06-22 2006-01-19 Jennifer Webb Video error detection, recovery, and concealment
US7974307B2 (en) * 2006-11-30 2011-07-05 Vestel Elektronik Sanayi Ve Ticaret A.S. Methods and apparatus for data decoding/encoding and for searching for/inserting stuffing bytes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003080788A (ja) 2001-09-10 2003-03-19 Ricoh Co Ltd 画像形成装置
KR20040075956A (ko) * 2002-01-22 2004-08-30 마이크로소프트 코포레이션 시작 코드 에뮬레이션 방지 및 데이터 스터핑 방법 및시스템
KR20050113501A (ko) * 2004-05-29 2005-12-02 삼성전자주식회사 에이치 264 비디오 디코더를 위한 구문 분석기

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9014259B2 (en) 2010-12-21 2015-04-21 Samsung Electronics Co., Ltd. Apparatus and method for sequentially parsing bitstreams based on removal of emulation prevention byte
KR101861621B1 (ko) * 2010-12-21 2018-05-30 삼성전자주식회사 에뮬레이션 방지 바이트 제거에 기초하여 순차적으로 비트 스트림을 파싱하는 장치 및 방법

Also Published As

Publication number Publication date
US20080209180A1 (en) 2008-08-28
US8867900B2 (en) 2014-10-21

Similar Documents

Publication Publication Date Title
KR100841338B1 (ko) 비디오 디코더를 위한 에뮬레이션 방지 바이트 제거 장치
US6026506A (en) Concealing errors in transport stream data
KR0137701B1 (ko) 엠피이지-2(mpeg-2) 시스템의 피이에스(pes) 패킷화 장치
US6181706B1 (en) Common buffer for multiple streams and control registers in an MPEG-2 compliant transport register
JP3693702B2 (ja) 逆トランスポート・プロセッサに関する媒体エラー・コード発生器
JPH11252062A (ja) 通信方式における信号の同期化および巡回冗長検査を効率的に実行する方法および装置
US6088357A (en) Auxiliary transport assist processor especially for an MPEG-2 compliant decoder
US9872062B1 (en) Enforcing synchronization by embedding audio within video frame data
KR20010024033A (ko) 코드화된 데이터를 디멀티플렉스하는 장치
JP2008034905A (ja) デジタル伝送装置及び方法
JP2008108100A (ja) 音声データ処理装置
US9172995B2 (en) Transcoding device, transcoding method and program thereof
JP2007124495A (ja) ストリームデータ処理装置
JP2007124639A (ja) データパケットを記憶するための方法及びシステム
US7778475B2 (en) Motion picture processing device
KR20160008011A (ko) 초고해상도 영상 처리를 위한 장치
US8331459B2 (en) Method and apparatus for smooth digital media playback
JP2010239433A (ja) 映像符号化装置、方法及びプログラム
JP5187134B2 (ja) 信号処理装置及び信号処理方法
KR100375830B1 (ko) 피씨알 지터 제거장치 및 방법
KR0147122B1 (ko) 엠펙2의 트랜스포트 디코더 장치
KR100582033B1 (ko) 디지털 신호처리 프로세서와 메모리간의 데이터 운용 장치및 운용 방법
KR100266172B1 (ko) 고선명 텔레비젼(hdtv)의 에러 처리장치
KR950013876B1 (ko) 가변장 부호 복호기의 에러처리장치
KR100421833B1 (ko) 엠펙2비디오디코더의화면스킵장치및방법

Legal Events

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

Payment date: 20130531

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140530

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150601

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee