KR100767611B1 - 영상 처리 장치 및 방법 및 매체 - Google Patents

영상 처리 장치 및 방법 및 매체 Download PDF

Info

Publication number
KR100767611B1
KR100767611B1 KR1020007014148A KR20007014148A KR100767611B1 KR 100767611 B1 KR100767611 B1 KR 100767611B1 KR 1020007014148 A KR1020007014148 A KR 1020007014148A KR 20007014148 A KR20007014148 A KR 20007014148A KR 100767611 B1 KR100767611 B1 KR 100767611B1
Authority
KR
South Korea
Prior art keywords
data
information
macroblock
screen
slice
Prior art date
Application number
KR1020007014148A
Other languages
English (en)
Other versions
KR20010052823A (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 JP10525599A external-priority patent/JP4029520B2/ja
Priority claimed from JP12264799A external-priority patent/JP4171949B2/ja
Priority claimed from JP15379799A external-priority patent/JP2000348168A/ja
Application filed by 소니 가부시끼 가이샤 filed Critical 소니 가부시끼 가이샤
Publication of KR20010052823A publication Critical patent/KR20010052823A/ko
Application granted granted Critical
Publication of KR100767611B1 publication Critical patent/KR100767611B1/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/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
    • H04N19/423Methods 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 characterised by memory arrangements
    • 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/17Methods 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 an image region, e.g. an object
    • H04N19/172Methods 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 an image region, e.g. an object the region being a picture, frame or field
    • 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/17Methods 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 an image region, e.g. an object
    • H04N19/174Methods 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 an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • 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/17Methods 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 an image region, e.g. an object
    • H04N19/176Methods 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 an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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)

Abstract

1매크로 블록이 16×16픽셀(바이트)로 구성되고, 그 매크로 블록을 DRAM 등으로 구성되는 프레임 메모리에 기억시킬 때, 제 1 매크로 블록은 어드레스(0000 내지 0255)에, 제 2 매크로 블록은 어드레스(0256 내지 0512)와 같이, 순차, 오름차순으로 어드레스가 할당되고 기억되어 간다. 이렇게 하여 기억된 매크로 블록은 어드레스 오름차순으로 판독된다.
매크로 블록, 영상 처리 장치, 수직 화소수 추정 수단, 시퀀스 헤더 정보, 매크로 블록 어드레스 인크리먼트

Description

영상 처리 장치 및 방법 및 매체{Video processing device and method, and medium}
본 발명은 영상 처리 장치 및 방법 및 매체에 관한 것으로서, 특히, 압축된 영상 신호를 복호할 때에 사용하기 적합한 영상 처리 장치 및 방법 및 매체에 관한 것이다.
최근, MPEG(Moving Picture Experts Group)(2)로 대표되는 영상 압축 기술이 진보하여, 각종 분야에서 이용되고 있다. 이 MPEG2에서 인코드된 영상 데이터를 디코드할 경우, 그 디코드는 매크로 블록마다 행해진다. 그 매크로 블록마다 디코드된 영상 데이터를 프레임 메모리에 격납할 때, 그 영상 데이터의 메모리 어드레스는 화면 표시 순으로 할당된다. 즉, 도 1a에 도시하는 바와 같은 16×16픽셀로 구성되는 Y매크로 블록이 720×480픽셀로 이루어지는 화면의 경우, 도 1b에 도시하는 바와 같이, 프레임 메모리 내에는, 가로로 45개, 세로로 30개 나열한 상태로 기억된다.
이렇게 메모리 어드레스를 할당, 기억시킬 경우, 이 프레임 메모리에 기억되어 있는 영상 데이터에 기초하여, 화면에 표시시킬 때, 적합한 어드레스의 할당이다. 예를 들면, 도 1a에 도시한 프레임 메모리에 있어서, 화면 최상부의 1라인이 표시될 때, 어드레스의 0000 내지 0719(720픽셀분 데이터)까지, 연속하여 판독하는 것이 가능하기 때문에, 페이지 미스 히트 발생을 최소한으로 억제하는 것이 가능해진다. 여기서, 페이지 미스란 DRAM(Dynamic Random Access Memory) 등의 메모리에 있어서 구비되어 있는 센스 앰플리파이어를 프리 챠지하기 위해 필요한 시간(따라서, 프리 챠지하고 있는 동안은 데이터 판독 등의 처리는 행할 수 없다)이다.
그런데, 프레임 메모리에는 일반적으로 DRAM이 사용된다. DRAM은 로우(row)와 칼럼(column)으로 구성되며, 1개의 로우는 256(512 등의 경우도 있다)×8칼럼으로 이루어지는 소자로 구성되어 있다. 이 축전 소자 중, 8비트 소자는 외부 단자를 8핀 구비하며, 16비트 소자는 외부 단자를 16핀 구비한다. 이것은 1클록으로 출력할 수 있는 비트수를 나타내며, 8비트 소자에서는, 1클록으로 8비트 출력되며, 16비트 소자에서는, 1클록으로 16비트 출력된다. 그리고, 동일 로우 내에서는, 연속하여 데이터를 추출하는 것이 가능하다. 즉, 8비트 소자에 있어서는, 1로우에 256×8비트의 데이터가 축전되어 있기 때문에, 256클록분의 데이터(256바이트분의 데이터)를 연속하여 판독할 수 있다.
비디오 디코더 등에 있어서는, 프레임 메모리에 기억되는 영상 데이터는 매크로 블록 단위로 송신되며, 디코드하는 순서도 매크로 블록 순으로 된다. 1개의 Y매크로 블록은 1라인이 16픽셀(따라서, 16바이트)로, 16라인으로 구성되어 있다. 그 때문에, 예를 들면, 1번째의 Y매크로 블록의 경우, 제 1 라인은 어드레스(0000 내지 0015), 제 2 라인은 어드레스(0720 내지 0735), 제 3 라인은 어드레스(1440 내지 1455)라는 상태로 어드레스가 분할되고(일련의 어드레스가 아니라) 기억되어 있다.
또, MPEG 방식의 스트림으로부터 디지털 비디오 신호의 스트림을 복호할 경우, 우선, 디코드 장치 내의 해석부에 있어서, 시퀀스 헤더(Sequence_Header)를 검출하는 처리가 행해진다. 이것은 시퀀스 헤더를 검출하지 않으면, 화면 사이즈나 어스팩트비를 특정할 수 없기 때문이다.
즉, MPEG 스트림에서는, SDTV(Standard Definition Television) 화면이나 HDTV(High Definition Television) 화면이 보내질 경우가 있다. 예를 들면, 디지털 위성 방송에서는, 1개의 채널에서, SDTV의 화면 프로그램과 HDTV의 화면 프로그램이 다중화되어 방송될 경우가 있다. 또, SDTV의 화면 프로그램 채널과 HDTV의 화면 프로그램 채널이 전환될 경우가 있다.
MPEG 스트림을 복호할 경우에는, 우선, 화면 사이즈나 어스팩트비를 설정할 필요가 있다. MPEG 방식에서는, 최상위 계층으로서, 시퀀스층이 정해져 있다. 1개의 시퀀스에서는, 화면 사이즈나 픽처 레이트가 동일하게 되어 있다. 그리고, 각 시퀀스 선두에서는, 시퀀스 헤더가 보내져 온다. 이 시퀀스 헤더에는 화면 사이즈나 어스팩트비, 픽처 레이트 등이 기술되어 있다.
이 때문에, 종래에서는, MPEG 방식의 비트 스트림을 디코드할 경우에는, 우선, 화면 사이즈나 어스팩트비를 설정하기 때문에, 시퀀스 헤더가 검출된다. 그리 고, 시퀀스 헤더로부터 화면 사이즈나 어스팩트비가 설정된 후에, 처음의 필드 내 또는 프레임 내 부호화된 픽처로부터 복호가 개시된다.
1로우에 기억되어 있는 데이터를 추출한 후, 다음 로우로 옮겨, 그 로우에 기억되어 있는 데이터를 판독할 때까지는, 프리 챠지를 위한 약 6클록을 기다려야만 한다. 이렇게, 다른 로우에 격납되어 있는 데이터를 판독하기 위해 필요시되는 프리 챠지는 상술한 바와 같이, 페이지 미스라 호칭된다. 상술한 8비트 소자에서는, 256클록마다(256바이트의 데이터를 추출할 때마다), 16비트 소자에서는, 128클록마다 페이지 미스가 발생하게 된다. 이렇게, 1클록으로 추출할 수 있는 데이터량이 커지면, 페이지 미스의 발생 회수(발생 주기)도 적어지는 것을 알 수 있다.
도 1b에 도시한 바와 같이, 영상 데이터가 기억되며, 어드레스(0000 내지 0719)까지 판독하여 제 1 수평 라인을 표시시키고, 어드레스(0720 내지 1439)까지 판독하여 제 2 수평 라인을 표시시키며, 이런 식으로 1라인씩 판독 표시시킬 경우, 8비트 소자에서는, 256바이트마다에 페이지 미스가 발생한다. 페이지 미스는 로스 타임이 되기 때문에, 되도록이면 발생하지 않도록 하는 것이 메모리(DRAM) 능력을 최대한으로 인출하게 된다.
한편, 상술한 비디오 레코더의 경우, 매크로 블록 단위로 기억되어, 매크로 블록 단위로 판독된다. 또, 상술한 바와 같이 1개의 Y매크로 블록은 16라인으로 구성되어 있기 때문에, 1라인을 판독할 때마다, 페이지 미스가 발생하게 된다. 즉, 1개의 Y매크로 블록을 판독할 때마다, 16회의 페이지 미스가 발생하게 된다. 또, 크로마(Cb, Cr)에 있어서는, 1매크로 블록에는 1라인이 8바이트로, 8라인으로 구성되어 있기 때문에, 1개의 Cb(Cr) 매크로 블록을 판독할 때마다, 8회의 페이지 미스가 발생하게 된다.
프레임 메모리에 16비트 소자를 사용한 경우, 1클록에 16비트(2바이트)의 데이터를 출력할 수 있기 때문에, Y매크로 블록에 있어서는, 8클록에 1회의 비율로 페이지 미스가 발생하고, Cb매크로 블록과 Cr매크로 블록에 있어서는, 각각, 4클록에 1회의 비율로 페이지 미스가 발생하게 된다. 따라서, Y매크로 블록의 1라인 판독하는 데 8클록(Y매크로 블록의 1라인은 16바이트로 구성되어 있다)이 필요하며, 1개의 Y매크로 블록을 판독하기 위해서는, 8×16클록(1개의 Y매크로 블록은 16라인으로 구성되어 있다)이 필요하다.
이에 대해, 1회의 페이지 미스에 6클록의 시간이 소비되는 것으로 하여, 그 페이지 미스에 의한 로스 타임은 1개의 Y매크로 블록을 판독할 경우, 16회의 페이지 미스가 발생한다는 것이기 때문에, 6×16클록인 것을 알 수 있다. 이것은 1개의 Y매크로 블록을 판독하기 위한 시간 8×16클록과 비교하여, 페이지 미스의 비율이 꽤 많은, 바꾸어 말하면, 로스 타임이 큰 것을 도시하고 있다. 또, 크로마의 매크로 블록에 대해서도 마찬가지로, 데이터를 판독하기 위한 시간에 대한 로스 타임 비율이 크다.
페이지 미스는 동작 보상에 의한 디코드를 행할 때에도 발생한다. 즉, 디코드하는 매크로 블록에 부수하는 동작 백터에 의해, 프레임 메모리의 임의의 위치로부터 1매크로 블록분의 영상 데이터를 추출하지만, 상술한 경우와 동일하게, 매크로 블록의 1라인을 판독할 때마다 어드레스가 1라인분 이동하기 때문에, 페이지 미 스가 발생한다. DRAM 등의 능력을 최대로 인출하고 싶은 경우, 페이지 미스와 같은 로스 타임은 가능한 한 작게 억제하는 것이 필요하다는 과제가 있었다.
본 발명은 이러한 상황에 비추어 이루어진 것으로, 본 발명의 목적은 매크로 블록의 영상 데이터에 오름차순으로 어드레스를 할당 기억시키도록 함으로써, 페이지 미스 발생을 억제함에 있다.
또, MPEG 스트림 복호를 행할 경우에는, 우선, 시퀀스 헤더가 검출되고, 화면 사이즈나 어스팩트비가 설정되어 있다. 그런데, 시퀀스 헤더를 검출하고나서 MPEG 스트림 복호를 행하는 것으로는, 시퀀스 헤더를 검출하는 데 시간이 걸려, 재생이 개시될 때까지 꽤 대기 시간이 필요해진다는 문제가 있다.
즉, MPEG 방식의 시퀀스층은 화면 사이즈나 픽처 레이트가 동일해지는 스트림이다. 시퀀스 헤더는 최소로 GOP(Group 0f Picture) 주기로 설치할 수 있지만, 시퀀스 헤더 주기는 정해져 있지 않다. 따라서, 시퀀스 길이는 최대로는, 1비디오 프로그램에 미치게 된다. 이 때문에, 종래에는, 예를 들면, 위성 방송 채널을 전환했을 때에는, 시퀀스 헤더를 검출하는 데 시간이 걸려, 재생이 개시될 때까지, 꽤 대기 시간이 필요해지는 경우가 있다.
본 발명의 다른 목적은 MPEG 스트림의 시퀀스 헤더 정보가 검출되지 않을 때에는, 시퀀스 헤더 정보를 추정하여 디코드인지 개시시킴으로써, MPEG 스트림을 즉시 디코드할 수 있도록 한 영상 처리 장치 및 방법을 제공함에 있다.
본 발명에 따르는 영상 처리 장치는 매크로 블록 단위의 영상 데이터를 입력하는 입력 수단과, 입력 수단에 의해 입력된 영상 데이터에 오름차순으로 어드레스를 할당하여 기억하는 기억 수단과, 기억 수단에 기억된 영상 데이터를 어드레스 오름차순으로 판독하는 판독 수단을 포함하는 것을 특징으로 한다.
본 발명에 따르는 영상 처리 방법은 매크로 블록 단위의 영상 데이터를 입력하는 입력 단계와, 입력 단계에서 입력된 영상 데이터에 오름차순으로 어드레스를 할당하여 기억하는 기억 단계와, 기억 단계에서 기억된 영상 데이터를 어드레스 오름차순으로 판독하는 판독 단계를 포함하는 것을 특징으로 한다.
본 발명에 따르는 매체의 프로그램은 매크로 블록 단위의 영상 데이터를 입력하는 입력 단계와, 입력 단계에서 입력된 영상 데이터에, 오름차순으로 어드레스를 할당하여 기억하는 기억 단계와, 기억 단계에서 기억된 영상 데이터를 어드레스 오름차순으로 판독하는 판독 단계로 이루어지는 것을 특징으로 한다.
본 발명에 따르는 영상 처리 장치, 영상 처리 방법 및 매체에 있어서는, 입력된 매크로 블록 단위의 영상 데이터에 오름차순으로 어드레스가 할당되고 기억되며, 기억된 영상 데이터가 어드레스 오름차순으로 판독된다.
본 발명에 따르는 영상 처리 장치는 시퀀스층과 GOP층과 픽처층과 슬라이스층과 매크로 블록층과 블록층으로 이루어지는 계층 구조의 비디오 스트림을 복호하는 영상 처리 장치에 있어서, 픽처 내에 반드시 나타나는 정보에 기초하여 시퀀스 헤더 정보를 추정하는 시퀀스 헤더 정보 추정 수단과, 시퀀스 헤더가 검출되지 않을 때에는, 헤더 정보 추정 수단으로 추정된 정보를 사용하여 비디오 데이터를 복호하는 복호 수단을 구비하는 것을 특징으로 한다.
슬라이스 스타트 코드(Slice_Start_Code)의 4바이트번째는 슬라이스의 수직 위치를 도시하고 있다. 따라서, 슬라이스 스타트 코드(Slice_Start_Code)의 4바이트번째 검출하면, 화면의 수직 방향의 화소수가 구해진다. 또, 매크로 블록 어드레스 인크리먼트(Macroblock_Address_Increment)는 매크로 블록의 스킵 정보를 도시하고 있다. 따라서, 매크로 블록을 복호할 때마다 매크로 블록 어드레스 인크리먼트를 축적해 가면, 화면의 수평 방향의 매크로 블록수가 구해진다. 이것에, 매크로 블록의 크기를 승산하면, 화면의 수평 방향 화소수가 구해진다.
이렇게 하여 추정된 정보를 사용하여 MPEG 스트림 복호를 행하도록 하면, 시퀀스 헤더를 검출하지 않아도, 즉시, MPEG 스트림 복호를 행할 수 있다.
도 1a 및 도 1b는 종래의 영상 데이터의 기억 방법에 대해서 설명하는 도면.
도 2는 본 발명을 적용한 영상 처리 장치의 한 실시예의 구성을 도시하는 블록도.
도 3은 도 2의 디코드부(12)의 상세한 구성을 도시하는 블록도.
도 4는 본 발명의 영상 데이터의 기억 방법에 대해서 설명하는 도면.
도 5는 본 발명의 영상 데이터의 기억 방법에 대해서 설명하는 도면.
도 6은 예측 매크로 블록 판독에 대해서 설명하는 도면.
도 7은 본 발명이 적용된 MPEG 디코드 장치의 일례인 블록도.
도 8은 MPEG 방식의 계층 구조 설명에 사용하는 개략선도.
도 9는 슬라이스 설명에 사용하는 개략선도.
도 10은 수평 방향의 화면 사이즈의 추정 회로 구성을 도시하는 기능 블록도.
도 11은 매크로 블록 설명에 사용하는 개략선도.
도 12는 수직 방향 화면 사이즈의 추정 회로 구성을 도시하는 기능 블록도.
도 13은 오디오 디코더(100)의 한 실시예의 구성을 도시하는 블록도.
도 14는 메시지 송신 프로그램으로부터 디코드 프로그램에 송신되는 메시지 예를 설명하기 위한 도면.
도 15a 및 도 15b는 메모리(114)의 더미 블록(131)과 BBB 체인(132)을 설명하기 위한 도면.
도 16은 디코더(100)의 처리 동작을 설명하기 위한 플로 챠트.
도 17a 내지 도 17c는 매체를 설명하는 도면.
도 2는 MPEG2 방식으로 부호화(인코드)된 데이터를 복호(디코드)하는 영상 처리 장치 구성을 도시하는 블록도이다. 튜너(1)에 의해 수신된 영상 데이터는 복조 처리부(2)에 있어서, 복조 처리되며, 오류 정정 처리부(3)에 의해 오류 정정 처리된다. 더욱이, 오류 정정 처리된 영상 데이터는 소프트웨어 처리부(4)에 보내진다. 이 소프트웨어 처리부(4)는 도시되어 있지 않은 CPU(Central Processing Unit)에 의해 실행되는 소프트웨어 프로그램에 의해 구성된다. 소프트웨어 처리부(4)의 디멀티플렉서부(11)는 입력된 데이터를 채널마다 영상 데이터와 오디오 데이터에 디멀티플렉스한다. 디멀티플렉스된 영상 데이터는 디코드부(12)에 있어서, MPEG 방식으로 디코드된다.
디코드부(12)의 출력은 표시 처리부(13)에 있어서, 예를 들면, 하이비젼으로 대표되는 고품위 텔레비젼 신호로부터, NTSC(National Television System Committee) 방식의 텔레비젼 신호로 주사선수 변환된다. 또, 컨트롤러(14)는 디코드부(12) 외에, 소프트웨어 처리부(4)의 각 부를 제어함과 동시에, 영상 데이터 처리에 관한 것이며, 캐시 메모리(7)를 수시 사용한다. DMAC(Direct Memory Access Controller)(6)는 캐시 메모리(7)로부터 프레임 메모리(5)로의 DMA 전송을 제어한다. 프레임 메모리(5)는 예를 들면, DRAM으로 구성되며, 기억된 영상 데이터는 도시되어 있지 않은 영상 표시 장치에 출력된다.
도 3은 도 2에 도시한 디코드부(12)의 보다 상세한 구성을 도시한 블록도이다. 디멀티플렉서부(11)로부터 출력된 영상 데이터는 디코드부(12)의 가변 길이 복호부(31)에 입력된다. 가변 길이 복호부(31)는 입력된 영상 데이터를 가변 길이 복호 처리하고, 양자화 단계와 영상 데이터를 역양자화부(32)에, 동작 벡터를 동작 보상 예측부(35)에 각각 출력한다. 역양자화부(32)는 가변 길이 부호화부(31)로부터 공급된 양자화 단계에 기초하여, 가변 길이 부호 처리된 영상 데이터를 역양자화 한다. 역양자화된 영상 데이터는 컨트롤러(14)를 개재시켜, 캐시 메모리(7)에 격납된다.
인트라 매크로 블록의 경우, 역DCT 변환부(33)에서 역DCT 변환 처리된 영상 데이터는 그대로 캐시 메모리(7)에 전송되어 격납된다. 논인트라 매크로 블록의 경우, 동작 보상 예측부(35)는 가변 길이 복호부(31)로부터 공급되는 동작 벡터와, 프레임 메모리(5)에 기억되어 있는 참조 영상을 사용하여, 예측 매크로 블록을 연산하여, 그 영상 데이터가 캐시 메모리(7)에 기억된다. 연산기(34)는 역DCT 변환부(33)로부터 공급되는 영상 데이터(차분 데이터)와 캐시 메모리(7)로부터 공급되는 예측 매크로 블록을 가산하여, 디코드 영상 데이터로 하여, 캐시 메모리(7)에 전송한다. 그리고, 캐시 메모리(7)에 기억된 영상 데이터는 DAMC(6) 제어에 기초하여, 프레임 메모리(5)에 DMA 전송된다.
다음으로, 도 2에 도시한 영상 복호 장치 동작에 대해서 설명한다. 튜너(1)가 영상 데이터를 수신하여, 복조 처리부(2)에 그 영상 데이터를 출력한다. 영상 데이터를 입력한 복조 처리부(2)는 입력한 영상 데이터를 복조 처리하여, 오류 정정 처리부(3)에 출력한다. 오류 정정 처리부(3)는 입력된 복조 처리된 영상 데이터의 오류 정정 처리를 행하여, 소프트웨어 처리부(4)에 출력한다. 소프트웨어 처리부(4)는 입력된 영상 데이터를 우선 디멀티플렉서부(11)에 의해, 채널마다 영상 데이터와 오디오 데이터에 디멀티플렉스하여, 디코드부(12)에 출력한다.
디코드부(12)는 컨트롤러(14)에 의해 제어되며, 캐시 메모리(7)와 프레임 메모리(5)를 수시 사용하여, 영상 데이터를 디코드하며, 디코드한 영상 데이터를 표시 처리부(13)에 출력한다. 표시 처리부(13)는 디코드된 영상 데이터를 주사선수변환 처리하여, 프레임 메모리(5)에 격납한다. 그리고, 프레임 메모리(5)에 기억 된 영상 데이터는 주사선수 변환 처리된 영상 데이터를 도시되어 있지 않은 영상 표시 장치 등에 출력된다.
도 3에 도시한 디코드부(12)의 프레임 메모리(5)로의 영상 데이터 기록에 대해서 설명한다. 프레임 메모리(5)로의 데이터 기록이나, 프레임 메모리(5)로부터의 데이터 판독은 매크로 블록 단위로 행해진다. 1개의 Y매크로 블록은 16×16픽셀로 구성되어 있기 때문에, 256바이트 데이터로 구성되어 있게 된다. 또, Cb매크로 블록과 Cr매크로 블록은 각각, 64(=8×8)바이트로 구성되어 있다. 그래서, Y매크로 블록은 도 4에 도시하는 바와 같이, 제일 처음에 판독되는 화면 상에서 제일 위의 좌측에 위치하는 Y매크로 블록을 프레임 메모리(5)의 어드레스(0000 내지 0255)에, 그 다음에 판독되는 Y매크로 블록을 어드레스(0256 내지 0511)에, 더욱이 그 다음에 판독되는 Y매크로 블록을 어드레스(0512 내지 0768)와 같이, 순차, 연속한 어드레스가 오름차순으로 할당되어 기억된다.
마찬가지로, Cb매크로 블록과 Cr매크로 블록의 크로마 매크로 블록은 각각, 도 5에 도시하는 바와 같이, 제일 처음에 판독되는 크로마 매크로 블록이 어드레스(0000 내지 0063)에, 다음에 판독되는 크로마 매크로 블록이 어드레스(0064 내지 0128)와 같이, 순차, 연속한 어드레스가 오름차순으로 할당되어 기억된다.
이렇게 매크로 블록 단위의 영상 데이터를 기억함으로써, 페이지 미스는 1개의 매크로 블록 판독에 있어서는, Y매크로 블록도 Cb(Cr) 매크로 블록 양쪽 모두, 1회도 발생하지 않는다. 즉, 페이지 미스는 판독 대상으로 되어 있는 로우를 전환 할 때에 발생하며, 1로우는 256바이트(이하, 적당히, 이 256바이트를 1페이지라 칭하며, 이 단위마다의 단락을 페이지 단락이라 칭한다)로 구성되어 있기 때문에, 적어도, 256바이트 판독마다 발생하게 되는 것이지만, 상술한 바와 같이, 데이터를 프레임 메모리(5)에 기억시키면, Y매크로 블록은 1매크로 블록마다 페이지 단락이 발생하며, Cb(Cr) 매크로 블록에 대해서는, 4매크로 블록마다 페이지 단락이 발생하게 된다.
페이지 미스(로스 타임)를 최소한으로 억제하기 위해서는, 로우 전환을 적게 하도록 하면 되기 때문에, 상술한 바와 같이, 데이터를 프레임 메모리(5)에 기억시킴으로써, 로스 타임을 경감시키는 것이 가능해진다.
다음으로, 이렇게 하여, 영상 데이터가 기억되어 있는 프레임 메모리(5)로부터 동작 보상 벡터에 의해, 예측 영상 데이터를 추출하는 경우를 설명한다. 여기서는, Y매크로 블록을 대상으로 한 경우를 예로 들어 설명한다. 1개의 Y매크로 블록은 상술한 바와 같이, 16×16픽셀(16×16바이트)로 구성되어 있다.
도 6은 화면 표시 장치의 화면 상에 표시되는 화면을 상정하여, 매크로 블록(MA_m)으로부터, 예측되는 매크로 블록(MA_n)(디코드되는 매크로 블록)의 위치 관계를 도시한 도면이다. MA_n의 동작 보상 벡터 중, 도면 중, 가로(수평) 방향의 동작 보상 벡터를 벡터(x)로 나타내며, 세로(수직) 방향의 동작 보상 벡터를 벡터(y)로 한다. 이 벡터(x)와 벡터(y)는 매크로 블록(MA_n)을, 매크로 블록(MA_m)의 좌측 상단부로부터 데이터를 추출해야 하는 수평 방향과 수직 방향의 어드레스 오프셋을 결정하기 위한 것이다.
벡터(x)와 벡터(y)와의 위치가 일의로 결정되는 매크로 블록(MA_m)은 도 6에 도시하는 바와 같이, 최대 4개의 매크로 블록에 걸쳐 있는 경우가 상정된다. 이들 4개의 매크로 블록을 좌측 위에서 오른쪽 아래로 순서대로 매크로 블록(MA_0), 매크로 블록(MA_1), 매크로 블록(MA_2) 및 매크로 블록(MA_3)이라 기술하면, 디코드해야 할 매크로 블록(MA_n) 및 벡터(x, y)의 관계는 다음 식에 도시하게 된다.
MA_0=MA_n+x/16+MA_w×y/16
MA_1=MA_0+1
MA_2=MA_0+MA_w
MA_3=MA_0+MA_w+1
···(1)
여기서, x 및 y는 각각 벡터(x, y)의 크기를 도시하며, MA_w는 화면의 수평 방향의 라인 상에 나열하고 있는 매크로 블록 수를 도시한다.
더욱이, 각 매크로 블록(MA_0, MA_1, MA_2, MA_3)의 매크로 블록(MA_m)과 겹치는 부분의 좌측 상단의 어드레스(선두 어드레스)는 다음 식에 따라서 산출된다. 매크로 블록(MA_0, MA_1, MA_2, MA_3)의 선두 어드레스를 각각, 어드레스(ad_0, ad_1, ad_2, ad_3)로 한다.
ad_0=ad_MA_0+x%16+16x(y%16)
ad_1=ad_MA_1+16x(y%16)
ad_2=ad_MA_2+x%16
ad_3=ad_MA_3
···(2)
여기서, ad_MA_0, ad_MA_1, ad_MA_2, ad_MA_3은 각각, 매크로 블록(MA_0, MA_1, MA_2, MA_3)의 선두 어드레스이며, x%16은 벡터(x)의 크기를 16으로 제산했을 때의 나머지를 도시하며, 마찬가지로 y%16는 벡터(y)의 크기를 16으로 제산했을 때의 나머지를 도시한다.
각 매크로 블록(MA_0, MA_1, MA_2, MA_3)의, 매크로 블록(MA_m)과 겹치는 부분과의 수평 데이터수와 수직 라인수는 다음 식에 따라서 산출된다. 다음 식에 있어서, MA_0_h는 매크로 블록(MA_m)과 매크로 블록(MA_0)이 겹치는 부분의 수평 데이터수를 도시하며, MA_0_v는 매크로 블록(MA_m)과 매크로 블록(MA_0)이 겹치는 부분의 수직 라인수를 도시한다. 다른 기술도 동일한 의미를 도시한다.
MA_0_h=16-(x%16), MA_0_v=16-(y%16)
MA_1_h=16_MA_0_h, MA_1_v=MA_0_v
MA_2_h=MA_0_h, MA_2_v=16-MA_0_v
MA_3_h=MA_1_h, MA_3_v=MA_2_v
···(3)
이렇게, 4개의 매크로 블록(MA_0, MA_1, MA_2, MA_3)으로부터 데이터를 추출할 경우, 4회의 페이지 미스가 발생한다. 동일한 매크로 블록(1개의 매크로 블록)으로부터 데이터를 추출할 경우, 페이지 미스는 발생하지 않는다. 즉, 페이지 미스는 최저 0회, 최대 4회 발생할 가능성이 있다.
그렇지만, DRAM 등에서는, 2개의 펑크가 설치되어 있으며, 데이터 기록이나 판독은 그 뱅크를 전환함으로써 행해지고 있다. 매크로 블록에 있어서는, 1수평 라인마다 교대로 다른 뱅크에 기록이 행해진다. 그 때문에, 도 6에 도시한 바와 같이 2개의 뱅크(0)와 뱅크(1)를 사용하여 기록이 행해질 경우, 뱅크(0)로부터 매크로 블록(MA_0)의 1수평 라인의 데이터를 판독, 다음으로 뱅크(1)로부터 매크로 블록(MA_2)의 1수평 라인의 데이터를 판독, 그 다음으로, 뱅크(0)로부터 매크로 블록(MA_1)의 1수평 라인의 데이터를 판독, 그리고 그 다음으로, 뱅크(1)로부터 매크로 블록(MA_3)의 1수평 라인의 데이터를 판독한다는 처리를 반복하도록 한다.
이렇게 뱅크(0)와 뱅크(1)를 전환함으로써 데이터를 판독하도록 하면, 페이지 미스는 발생하지 않는다. 즉, 뱅크(0)와 뱅크(1)는 각각 독립한 센스 앰플리파이어를 구비하고 있기 때문에, 각각 독립으로 액티브한 상태(프리 챠지 상태)로 해 두는 것이 가능하기 때문에, 다른 뱅크에 기억되어 있는 매크로 블록 사이를 연속하여 판독해도(뱅크를 전환함으로써 판독을 행해도), 그 전환에 의한 페이지 미스(로스 타임)는 무시할 수 있다. 따라서, 처음에 매크로 블록(MA_0) 데이터를 판독할 때에 발생하는 페이지 미스만이 로스 타임이 된다.
상술한 설명에 있어서는, 식 (1) 내지 식 (3)에 있어서는, Y매크로 블록 판독의 경우에 대해서 설명했지만, 크로마(Cb, Cr)의 매크로 블록 시는 각 식에 있어서의 16을 8로 하여 산출하면 된다.
이상과 같이, 영상 데이터 기록 및 판독을 행함으로써, 1개의 Y매크로 블록을 판독하는 데 필요한 시간 중, 데이터 전송을 위한 시간은 8×16클록이 되며, 페이지 미스를 위한 로스 타임은 1회의 페이지 미스 시간을 6클록으로 하면, 6×1클 록이 되기 때문에, 데이터 전송을 위한 시간에 대한 페이지 미스에 의한 로스 타임 비율을 감소시키는 것이 가능해진다. 마찬가지로, 1개의 Cb(Cr) 매크로 블록을 판독할 경우에 있어서도, 데이터 전송을 위한 시간에 대한 페이지 미스에 의한 로스 타임 비율을 감소시키는 것이 가능해진다.
다음으로, 영상 표시 장치(도시하지 않는다)에 대해, 영상 데이터를 출력할 때의 처리에 대해서 설명한다. 도 1b에 도시한 바와 같이 매크로 블록 단위에서의 영상 데이터를, 화면 상에서의 데이터 배치와 프레임 메모리 내에서의 데이터 배치가 동일하도록 기억한 경우, 어드레스 오름차순으로 데이터를 판독함으로써, 영상 표시가 행해지고 있었지만, 도 4(도 5)에 도시한 바와 같이, 매크로 블록을 1라인 또는 2라인으로 기억할 경우, 어드레스 오름차순으로 데이터를 판독함으로써, 영상 표시시키는 것은 불가능하다.
바꾸어 말하면, 도 1b에 도시한 바와 같이 영상 데이터를 기억한 경우, 화면 상의 1라인을 표시시키기 위해, 각 매크로 블록으로부터 16픽셀(16바이트)분의 영상 데이터가 판독되는 것이지만, 도 4(도 5)에 도시한 바와 같이 영상 데이터를 기억시킨 경우에 있어서도 마찬가지로, 각 매크로 블록으로부터 16바이트마다의 영상 데이터를 판독해야만 한다. 그렇게 하면, 16바이트 판독할 때마다, 로우를 전환해야만 하여, 그 때마다 페이지 미스가 발생하게 된다. 이러한 부적합함을 없애기 위해, 이하에 도시하는 바와 같이, 어드레스 변환을 행하여, 영상 데이터를 영상 표시 장치에 출력하도록 하면 된다.
도 3에 도시한 캐시 메모리(7)를 일시적인 버퍼로서 사용하여, 1슬라이스분 의 영상 데이터를 프레임 메모리(5)로부터 캐시 메모리(7)로 로드하여, 도 1b에 도시한 바와 같은 메모리 구조(어드레스)로 변환한다. 캐시 메모리(7)에 SRAM(Static RAM)을 사용한 경우, DRAM과 같이, 페이지가 존재하지 않기 때문에, 페이지 미스는 발생하지 않는다.
구체적으로, 도 4에 도시한 바와 같이 Y매크로 블록이 기억되어 있는 상태에서 도 1b에 도시한 바와 같이 Y매크로 블록이 기억되어 있는 상태로 어드레스 변환하는 경우를 설명한다. 도 4에 도시한 바와 같이 영상 데이터가 기억되어 있는 프레임 메모리(7)로부터, 제 1 라인의 영상 데이터로서 어드레스(0000 내지 0015)까지의 영상 데이터를 판독, 캐시 메모리(7)의 어드레스(0000 내지 0015)에 기억시킨다. 다음으로, 제 2 라인의 영상 데이터로서 어드레스(0016 내지 0031)까지의 영상 데이터를 판독, 캐시 메모리(7)의 어드레스(0720 내지 0735)에 기억시킨다. 계속해서, 제 3 라인의 영상 데이터로서 어드레스(0032 내지 0047)까지의 영상 데이터를 판독, 캐시 메모리(7)의 어드레스(1440 내지 1455)에 기억시킨다. 이러한 처리를 반복한다.
이렇게, 프레임 메모리(7)로부터 영상 데이터를 판독할 경우, 판독 자체는 어드레스 오름차순으로 행해지기 때문에, 페이지 미스는 256바이트마다에 밖에 발생하지 않는다. 캐시 메모리(7)에 기억된 영상 데이터는 프레임 메모리(5)에 재전송되어 기억된다. 그리고, 프레임 메모리(5)에 도 1b에 도시한 바와 같이 기억된 영상 데이터는 영상 표시 장치(도시하지 않는다)에 출력된다.
캐시 메모리(7)로부터 프레임 메모리(5)로의 재전송은 1대1의 어드레스 순으 로 행해지기 때문에, 또, 캐시 메모리(7)가 SRAM으로 구성되어 있는 경우는 페이지 미스가 발생하지 않기 때문에, 이 처리에 의한 로스 타임은 발생하지 않는다.
상술한 설명에서는, 캐시 메모리(7)로부터 프레임 메모리(5)로 영상 데이터를 재전송하도록 했지만, 캐시 메모리(7)로부터 프레임 메모리(5)와는 다른 표시용의, 또는 스케일링용 프레임 메모리(DRAM)에 전송되도록 해도 된다.
상술한 바와 같이, 매크로 블록의 영상 데이터 기록 및 판독을 행함으로써, 디코드가 종료한 매크로 블록을 순차 DRAM 등으로 구성되는 프레임 메모리의 동일 페이지에 격납할 수 있기 때문에, DRAM의 버스트 전송 기능을 이용하여 페이지 미스가 발생하는 회수를 감소시켜, 메모리 밴드 폭을 향상하는 것이 가능해진다. 또, 매크로 블록이 프레임 메모리 내의 동일 페이지 내에 격납되어 있기 때문에, 동작 보상 벡터에 의해 참조 매크로 블록을 추출할 경우에 있어서도, DRAM의 버스트 전송을 이용하여, 페이지 미스의 발생 회수를 감소시켜, 메모리 밴드 폭을 향상시키는 것이 가능해진다.
또, 매크로 블록을 프레임 메모리에 격납할 때, 화면의 수평 폭마다 교대로 DRAM의 다른 뱅크로 격납함으로써, 복수 개(최대 4개)의 매크로 블록으로부터 예측 데이터를 추출할 경우에 있어서도, 페이지 미스를 최소로 억제할 수 있으며, 더욱이, 2개의 뱅크로 구성할 수 있기 때문에, 메모리 시스템 구조를 단순화할 수 있어, 용량이 작은(적은) DRAM에서도 실현 가능하기 때문에, 플렉시블성이 풍부하다.
다음으로, MPEG 스트림의 시퀀스 헤더 정보가 검출되지 않을 때에는, 시퀀스 헤더 정보를 추정하여 디코드 개시시킴으로써, MPEG 스트림을 즉시 디코드할 수 있 도록 한 영상 처리 장치에 대해서 설명한다. 도 7은 본 발명이 적용된 영상 처리 장치의 일례를 도시하는 것이다. 도 7에 있어서, 디멀티플렉서(11)로부터의 MPEG 스트림이 MPEG 디코더(12)에 공급됨과 동시에, 시퀀스 헤더 추측 회로(16)에 공급된다. MPEG 디코더(12)는 MPEG 스트림의 복호 처리를 행하는 것이다.
MPEG 디코더(12)에서 MPEG 스트림이 복호되며, MPEG 디코더(12)로부터는 디지털 비디오 데이터의 스트림이 출력된다. MPEG 디코더(12)의 출력이 표시 처리부(13)를 개재시켜, 디스플레이(15)에 공급된다. 이로써, 디스플레이(15)에, MPEG 스트림에 기초하는 화면이 투영된다.
MPEG 디코더(12)에서 MPEG 스트림 복호를 행할 경우에는, 우선, 화면 사이즈나 어스팩트비 등을 설정할 필요가 있다. 이들 정보는 시퀀스 헤더 (Sequence_Header)에 의해 검출할 수 있다. 그런데, 시퀀스 헤더를 검출하는 데 시간이 걸리는 경우가 있다.
그래서, 시퀀스 헤더 추측 회로(16)가 설치된다. 시퀀스 헤더 추측 회로(16)는 픽처마다 반드시 포함되어 있는 정보를 사용하여, 시퀀스 헤더로 보내져 올 정보를 추측하는 것이다.
즉, 시퀀스 헤더에서는, 화면 사이즈나 어스팩트비, 프레임 레이트, VBV 버퍼 사이즈, 양자화 매트릭스 정보 등이 보내진다. 시퀀스 헤더 추측 회로(16)에서는, 슬라이스 정보를 사용하여, 수직 방향의 화면 사이즈가 추측된다. 매크로 블록 정보를 사용하여, 수평 방향의 화면 사이즈가 추측된다. 추측된 수직 방향의 화면 사이즈와 수평 방향의 화면 사이즈를 사용하여, 어스팩트비가 추측된다. DTS/PTS 등의 타임 스탬프에 의해 복호의 타이밍을 암으로써, 프레임 레이트가 추측된다. 시퀀스 헤더 추측 회로(16)의 출력이 MPEG 디코더(12)에 공급됨과 동시에, 표시 처리부(13)에 공급된다.
MPEG 디코더(12)에서 MPEG 스트림 복호를 행할 경우에는, 시퀀스 헤더를 검출할 수 있으면, 이 시퀀스 헤더 정보를 사용하여, 화면 사이즈나 어스팩트비, 프레임 레이트, VBV 버퍼 사이즈, 양자화 매트릭스, 프로그레시브 시퀀스 등이 설정된다.
MPEG 디코더(12)에서 시퀀스 헤더를 검출할 수 없을 때에는, 시퀀스 헤더 추측 회로(16)에서 추측된 화면 사이즈나 어스팩트비, 프레임 레이트, VBV 버퍼 사이즈, 양자화 매트릭스, 프로그레시브 시퀀스 등이 설정된다.
또, MPEG 디코더(12)에서 시퀀스 헤더를 검출할 수 없을 때에는, 시퀀스 헤더 추측 회로(16)에서 추측된 화면 사이즈나 어스팩트비가 표시 처리 회로(13)에 보내지며, 시퀀스 헤더 추측 회로(16)에서 추측된 화면 사이즈나 어스팩트비에 따라, 표시 화면이 설정된다.
이렇게, 본 발명이 적용된 MPEG 복호 장치에서는 시퀀스 헤더 정보를 추측하는 시퀀스 헤더 추측 회로(16)가 설치되어 있으며, 시퀀스 헤더를 검출할 수 없을 때에는, 시퀀스 헤더 추측 회로(16)에서 추측된 화면 사이즈나 어스팩트비를 사용하여 복호 처리가 행해진다. 이 때문에, 예를 들면, 위성 방송에서 채널을 전환했을 때에도, 대기 시간이 거의 없이, 재생을 개시시킬 수 있다.
다음으로, 상술한 시퀀스 헤더 추측 회로(16)의 원리, 구성에 대해서, 구체 적으로 설명한다.
도 8에 도시하는 바와 같이, MPEG의 데이터 구조는 시퀀스층, GOP층, 픽처층, 슬라이스층, 매크로 블록층, 블록층의 계층 구조로 되어 있다.
시퀀스층은 일련의 동일한 속성, 예를 들면, 동일한 화면 사이즈, 동일한 영상 레이트를 갖는 화면 그룹이다. GOP층은 랜덤 액세스 단위가 되는 화면 그룹이다. 픽처층은 1장의 화면에 공통인 속성의 그룹이다. 슬라이스층은 1장의 화면을 세분화한 그룹이다. 매크로 블록층은 슬라이스층을 더욱 세분화한 그룹에서, 동작 벡터 검출 등을 행하기 위한 그룹이다. 블록층은 DCT 변환을 행하기 위한 블록 그 자체이다.
시퀀스 선두에는, 시퀀스 헤더(SH:Sequence_Header)가 설치된다. 이 시퀀스 헤더에는,
(1) Horizontal_Size_Value: 영상의 수평 방향 화소수
(2) Vertical_Size_Value: 영상의 수직 방향 화소수
(3) Aapect_Ratio_Information: 어스팩트비
(4) Frame_Rate_Code: 영상의 표시 주기
(5) VBV_Buffer_Size: 발생 부호량 제어용 가상 버퍼(VBV) 크기
(6) Load_Quantization_Matrix: 매크로 블록용 양자화 매트릭스
(7) Progressive_Sequence: 순차 주사인 것을 도시한다
등이 기술되어 있다.
이 중, 영상의 수직 방향 화소수(Vertical_Size_Value) 정보는 슬라이스 정 보로부터 추정할 수 있다.
즉, 도 9는 1픽처 중의 슬라이스 구성을 도시하는 것이다. 도 9에 도시하는 바와 같이, 1픽처는 복수의 슬라이스로 나누어진다. 1픽처에서의 최상단(Bs=1)의 가장 좌단의 슬라이스는 Slice(1, 0)가 되며, 최상단의 왼쪽으로부터 2번째의 슬라이스는 Slice(1, 1)가 된다. 이하, 마찬가지로, 1픽처에서의 최하단(Bs=N)의 가장 좌단의 슬라이스는 Slice(N, 0)가 되며, 최하단의 왼쪽으로부터 2번째 슬라이스는 Slice(N, 1)가 된다.
이렇게, 슬라이스는 수평 방향으로는 복수 존재 가능하지만, 반드시 픽처의 좌단에서 새로운 슬라이스 ID가 스타트 코드에 갖는 슬라이스로 전환된다. 이것으부터, 슬라이스를 사용하면, 1픽처의 수직 방향 사이즈를 추측할 수 있다.
즉, 각 슬라이스 선두에는, 슬라이스층의 개시를 도시하는 동기 코드인 슬라이스 스타트 코드(Slice_Start_Code)가 삽입되어 있다. 이 슬라이스 스타트 코드는 16진수의 「00 00 01 01 내지 AF」로 도시되어 있으며, 코드의 마지막 1바이트(4바이트번째의 「01 내지 AF」)는 슬라이스의 수직 위치를 16진수로 도시하고 있다. 이렇게, 슬라이스 스타트 코드(Slice_Start_Code)의 4바이트번째는 슬라이스의 수직 방향 위치에 대응하고 있으며, 이것은 동일 라인에서는 동일 수가 된다.
이상의 것으로부터, 1픽처에서의 최하단에서의 슬라이스 스타트 코드의 4바이트번째를 검출하면, 화면의 수직 방향 화소수를 추정할 수 있게 된다.
도 10은 상술한 바와 같이, 슬라이스 정보로부터 화면의 수직 방향 화소수를 추정하기 위한 구성을 도시하는 기능 블록도이다. 도 10에 있어서, 입력 단자(41)에 MPEG 스트림이 공급된다. 이 MPEG 스트림 중의 픽처 스타트 코드 (Picture_Start_Code)가 픽처 스타트 코드 검출부(42)에서 검출되며, 슬라이스 스타트 코드(Slice_Start_Code)가 슬라이스 스타트 코드 검출부(43)에서 검출된다.
픽처 스타트 코드(Picture_Start_Code)는 픽처층의 개시를 도시하는 코드이다. 슬라이스 스타트 코드(Slice_Start_Code)는 슬라이스층의 개시를 도시하는 코드로, 이 슬라이스 스타트 코드의 4바이트번째는 수직 위치를 도시하고 있다.
슬라이스 스타트 코드 검출부(43)의 출력이 4바이트번째 추출부(44)에 보내진다. 4바이트번째 추출부(44)에서, 슬라이스 스타트 코드의 4바이트번째 정보가 추출된다. 이 4바이트번째 추출부(44)의 출력이 수직 사이즈 레지스터(45)에 보내진다.
픽처 스타트 코드 검출부(42)에서 픽처 스타트 코드가 검출됨으로써, 1픽처의 선두를 검출할 수 있다. 1픽처의 선두가 검출되면, 수직 사이즈 레지스터(45)가 리셋된다. 그리고, 슬라이스 스타트 코드 검출부(43)에서 슬라이스 스타트 코드가 검출되었는지의 여부가 판단된다.
슬라이스 스타트 코드 검출부(43)에서 슬라이스 스타트 코드가 검출되었으면, 4바이트번째 추출부(44)에서 슬라이스 스타트 코드의 4바이트번째 정보가 추출되며, 이 슬라이스 스타트 코드의 4바이트번째 정보가 레지스터(45)에 공급된다. 그리고, 픽처 스타트 코드 검출부(42)에서 다음 픽처 스타트 코드가 검출될 때까지, 슬라이스 스타트 코드 검출부(43)에서 슬라이스 스타트 코드가 검출되었으면, 4바이트번째 추출부(44)에서 슬라이스 스타트 코드의 4바이트번째 정보를 추출하여 이 값으로 레지스터(45)를 갱신해 간다.
그리고, 픽처 스타트 코드 검출부(42)에서 다음 픽처 스타트 코드가 검출되었으면, 레지스터(45) 정보가 수직 방향의 화소수 정보로서, 수직 사이즈 레지스터(46)에 들어간다.
이렇게, 픽처 선두에서 마지막까지, 슬라이스 스타트 코드 검출부(43)에서 슬라이스 스타트 코드를 검출하며, 슬라이스 스타트 코드가 검출되었으면, 4바이트번째 추출부(44)에서 그 4바이트번째 값을 추출하여 수직 사이즈 레지스터(45)에 들어가면, 수직 사이즈 레지스터(46) 값으로부터, 수직 방향의 화소수 추정치가 얻어진다.
영상의 수평 방향 화소수(Horizontal_Size_Value)에 대해서는, 매크로 블록 정보로부터 추정할 수 있다. 즉, 도 11에 도시하는 바와 같이, 매크로 블록은 슬라이스를 부가로 구분한 것이다. 또한, 이 예에서는, 슬라이스(Slice)(1, 0)에, 매크로 블록(MB1, MB2, MB3)이 있으며, 슬라이스(Slice)(1, 1)에 MB4, MB5, MB6, MB7이 있다. 또, 슬라이스(Slice)(1, 0)의 매크로 블록(MB2와 MB3) 사이에, 스킵된 매크로 블록이 존재한다.
매크로 블록 선두에는, 매크로 블록 어드레스 인크리먼트 (Macroblock_Address_Increment)가 설치된다. 이 매크로 블록 어드레스 인크리먼트는 스킵하는 매크로 블록을 도시하는 VLC(가변 길이 부호)이며, 통상 인접하는 매크로 블록에서는 「1」이지만, 스킵되는 매크로 블록이 존재할 경우에는, 스킵된 매크로 블록분만큼 증가한 값이 된다.
따라서, 1슬라이스 내에서의 매크로 블록 어드레스 인크리먼트 값을 매크로 블록마다 축적해 가, 수평 방향으로 복수의 슬라이스가 존재할 경우에는, 각 슬라이스에 있어서 축적된 매크로 블록 어드레스 인크리먼트 값을 합산함으로써, 1화면당 가로 방향의 매크로 블록수를 인식할 수 있다. 이것에, 매크로 블록 크기, 즉, 휘도 신호에 관해서는 「16」, 2개의 색차 신호에 관해서는 「8」을 곱하면, 1픽처당 수평 방향의 화소수를 추정할 수 있다.
도 12는 상술한 바와 같이, 매크로 블록 정보로부터 화면의 수평 방향의 화소수를 추정하기 위한 구성을 도시하는 기능 블록도이다.
도 12에 있어서, 입력 단자(51)에 MPEG 스트림이 공급된다. 이 MPEG 스트림 중의 슬라이스 스타트 코드(Slice_Start_Code)가 슬라이스 스타트 코드 검출부(52)에서 검출되며, 매크로 블록 어드레스 인크리먼트(Macroblock_Address_Increment)가 매크로 블록 어드레스 인크리먼트 검출부(53)에서 검출된다.
또, 수평 방향의 화소수를 추측할 경우에는, 처음의 픽처 코딩 타입(Picture Coding Type)가 어떤 것이든, MPEG 디코더(12)에서 그 픽처만으로 인트라 처리로 복호가 행해진다. 그리고, 매크로 블록의 복호가 행해지면, 매크로 블록의 복호가 행해진 것을 도시하는 신호가 출력된다. 이 매크로 블록의 복호가 행해진 것을 도시하는 신호가 입력 단자(62)로부터 디코드 매크로 블록 검출부(57)에 공급된다.
슬라이스 코드 검출부(52)에 의해, 1라인의 가장 좌단의 슬라이스가 검출되 면, 레지스터(55), 레지스터(58A, 58B, …), 수평 사이즈 레지스터(61)가 클리어된다. 그리고, 매크로 블록 어드레스 인크리먼트 검출부(53)에서, 매크로 블록 어드레스 인크리먼트(Macroblock_Address_Increment)가 검출된다.
이 매크로 블록 어드레스 인크리먼트는 매크로 블록의 스킵 정보를 도시하며, 「1」 내지 「33」에 대응하는 인크리먼트치가 가변 길이 부호로 쓰여 있다. 또한, 매크로 블록 어드레스 인크리먼트가 「33」이상일 때에는, 매크로 블록 이스케이프(Macroblock_Escape)도 참조된다.
매크로 블록 어드레스 인크리먼트 검출부(53) 출력이 VLC 복호부(54)에 공급된다. VLC 복호부(54)에서, 매크로 블록 어드레스 인크리먼트 값이 복호된다.
VLC 복호부(54)의 출력이 가산기(56)에 공급된다. 가산기(56)에는 레지스터(55) 출력이 공급된다. 레지스터(55)에는 디코드 매크로 블록 검출부 (57)의 출력이 공급된다. 디코드 매크로 블록 검출부(57)의 출력으로부터, 매크로 블록 복호가 행해진 것이 검출되면, 가산기(56)에서 이번의 매크로 블록 어드레스 인크리먼트 값과, 이전의 매크로 블록 어드레스 인크리먼트 값이 가산되어, 매크로 블록 어드레스 인크리먼트 값이 축적되어 간다. 이로써, 동일 수평 라인의 각 슬라이스에서의 매크로 블록 어드레스 인크리먼트의 축적치가 구해진다.
레지스터(55) 출력이 레지스터(58A, 58B, …)에 공급된다. 레지스터(58A, 58B, …)는 수평 방향으로 복수의 슬라이스가 있을 경우에, 각 슬라이스에서의 매크로 블록 어드레스 인크리먼트의 축적치를 넣는 것이다. 레지스터(58A, 58B, …)에는, 슬라이스 스타트 코드 검출부(52) 출력이 공급된다. 이 슬라이스 스타트 코 드 검출부(52) 출력에 의해, 매크로 블록 어드레스 인크리먼트 축적치가 슬라이스마다 레지스터(58A, 58B, …)에 들어간다. 예를 들면, 동일 수평 라인의 처음 슬라이스에서의 매크로 블록 어드레스 인크리먼트의 축적치가 레지스터(58A)에 들어가며, 동일 수평 라인의 다음 슬라이스에서의 매크로 블록 어드레스 인크리먼트의 축적치가 레지스터(58B)에 들어간다.
레지스터(58A, 58B, …)의 출력이 가산기(59)에 공급된다. 가산기(59)에서, 각 슬라이스에서의 매크로 블록 어드레스 인크리먼트 축적치가 합산된다. 이렇게, 각 슬라이스에 있어서 축적된 매크로 블록 어드레스 인크리먼트 값을 합산함으로써, 1화면당 가로 방향의 매크로 블록수가 구해진다.
가산기(59)의 출력이 승산기(50)에 공급된다. 승산기(50)는 매크로 블록수에 매크로 블록 크기를 곱해, 수평 방향의 화소수를 산출하는 것이다. 즉, 승산기(50)에서, 매크로 블록수에 매크로 블록의 수평 방향 크기를 곱함으로써, 1픽처당 수평 방향 화소수가 산출된다. 이렇게 하여 구해진 수평 방향 화소수가 수평 사이즈 레지스터(61)에 공급된다.
이렇게, 가산기(56) 및 레지스터(55)에서, 1슬라이스 내에서의 매크로 블록 어드레스 인크리먼트 값을 매크로 블록마다 축적해 가, 가산기(59)에서 각 슬라이스에 있어서 축적된 매크로 블록 어드레스 인크리먼트 값을 합산함으로써, 1화면당 가로 방향의 매크로 블록수가 산출된다. 승산기(60)에서, 이것에 매크로 블록 크기가 곱해져, 1픽처당 수평 방향의 화소수가 구해진다
어스팩트비(Aapect_Ratio_Information)에 대해서는, 상술한 바와 같이 하여 구해진 영상의 수평 방향 화소수와 수직 방향 화소수로부터 추측할 수 있다. 화면 사이즈가 (720×480)이면, SDTV이기 때문에, 어스팩트비는 (4:3)으로 추정된다. 화면 사이즈가 (920×1080)이면, HDTV이기 때문에, (16:9)로 추정된다.
영상의 표시 주기(Frame_Rate_Code)에 대해서는, DTS/PTS 등의 타임 스탬프에 의해 복호화 타이밍을 암으로써, 간접적으로 유추된다.
또한, 발생 부호량 제어용 가상 버퍼(VBV) 크기(VBV_Buffer_Size)에 대해서는, 생각할 수 있는 레벨·프로필에 있어서 최대의 것이 준비된다. 마찬가지로, 복호화 영상에 대해서도, 통상 생각할 수 있는 해당하는 레벨·프로필에 있어서 최대 사이즈의 용량이 확보된다.
매크로 블록용 양자화 매트릭스(Load_Quantization_Matrix)에 대해서는, 디폴트치로 대용된다.
프로그레시브 시퀀스(Progressive_Sequence)에 대해서는, 매프레임 다중화되는 픽처 코딩 타입(Picture_Coding_Type) 중의 프로그레시브 프레임 (Progressive_Frame)으로 대용된다.
또한, 상술한 예에서는, MPEG1 또는 MPEG2 방식의 스트림을 디코드할 경우에 대해서 설명했지만, 본 발명은 동일 계층 구조의 스트림을 디코드할 경우에도, 마찬가지로 적용할 수 있다.
상술한 설명에서는, 소프트웨어에 의한 MPEG 비디오 스트림의 복호에 대해서 설명했지만, 이하에 소프트웨어에 의한 MPEG 오디오 스트림 복호에 대해서 설명한다. MPEG 오디오 디코더는 외부로부터 공급되는 MPEG 오디오 데이터를 디코드 모 듈로 복호하여, 복호한 데이터를 코딩 모듈에 공급하여, 코딩 모듈에서 디지털/아날로그 변환하고나서 외부 장치에 출력하고 있다.
그렇지만, 디코드 모듈에서 복호한 MPEG 오디오 데이터를 코딩 모듈로 출력할 때에, MPEG 오디오 데이터 채널을 전환하면, 일정 시간, 채널을 전환하기 전의 데이터가 출력되어, 상황이 나쁘다.
그 때문에 본 발명에 있어서의 소프트웨어에 의한 오디오 디코더에 있어서는, 채널 전환 시에, 디코드 모듈에서 코딩 모듈로, 뮤트 데이터를 출력하도록 하고 있다.
도 13은 오디오 디코더(100)의 한 실시예의 구성을 도시하는 블록도이다.
사용자는 입력부(111)를 조작하여 원하는 정보를 입력한다. 예를 들면, 사용자는 입력부(111)를 조작함으로써, 디코더(100)의 전원을 "ON"하거나, 외부로부터 공급되는 MPEG 오디오 데이터 채널을 전환하거나, 뮤트를 지령하기도 한다.
CPU(112)는 입력부(111)로부터 공급되는 정보에 기초하여, 후술하는 메모리(115 내지 117)에 기억되어 있는 프로그램을 판독, 그 프로그램을 실행한다. 데이터 전환 스위치(113)는 MPEG 오디오 데이터나 프로그램 데이터 전환을 행한다. 외부로부터 공급되는 MPEG 오디오 데이터는 DMA(Direct Memory Access) 버스(120) 및 데이터 전환 스위치(113)를 개재시켜 메모리(114)에 입력되어 기억된다.
메모리(115)에는 전원과 링크한 AC 링크 프로그램이 기억되어 있으며, 사용자가 입력부(111)를 개재시켜 디코더(100) 전원을 "ON"으로 하면, CPU(112)는 데이터 전환 스위치(113)를 개재시켜 AC 프로그램을 판독, 실행한다.
메모리(116)에는 입력부(111)로부터 입력되는 정보에 대응하는 메시지를 송신하는 메시지 송신 프로그램이 기억되어 있다. 이 메시지는 후술하는 메모리(117)에 기억되어 있는 디코드 프로그램과 데이터 전송 처리 프로그램에 대해 송신된다. 즉, 사용자가 입력부(111)를 개재시켜 원하는 정보를 입력하면, CPU(112)는 데이터 전환 스위치(113)를 개재시켜, 메시지 송신 프로그램을 판독 실행하여, 입력된 정보에 대응하는 메시지를 디코드 프로그램과 데이터 전송 처리 프로그램에 송신한다.
메모리(117)에는 메모리(114)에 기억되어 있는 MPEG 오디오 데이터를, 공급되는 메시지의 타이밍으로 복호하는 디코드 프로그램과 데이터 전송 처리 프로그램이 기억되어 있다. CPU(112)는 공급되는 메시지의 타이밍으로, 메모리(114)에 기억되어 있는 MPEG 오디오 데이터를 복호하여, 복호한 후의 데이터를 다시 메모리(114)에 기억시킨다. 다음으로, CPU(112)는 데이터 전송 처리 프로그램을 판독 실행하여, 메모리(114)에 기억되어 잇는 복호 후의 MPEG 오디오 데이터를 출력 버퍼(118)에 전송한다. 더구나, 전원 "ON" 시, 채널 전환 시 및 뮤트 지령 시에는 메모리(114)에 미리 기억되어 있는 더미 데이터("0"의 데이터)가 출력 버퍼(118)에 전송된다.
출력 버퍼(118)에 일시적으로 기억되어 있는 데이터는 DMA 버스(120)를 개재시켜 코덱(119)에 공급된다. 코덱(119)은 공급된 복호 후의 MPEG 오디오 데이터를 디지털/아날로그 변환하여, 변환 후의 데이터를 DMA 버스(120)를 개재시켜 외부 장치(도시하지 않는다)에 출력한다.
다음으로, 메시지 송신 프로그램으로부터 디코드 프로그램과 데이터 전송 처리 프로그램에 대해 송신되는 메시지 예에 대해서, 도 14를 참조하여 설명한다.
우선, 사용자에 의해 입력부(111)를 개재시켜, 전원이 "ON"(시각(t1))되면, "U" 메시지가 디코드 프로그램과 데이터 전송 처리 프로그램에 송신된다. 이 "U" 메시지는 전원이 투입된 것을 도시하기 위한 것이다. 다음으로, "W" 메시지가 소정 시간(T2), 디코드 프로그램과 데이터 전송 처리 프로그램에 송신된다. 이 "W" 메시지는 「복호하는 것을 기다리지 않는다」라는 것을 도시하고 있으며, T2는 메모리(14)에 소정량의 MPEG 오디오 데이터가 기억되기까지의 시간이다.
메모리(114)에 소정량의 MPEG 오디오 데이터가 기억되면, "F" 메시지가 디코드 프로그램과 데이터 전송 처리 프로그램에 송신된다. 이 "F" 메시지는 「복호를 개시하십시오」라는 것을 도시하고 있으며, 이 메시지를 받아들이면, CPU(112)는 메모리(114)에 기억되어 있는 MPEG 오디오 데이터 복호를 개시한다. 그 후, "N" 메시지가 디코드 프로그램과 데이터 전송 처리 프로그램에 송신된다(T3). 이 "N" 메시지는 「복호를 계속하십시오」라는 것을 도시하고 있으며, 이 메시지에 따라, CPU(112)는 복호를 계속한다.
사용자가 입력부(111)를 조작하여, 채널을 전환하면, "W" 메시지가 소정 시간(T5), 디코드 프로그램과 데이터 전송 처리 프로그램에 송신되어, CPU(112)는 새로운 MPEG 오디오 데이터를 복호하는 것을 기다리게 된다. 더구나, T5는 채널 전환 후의 MPEG 오디오 데이터가 메모리(114)에 소정량만큼 기억되기까지의 시간이다.
메모리(114)에 소정량의 MPEG 오디오 데이터가 기억되면, "F" 메시지가 디코드 프로그램과 데이터 전송 처리 프로그램에 송신되며, CPU(112)는 MPEG 오디오 데이터 복호를 개시한다. 그 후, "N" 메시지가 디코드 프로그램과 데이터 전송 처리 프로그램에 송신되어(T6), CPU(112)는 복호를 계속한다.
사용자가 입력부(111)를 조작하여, 디코더(100) 전원을 "0FF"로 하면(시각(t7)), "D" 메시지가 디코드 프로그램과 데이터 전송 처리 프로그램에 송신되어, MPEG 오디오 데이터 복호는 종료된다.
다음으로, CPU(112)가 메모리(114)로부터 출력 버퍼(118)로 전송하는 데이터를 메시지에 기초하여 전환하는 기능에 대해서, 도 15를 참조하여 설명한다.
도 15a는 메모리(114)에 미리 존재하고 있는 더미 블록(131)을 도시하고 있다. 더미 블록(131)에는 "0" 데이터가 격납되어 있다. 도 15b는 복호 후의 MPEG 오디오 데이터가 격납되는 BBB 체인(132)을 도시하고 있다. BBB 체인(132)은 a블록(141) 내지 f블록(146)의 6개 블록으로 구성되어 있으며, 복호한 후의 MPEG 오디오 데이터를 a블록(141)으로부터 순서대로 격납한다.
메시지 송신 프로그램으로부터 데이터 전송 처리 프로그램에 대해, "W" 메시지가 송신되어 있을 경우(예를 들면, 도 14의 시간(T2 및 T5), CPU(112)는 메모리(114)의 더미 블록(131)으로부터 "0" 데이터를 판독, 판독한 "0" 데이터를 출력 버퍼(118)로 전송한다. 이로써, 전원 "ON" 시 및 채널 전환 시에는, 소정 시간, 코덱(119)으로 뮤트 데이터가 출력되게 된다.
메시지 송신 프로그램으로부터 데이터 전송 처리 프로그램에 대해, "F" 메시 지 또는 "N" 메시지가 송신되어 있을 경우(예를 들면, 도 14의 시간(T3 및 T6)), CPU(112)는 메모리(114)의 BBB 체인(132)의 a블록(141)으로부터 순서대로, 복호 후의 데이터를 판독, 판독한 데이터를 출력 버퍼(118)로 전송한다. 이로써, MPEG 오디오 데이터를 복호하고 있는 동안은, 복호한 후의 데이터가 코덱(119)으로 출력되게 된다.
다음으로, 디코더(100) 전원이 투입된 경우, CPU(112)가 메시지에 기초하여, 메모리(114)로부터 출력 버퍼(118)로 전송하는 데이터를 전환할 때의 처리 동작에 대해서, 도 16의 플로 챠트를 참조하여 설명한다.
우선, 단계(S11)에 있어서, 사용자가 입력부(111)를 조작하여, 디코더(100) 전원을 "ON"으로 하면, CPU(112)는 메모리(115)로부터 AC 링크 프로그램을 판독, 실행한다.
다음으로, 단계(S12)에 있어서, CPU(112)는 메모리(116)로부터 메시지 송신 프로그램을 판독, 실행한다. 이 때, 디코드 프로그램과 데이터 전송 처리 프로그램에 대해, 전원이 투입된 것을 도시하는 "U" 메시지가 송신된다.
단계(S13)에 있어서, 디코드 프로그램과 데이터 전송 처리 프로그램에 대해, 복호 개시를 기다리는 것을 도시하는 "W" 메시지가 송신된다.
단계(S14)에 있어서, CPU(112)는 메모리(114)의 더미 블록(131)으로부터 "0" 데이터를 판독, 그 데이터를 출력 버퍼(118)로 전송한다.
단계(S15)에 있어서, CPU(112)는 MPEG 오디오 데이터가 소정량만큼 메모리(114)에 기억되었는지의 여부를 판정한다. 단계(S15)에 있어서, 메모리(114)에 MPEG 오디오 데이터가 소정량만큼 기억되어 있지 않다고 판정된 경우, 단계(S13)로 돌아가, 그 이후 처리가 반복하여, 실행된다.
단계(S15)에 있어서, 메모리(114)에 MPEG 오디오 데이터가 소정량만큼 기억되었다고 판정된 경우, 단계(S16)로 진행, 디코드 프로그램과 데이터 전송 처리 프로그램에 대해, 복호 개시를 도시하는 "F" 메시지가 송신된다.
단계(S17)에 있어서, CPU(112)는 메모리(114)에 기억되어 있는 MPEG 오디오 데이터 복호를 개시하여, 복호한 데이터를 메모리(114)의 BBB 체인(132)에 격납한다.
단계(S18)에 있어서, CPU(112)는 메모리(114)의 BBB 체인(132)으로부터 복호한 데이터를 판독, 그 데이터를 출력 버퍼(118)로 전송한다.
단계(S19)에 있어서, CPU(112)는 모든 MPEG 오디오 데이터를 복호했는지의 여부를 판정한다. 단계(S19)에 있어서, 모든 MPEG 오디오 데이터가 복호되어 있지 않다고 판정된 경우, 단계(S16)로 돌아가, 그 이후 처리가 반복하여, 실행된다. 단계(S19)에 있어서, 모든 MPEG 오디오 데이터가 복호되었다고 판정된 경우, 처리 동작은 종료된다.
다음으로, 도 17을 참조하여, 상술한 일련의 처리를 실행하는 프로그램을 컴퓨터에 인스톨하여, 컴퓨터에 의해 실행 가능한 상태로 하기 위해 사용되는 매체에 대해서 설명한다.
프로그램은 도 17a에 도시하는 바와 같이, 퍼스널 컴퓨터(151)(영상 복호 장치에 상당)에 내장되고 있는 기록 매체로서의 하드 디스크(152)나 반도체 메모리(153)에 미리 인스톨한 상태에서 사용자에게 제공할 수 있다.
혹은, 프로그램은 도 17b에 도시하는 바와 같이, 플로피 디스크(161), CD-R0M(162), MO 디스크(163), DVD(164), 자기 디스크(165), 반도체 메모리(166) 등의 기록 매체에 일시적 혹은 영속적으로 격납하여, 패키지 소프트웨어로서 제공할 수 있다.
더욱이, 프로그램은 도 17c에 도시하는 바와 같이, 다운로드 사이트(171)로부터 무선으로 위성(172)을 개재시켜, 퍼스널 컴퓨터(173)에 전송하거나, 로컬 에이리어 네트워크, 인터넷과 같은 네트워크(181)를 개재시켜, 유선 또는 무선으로 퍼스널 컴퓨터(173)에 전송하여, 퍼스널 컴퓨터(173)에 있어서, 내장하는 하드 디스크 등에 다운로드시키도록 할 수 있다
본 명세서에 있어서의 매체란 이들 모든 매체를 포함하는 광의의 개념을 의미하는 것이다.
본 발명에 따르는 영상 처리 장치, 영상 처리 방법 및 매체에 있어서는, 입력된 매크로 블록 단위의 영상 데이터에 오름차순으로 어드레스를 할당하고, 기억하여, 기억된 영상 데이터를 어드레스 오름차순으로 판독하도록 했기 때문에, 페이지 미스가 발생하는 회수를 억제하는 것이 가능해진다.
본 발명에 따르는 영상 처리 장치 및 방법에 의하면, 시퀀스 헤더가 검출되지 않을 때에는, 슬라이스 스타트 코드(Slice_Start_Code)의 4바이트번째 검출하여, 화면의 수직 방향 화소수가 추정되어, 매크로 블록 어드레스 인크리먼트(Macroblock_Address_Increment)를 축적하고 화면의 수평 방향 매크로 블록수가 구해지며, 이것에 매크로 블록 크기를 승산하여, 화면의 수평 방향 화소수가 추정된다. 그리고, 이렇게 하여 추정된 정보를 사용하여 MPEG 복호가 행해진다. 이로써, 시퀀스 헤더를 검출하지 않아도, 즉시, MPEG 스트림 복호를 행할 수 있다.
본 발명은 MPEG에서 압축된 영상 신호를 복호할 때에 사용하기 적합한 것이다.

Claims (13)

  1. 매크로 블록 단위의 영상 데이터를 입력하는 입력 수단;
    상기 입력 수단에 의해 입력된 상기 영상 데이터에, 데이터의 양에 따라 오름차순으로 어드레스를 할당하여 상기 영상 데이터를 기억하는 기억 수단; 및
    상기 기억 수단에 기억된 상기 영상 데이터를 어드레스들의 오름차순으로 판독하는 판독 수단을 포함하는 것을 특징으로 하는 영상 처리 장치.
  2. 제 1 항에 있어서,
    상기 판독 수단에 의해 판독된 상기 영상 데이터를, 상기 영상 데이터에 기초하여 표시되는 영상과 동등한 어드레스 배치의 데이터로 변환하여, 상기 영상 데이터를 기억하는 변환 기억 수단을 더 포함하는 것을 특징으로 하는, 영상 처리 장치.
  3. 제 1 항에 있어서,
    상기 기억 수단은 2이상의 뱅크들을 구비하며, 상기 영상 데이터에 기초하여 표시되는 영상의 수평 방향 폭마다, 상기 뱅크를 전환하여 상기 영상 데이터를 기억하는 것을 특징으로 하는, 영상 처리 장치.
  4. 매크로 블록 단위의 영상 데이터를 입력하는 입력 단계;
    상기 입력 단계에서 입력된 상기 영상 데이터에, 데이터의 양에 따라 오름차순으로 어드레스를 할당하여 상기 영상 데이터를 기억하는 기억 단계; 및
    상기 기억 단계에서 기억된 상기 영상 데이터를 어드레스들의 오름차순으로 판독하는 판독 단계를 포함하는 것을 특징으로 하는 영상 처리 방법.
  5. 매크로 블록 단위의 영상 데이터를 입력하는 입력 단계;
    상기 입력 단계에서 입력된 상기 영상 데이터에, 데이터의 양에 따라 오름차순으로 어드레스를 할당하여 상기 영상 데이터를 기억하는 기억 단계; 및
    상기 기억 단계에서 기억된 상기 영상 데이터를 어드레스들의 오름차순으로 판독하는 판독 단계로 이루어지는 것을 특징으로 하는 프로그램을 컴퓨터에 실행시키는 매체.
  6. 시퀀스층과 GOP층과 픽처층과 슬라이스층과 매크로 블록층과 블록층으로 이루어지는 계층 구조의 비디오 스트림을 복호하는 영상 처리 장치에 있어서:
    픽처 내에 반드시 나타나는 정보에 기초하여 시퀀스 헤더 정보를 추정하는 시퀀스 헤더 정보 추정 수단; 및
    상기 시퀀스 헤더가 검출되지 않을 때에는, 상기 헤더 정보 추정 수단으로 추정된 정보를 사용하여 영상 데이터를 복호하는 복호 수단을 구비한, 영상 처리 장치.
  7. 제 6 항에 있어서,
    상기 시퀀스 헤더 정보 추정 수단은 슬라이스에서의 정보로부터 화면의 수직 방향 화소수를 추정하는 수직 화소수 추정 수단을 포함하는, 영상 처리 장치.
  8. 제 6 항에 있어서,
    상기 시퀀스 헤더 정보 추정 수단은 매크로 블록에서의 정보로부터 화면의 수평 방향 화소수를 추정하는 수평 화소수 추정 수단을 포함하는, 영상 처리 장치.
  9. 제 6 항에 있어서,
    상기 시퀀스 헤더 정보 추정 수단은 슬라이스에서의 정보로부터 화면의 수직 방향 화소수를 추정하고, 매크로 블록에서의 정보로부터 화면의 수평 방향 화소수를 추정하여, 상기 추정된 수직 방향 화소수와 수평 방향 화소수로부터, 화면의 어스팩트비를 추정하는 어스팩트비 추정 수단을 포함하는, 영상 처리 장치.
  10. 시퀀스층과 GOP층과 픽처층과 슬라이스층과 매크로 블록층과 블록층으로 이루어지는 계층 구조의 비디오 스트림을 복호하는 영상 처리 방법에 있어서:
    픽처 내에 반드시 나타나는 정보에 기초하여 시퀀스 헤더 정보를 추정하는 단계; 및
    상기 시퀀스 헤더가 검출되지 않을 때에는, 상기 추정된 정보를 사용하여 영상 데이터를 복호하는 단계를 포함하는, 영상 처리 방법.
  11. 제 10 항에 있어서,
    상기 시퀀스 헤더 정보 추정은 슬라이스에서의 정보로부터 화면의 수직 방향 화소수를 추정하도록 한, 영상 처리 방법.
  12. 제 10 항에 있어서,
    상기 시퀀스 헤더 정보 추정은 매크로 블록에서의 정보로부터의 화면의 수평 방향 화소수를 추정하도록 한, 영상 처리 방법.
  13. 제 10 항에 있어서,
    상기 시퀀스 헤더 정보 추정은 슬라이스에서의 정보로부터 화면의 수직 방향 화소수를 추정하고, 매크로 블록에서의 정보로부터 화면의 수평 방향 화소수를 추정하여, 상기 추정된 수직 방향 화소수와 수평 방향 화소수로부터, 화면의 어스팩트비를 추정하도록 한, 영상 처리 방법.
KR1020007014148A 1999-04-13 2000-04-13 영상 처리 장치 및 방법 및 매체 KR100767611B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP99/105255 1999-04-13
JP10525599A JP4029520B2 (ja) 1999-04-13 1999-04-13 ビデオ復号化装置及び方法
JP12264799A JP4171949B2 (ja) 1999-04-28 1999-04-28 情報処理装置および方法、並びに提供媒体
JP99/122647 1999-04-28
JP15379799A JP2000348168A (ja) 1999-06-01 1999-06-01 画像処理装置および方法、並びに媒体
JP99/153797 1999-06-01

Publications (2)

Publication Number Publication Date
KR20010052823A KR20010052823A (ko) 2001-06-25
KR100767611B1 true KR100767611B1 (ko) 2007-10-17

Family

ID=27310434

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007014148A KR100767611B1 (ko) 1999-04-13 2000-04-13 영상 처리 장치 및 방법 및 매체

Country Status (5)

Country Link
US (2) US7110663B1 (ko)
EP (1) EP1089567A4 (ko)
KR (1) KR100767611B1 (ko)
CN (1) CN1140125C (ko)
WO (1) WO2000062550A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100356779C (zh) * 2003-12-24 2007-12-19 瑞昱半导体股份有限公司 能够提升影像处理效率的内存储存方法
JPWO2005109205A1 (ja) 2004-04-15 2008-03-21 松下電器産業株式会社 情報処理装置およびデータアクセス方法
US9560367B2 (en) * 2004-09-03 2017-01-31 Nokia Technologies Oy Parameter set and picture header in video coding
CN100397903C (zh) * 2004-12-21 2008-06-25 北京中星微电子有限公司 视频编解码过程中宏块数据读取的方法
US8773328B2 (en) * 2005-02-12 2014-07-08 Broadcom Corporation Intelligent DMA in a mobile multimedia processor supporting multiple display formats
CN1949826B (zh) * 2005-10-12 2010-06-23 宏正自动科技股份有限公司 数字影像数据处理装置
JP4900470B2 (ja) * 2007-02-22 2012-03-21 富士通株式会社 動画像符号化装置および動画像符号化方法
KR101086434B1 (ko) * 2007-03-28 2011-11-25 삼성전자주식회사 비디오 데이터 디스플레이 방법 및 장치
US8737469B1 (en) * 2007-04-03 2014-05-27 Mediatek Inc. Video encoding system and method
KR101664112B1 (ko) 2010-11-16 2016-10-14 삼성전자주식회사 메모리 접근 주소 변환 장치 및 방법
CN101996142B (zh) * 2010-11-17 2013-01-02 北京炬力北方微电子有限公司 一种访问存储器的方法及装置
US9231993B2 (en) * 2013-09-06 2016-01-05 Lg Display Co., Ltd. Apparatus for transmitting encoded video stream and method for transmitting the same

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10191236A (ja) * 1996-12-25 1998-07-21 Nec Corp 画像処理装置及び画像データメモリ配置方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2907630B2 (ja) * 1992-04-23 1999-06-21 松下電送システム株式会社 フレームメモリ制御装置
JP3097437B2 (ja) * 1994-03-14 2000-10-10 松下電器産業株式会社 圧縮動画像の記録方法と再生装置
JPH07319436A (ja) * 1994-03-31 1995-12-08 Mitsubishi Electric Corp 半導体集積回路装置およびそれを用いた画像データ処理システム
JP2820630B2 (ja) 1994-12-07 1998-11-05 株式会社グラフィックス・コミュニケーション・ラボラトリーズ 画像復号装置
JPH11339493A (ja) * 1998-05-27 1999-12-10 Mitsubishi Electric Corp 同期型半導体記憶装置
JP2000113670A (ja) * 1998-10-05 2000-04-21 Mitsubishi Electric Corp 同期型半導体記憶装置
JP2003045182A (ja) * 2001-08-01 2003-02-14 Mitsubishi Electric Corp 半導体記憶装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10191236A (ja) * 1996-12-25 1998-07-21 Nec Corp 画像処理装置及び画像データメモリ配置方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
10191236

Also Published As

Publication number Publication date
EP1089567A1 (en) 2001-04-04
KR20010052823A (ko) 2001-06-25
CN1314050A (zh) 2001-09-19
CN1140125C (zh) 2004-02-25
US20060263069A1 (en) 2006-11-23
WO2000062550A1 (en) 2000-10-19
US7110663B1 (en) 2006-09-19
EP1089567A4 (en) 2001-11-07

Similar Documents

Publication Publication Date Title
US20060263069A1 (en) Video processing apparatus and method for allocating addresses to data of macroblocks and storing the same, and medium containing a program for performing such method
US8428126B2 (en) Image decoding device with parallel processors
JP4649615B2 (ja) 映像符号化、復号化装置および映像符号化、復号化方法、並びにそれらのプログラム
JP3639517B2 (ja) 動画像復号化装置および動画像復号化方法
US7292772B2 (en) Method and apparatus for decoding and recording medium for a coded video stream
JP2010016833A (ja) 画像クロッピングのためのビットストリーム編集を用いたコスト低減デコーダ
JP3789048B2 (ja) 動画像再符号化装置
KR100215824B1 (ko) 엠펙 디코더의 프레임 메모리 및 영상 데이타 디코딩방법
JPH06178283A (ja) 動画像復号装置
JP4879381B2 (ja) 画像復号化方法および画像復号化装置
JP4702967B2 (ja) 画像復号化方法および画像処理装置
KR19980016035A (ko) 영상프레임 데이터를 일 메모리에 저장하는 방법
JPH08237666A (ja) フレーム間帯域圧縮信号処理装置
JP2000348168A (ja) 画像処理装置および方法、並びに媒体
JP2823809B2 (ja) 画像復号化方法及び画像復号化装置
JP2005065239A (ja) 動画像の復号化装置
JP4383844B2 (ja) 映像表示装置及び映像表示装置の制御方法
JP4029520B2 (ja) ビデオ復号化装置及び方法
JP2002057986A (ja) 復号装置および方法、並びに記録媒体
JP3240737B2 (ja) 画像信号符号化方法、装置、復号化方法及び装置
JP3708745B2 (ja) 動画像復号装置および動画像復号方法
JP2009290387A (ja) エンコーダ、デコーダ、及び記録再生装置
JP2005094800A (ja) 動画像再符号化装置
JPH11341521A (ja) ステレオ動画像用符号化装置
JPH10304373A (ja) 動画像復号方法及び動画像復号装置

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
LAPS Lapse due to unpaid annual fee