KR20050086623A - 멀티프로세서 환경에서의 실시간 mpeg-4 텍스쳐 디코딩방법 - Google Patents

멀티프로세서 환경에서의 실시간 mpeg-4 텍스쳐 디코딩방법 Download PDF

Info

Publication number
KR20050086623A
KR20050086623A KR1020057008626A KR20057008626A KR20050086623A KR 20050086623 A KR20050086623 A KR 20050086623A KR 1020057008626 A KR1020057008626 A KR 1020057008626A KR 20057008626 A KR20057008626 A KR 20057008626A KR 20050086623 A KR20050086623 A KR 20050086623A
Authority
KR
South Korea
Prior art keywords
data
prediction direction
decoding
macroblock
processing
Prior art date
Application number
KR1020057008626A
Other languages
English (en)
Other versions
KR100974983B1 (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 KR20050086623A publication Critical patent/KR20050086623A/ko
Application granted granted Critical
Publication of KR100974983B1 publication Critical patent/KR100974983B1/ko

Links

Classifications

    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/436Methods 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 using parallelised computational 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/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/103Selection of coding mode or of prediction mode
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

비디오 비트 스트림 내의 일련의 매크로블럭을 프로세싱하는 디코더에서 텍스쳐 디코딩을 수행하는 방치 및 방법이 기술된다. 본 텍스쳐 디코딩은 특히 다수의 프로세서를 포함하는 디코더 내에서 구현하는데 매우 적합하다. 상기 방법은 데이터 의존(순차적) 동작으로부터 데이터 독립 동작이 분리되는데, 여기서 멀티프로세싱이 데이터 독립 매크로블럭을 프로세싱하는데 효율적으로 이용된다. 상기 방법은 바람직하게 데이터 의존 동작의 세트에서 예측 방향에 대해 추정한다. 그리고 나서 예측 방향 결정이 이루어지고, 필요한 경우 상기 추정은 매크로블럭에 대해 동작하는 데이터 독립 동작에서 전위를 이용하여 수정된다. 상기 방법은 멀티프로세서에서의 동작을 효율적으로 분할하여 계산 오버헤드를 줄인다.

Description

멀티프로세서 환경에서의 실시간 MPEG-4 텍스쳐 디코딩 방법{METHOD OF REAL TIME MPEG-4 TEXTURE DECODING FOR A MULTIPROCESSOR ENVIRONMENT}
본 발명은 전반적으로 비디오 디코딩에 관한 것으로서, 특히 멀티프로세서 환경에 사용하기에 특별히 매우 적합한 디코딩 동작을 수행 방법에 관한 것이다.
현재 비디오가 인코딩될 수 있는 포맷이 다수 이용가능하다. 그러한 포맷 중 하나로 객체 지향 코딩 메카니즘을 지원하기 위해 확립된 MPEG-4 비디오 코딩 표준이 있다. 일반적으로 MPEG-4는 다수의 비디오 어플리케이션에 있어서 매우 장래성 있는 비디오 코딩 표준으로 고려되고 있다. MPEG-4의 장래성은 적어도 부분적으로는 현재 MPEG-4 코딩에 이용가능하도록 만들어진 다수의 툴의 결과이다. 객체 지향 코딩 스킴(an object-oriented coding scheme)을 제공하는 것에 더하여, 인코딩된 비트 레이트 및 비디오 퀄리티(vidio quality)에 대해 MPEG-4를 사용하면 높은 코딩 효율을 얻을 수 있다. MPEG-4의 효율은 주로 MPEG-1 및 MPEG-2와 같은 다른 비디오 코딩 표준에는 없는 진보된 코딩 스킴을 통합한 것의 결과이다. 그러나, 이러한 진보된 인코딩 기술이 MPEG-4 및 유사한 구조의 포맷에 대한 디코딩 프로세스를 복잡하게 하여, 이러한 비디오 비트 스트림에 대해 실시간으로 동작하는 디코더의 실행을 복잡하게 한다는 것을 인식해야 한다.
최근에는, 산업 리소스는 다수의 어플리케이션에 실시간 디코딩을 제공하기 위해 사용될 수 있는, 가령, 빠른 MPEG-4용 디코더를 디자인하는 쪽으로 점점 향하고 있다. 그러나, 이러한 노력은 대부분 하나의 빠른 프로세싱 엘리먼트 또는 한쌍의 빠른 프로세싱 엘리먼트를 통합하는 디코더에만 집중되었으며, 임의의 다수의 저가형 프로세서를 통합하는 디코더의 사용에 응답하여 문제를 해결하는 것에 대해서는 다루지 못하고 있다.
MPEG-4 포맷에 사용되는 계수(coefficients)는, 종종 미리 인코딩된 매크로블럭들로부터의 정보를 참조하는 DC 및 AC 예측을 이용하여 인코딩된다. 그러므로 이들 매크로블럭의 디코딩은 일시적으로 전위된 다른 매크로불럭들에 대한 정보를 액세스할 필요가 있다는 점이 이해될 것이다. 또한, 유사한 방법으로, 모션 벡터(motion vectors)가 인접 매크로클럭들의 모션 벡터로부터 예측된다. 그러한 예측으로 인해, 매크로블럭의 디코딩은 앞서 디코딩된 매크로블럭들로부터의 정보에 대한 액세스를 필요로 한다. 이러한 필요성은, 입력되는 비트 스트림 내의 매크로블럭에 대한 디코딩이 제1 매크로블럭으로부터 VOP(video object plane)와 관련된 마지막 매크로블럭으로까지 순차적으로 수행되어야 한다는 것을 내포하고 있다. 일반적으로 통상의 디코더는 이러한 순차적 매크로블럭 프로세싱 패러다임(sequential macroblock processing paradigm)이 강제되어 있다.
도 1은 디코딩 동작이 블럭 단위 기반(a block-by-block basis)으로 수행되는 MPEG-4 비트 스트림에 대해 실행되는 디코더의 예이다. 먼저 인코딩된 MPEG-4 비트 스트림으로부터 헤더 및 데이터 정보가 VLD(variable length decoding)을 통해 디코딩되며, 다음으로 순차적 동작에 의한 이용을 위해 예측 방향이 결정된다(PDD). 그런 다음, 데이터는 전형적으로 IS(inverse scanning), IDCP(inverse DC prediction), IACP(inverse AC prediction), IQ(inverse quantization), IDCT(inverse discrete-transform)에 종속되며, 마지막으로 VOP(video object plane)와 연관된 MC(motion compensation)에 종속된다. 예측 방향에 대한 의존성의 결과, 디코딩 프로세스를 신속히 처리하고자 다수의 프로세서에서 실행을 위해 디코딩 동작을 분할하는 것은 어려울 것이다.
디코딩 동안, IS 프로세스는 후속 처리를 위해 디코딩된 1차원 어레이를 2차원 어레이로 변환한다는 것이 이해되어야 할 것이다. MPEG-4 비트 스트림의 구문(syntax)은 적어도 3개의 상이한 IS 방법들, 즉, zigzag_scan, alternate_horizontal_scanalternate_vertical_scan을 제공한다. 비트 스트림 자체는, 어느 IS 방법이 선택되어야 하는 지에 관한 정보를 포함하지 않는다. 그러나, 적합한 스캔 방법의 선택은 디코더 내의 현재 및 그 이웃 블럭의 디코딩된 DC 계수값에 기초해야 한다. 또한, PDD(prediction direction decision)가 앞서 디코딩된 블럭 F[n]으로부터 DC값을 취득해야 한다는 점에 유의해야 한다. PDD를 실행하여 결정된 예측 방향은 IDCP 동작 및 IACP 동작에 이용된다. 이러한 두 과정에서는, 역시 이용되는 QFA[n-1]외에도, 앞서 디코딩된 데이터인 F[n-1]가 필요하다.
통상의 디코더의 디자인은 인코딩된 비트 스트림에 대한 고레벨의 데이터 의존성에 의해 강제되는데, 이는 일반적으로 순차적 디코딩 패러다임이 채택되는 결과를 초래하였다. 그러나, 이러한 통상의 순차적 디코딩 패러다임은, 임의의 다수의 프로세싱 엘리먼트, 가령 적어도 3개 이상의 프로세서를 통합하는 멀티프로세싱 디코더 디자인으로 확장하는 것이 쉽지 않다. 통상의 동작 분할 방법론에 따라 한 쌍의 프로세서를 이용하는 동안에도 이전에는 이러한 속차적 패러다임을 유지한 디코더가 고려되어 왔다. 이러한 분할 방법은, 실질적으로 순차적 동작을 분할하는 데 포함되는 높은 실행 오버헤드때문에, 매우 확실한 성능 이득을 상당히 방해한다. 두 개 이상의 프로세서보다 많은 프로세서를 사용하고자 시도한 경우, 효과적인 이득을 실질적으로 제한하는 실행 오버헤드(execution overhead)가 급격하게 증가한다.
또한, AC 예측 이전에 예측 방향 결정을 포함하는 기존의 디코딩 방법은 디코딩 성능, 특히 IACP가 실행되는 속도에도 나쁜 영향을 준다. 비디오 비트 스트림은 고효율적 인코딩 방법을 제공하기 위해 종종 DC 및 AC 예측에 응답하여 결정되는 DC 및 AC 계수로 인코딩된다. 예를 들어, DC 및 AC 계수는 MPEG-4 비디오 비트 스트림에서 INTRA 매크로블럭에 이용된다. 그러나, 디코더 측에서는, 도 1에 도시된 바와 같이, 이들 DC 및 AC 계수를 역 예측 동작(inverse prediction operation)에 이용하기 이전에 예측 방향이 결정되어야 한다.
DC 또는 AC 중 어느 하나에 있어서, 예측 방향은 디코딩되는 블럭을 둘러싸는 수평 및 수직 DC 그레이디언트(gradients)의 비교에 기초하여 얻어진다. 도 2는 좌측의 블럭 A, 상부 좌측의 블럭 B 및 상부의 블럭 C에 의해 둘러싸여 있는 현재 블럭 X를 도시하고 있다. F[0][0]으로 표시된, 이전에 디코딩된 블럭의 IQDC 값(inverse-quatized DC)은 하기한 바와 같이 DC 및 AC 예측 방향을 확인하기 위해 이용된다.
(│F A [0][0]-F B [0][0]│<│F B [0][0]-F C [0][0]│)일 경우에는,
블럭 C로부터 예측하고,
그렇지 않을 경우에는,
블럭 A로부터 예측함.
적응적 DC 예측 방법은, 상기에서 결정된 바와 같은 방향에 응답하여, 이전 행의 블럭들로부터, 직전 블럭의 F[0][0] 값 또는 직상 블럭의 F[0][0] 값 중 어느 하나에 대한 선택을 포함한다.
(예측이 블럭 C로부터 유래하는 경우)
QF X [0][0]=PQF X [0][0]+F C [0][0]//dc_scalar이고,
그렇지 않은 경우,
QF X [0][0]=PQF X [0][0]+F A [0][0]//dc_scalar 임.
전술한 관계에서, 값 dc_scalar는 스텝 사이즈(step-size)의 양자화(quantization)에 의해 구해지는데, 이는 수평으로 적절히 인접한 블럭 A 및 수직으로 인접한 블럭 C를 이용하여 매크로블럭 내의 모든 블럭에 대해 독립적으로 반복된다.
함게 언급된, X로 표시된 현재 블럭의 AC 계수를 예측하기 위해, 계수는 이전에 코딩된 블럭으로부터, 제1 로우 또는 제1 컬럼 중 어느 하나가 이용된다. 또한, 블럭 기반으로 분석된 경우, DC 계수 예측을 위한 최적의 수직 또는 수평 방향이 AC 계수 예측에 대한 방향을 선택하는 데 사용된다. 예를 들어, 주어진 매크로블럭 내의 이전의 인접 수직 및 수평 블럭과 무관하게 각 블럭을 예측하는 것이 가능하게 된다는 것이 이해될 것이다. 도 3은 AC 예측에서 이용되는 인접 블럭 및 계수를 나타내고 있다.
그러므로, 멀티프로세싱 디코더 시스템 환경에 효율적으로 적용될 수 있는 텍스처 디코딩 방법 및 AC 예측 방법에 대한 필요성이 존재한다. 본 발명은 그러한 필요성 등을 만족시킬뿐만 아니라, 이전에 개발된 텍스쳐 디코딩 방법의 결함을 극복한다.
본 발명은 예시적 목적만을 위한 후속 도면을 참조하여 보다 완저하게 이해될 수 있다.
도 1은 인코딩 비트 스트림에 대한 텍스쳐 프로세싱 동작을 수행하는 통상의 디코더의 블럭 다이아그램이다.
도 2는 매크로블럭 및 이웃 블럭의 세트 내의 현재 블럭이 도시된 데이터 다이아그램이다.
도 3은 현재 블럭과 관련된 각 블럭의 AC 계수의 예측을 도시한 데이터 다이아그램이다.
도 4는 데이터 의존 및 데이터 독립 동작에 대해 개별 프로세싱 섹션으로 도시된, 본 발명의 실시예에 따른 디코더의 블럭 다이아그램이다.
도 5는 데이터 의존성에 기초하여 디코딩 동작을 도시한, 본 발명의 실시예에 따른 텍스쳐 디코딩 방법의 플로우차트이다.
도 6은 다중 프로세싱 엘리먼트에 대해 분할된 텍스쳐 디코딩 동작을 나타내는, 본 발명의 실시예에 따른 텍스쳐 디코딩의 플로우차트이다.
도 7은 수직 예측 방향이 메모리 내의 계수의 위치와 관련하여 도시된 데이터 블럭의 데이터 다이아그램이다.
도 8은 4개의 계수를 계산하기 위해 두 개의 인스트럭션을 사용하여 도시된, 본 발명의 일 측면에 따른 SIMD 인스트럭션의 사용을 나타내는 인스트럭션 리스트이다.
도 9는 수평 예측이 메모리 내의 계수의 위치와 관련하여 도시된 데이터 블럭의 데이터 다이아그램이다.
도 10은 PDD 추정에 후속하여 필요한 경우 디코딩된 데이터를 수정하기 위해 순차적 PDD 계산 및 변환을 수행하는, 본 발명의 측면에 따른 예측 방법의 플로우차트이다.
도 11은 다중 블럭 레벨 프로세서에 대해 수행되는 블럭 동작 이전에, 디코딩 및 연속 프로세서에서의 예측을 수행하는 것으로 도시된, 본 발명의 측면에 따른 디코더의 다이아그램이다.
도 12는 멀티프로세싱 디코더 내의 다수의 독립 매크로블럭 프로세서 내에서 수행되는 AC 및 DC 예측으로 도시된, 본 발명의 측면에 따른 예측 방법의 블럭 다이아그램이다.
디코딩 동작이 다수의 서브 프로세스(sub-processes)에 분배되는 텍스쳐 정보의 디코딩 방법이 기술된다. 상기 방법은 특히 멀티프로세싱 디코더에 사용하는데 매우 적절하며, 적어도 3개의 프로세싱 엘리먼트를 구비한 구성에 특히 매우 적합하다. 통상의 순차적 디코딩 패러다임과 비교했을 경우, 본 방법은 텍스쳐 디코딩 동작이 소정의 매크로블럭에 적용될 경우의 동작이 다른 매크로블럭에서 수행되는 동작으로부터의 데이터 사용에 의존하는지 여부에 기초하여, 두 개의 일반적 클래스, 즉, 데이터 의존 동작(data dependent operation) 및 데이터 독립 동작(data independent operation)으로 구분될 수 있다는 것을 인식하고 있다. 본 발명은 제1 서브 프로세스에서의 실행을 위해 수신된 비디오 비트 스트림으로부터 데이터 의존 동작을 하지만, 나머지 데이터 독립 디코딩 동작은 부가 서브 프로세스(additional sub-proccess)로 이루어진다.
일반적으로, 상기 방법은 제1 프로세서에서 비디오 비트 스트림에 대한 데이터 의존 동작의 세트를 실행하고, 후속하여 데이터 독립 구조 매크로블럭(data independent structured macroblocks)을, 디코딩 프로세스를 완성하는 부가 프로세서로의 전송하는 것을 포함한다. 부가 프로세서는 데이터 독립 매크로블럭을 실행하고 VOP(vidio object plane)에 출력을 제공한다. 바람직하게, 전송 버퍼는 데이터 독립 매크로블럭을 제1 프로세서로부터 부가 프로세서로 통신하는데 사용된다. 이러한 부가 프로세서 각각은 매크로블럭이 이용가능하게 된 때, 전송 버퍼로부터, 이용가능한 프로세싱 대역폭과 일치하도록, 매크로블럭을 개별적으로 복구할 수 있다. 디코딩은 출력이 VOP(video independent plane)에 송신되는 각 프로세서에서 완성된다. 본 발명에 따라 다수의 프로세서를 통해 디코딩 동작을 분할하는 것은 오버헤드(overhead)의 양을 줄이며 오버헤드 페널티(overhead penalty)가 통합된 프로세싱 엘리먼트의 수와 실질적으로 무관하게 할 수 있다.
본 발명의 또 다른 특징은 예측 방향 추정(a prediction direction assumption)을 이용하는 것에 기초하여 신속한 AC 예측을 수행하며, 후속하여 순차적 디코딩 동작을 하는 방법을 포함한다. 예측 방향은 그 이후에 결정되며, 최초에 추정된 예측 방향과 일치하지 않은 경우에는, 데이터에 대해 전위 동작(a transpose operation)이 수행된다. 상기 방법은 특히 멀티프로세싱 환경에 사용하는데 매우 적합하다.
예측 방법이 소정되었다 할지라도, 또는 랜덤하게 선택되었다 할지라도, 추정된 예측 방향은, IACP 수행 시, 오버헤드의 감소로 귀결되는 방향이 어느 방향인지를 고려하는 것에 기초하여 선택되는 것이 바람직하다. 단순화에 대한 고려는 상기 예측을 실행하는 회로의 구조적 속성 또는 시스템의 유사 속성과 연관될 수 있다. 한정하는 것이 아닌 예에 의하면, 예측 방향은 소정의 방향으로 추정되는데, 예를 들면, AC 예측에 대한 계수가 순차적인 메모리 위치로부터 로딩될 수 있는 방향이다. 전형적으로, 수직 예측은 순차적 메모리 위치로부터 계수를 복구하는 것을 허용하지만, 여기서 프로세서에서의 인스트럭션 사이클의 수는 상당히 감소될 수 있다.
본 발명의 방법은 멀티프로세싱 디코더에 대한 상당한 성능 증가를 유도할 수 있는데, 여기서 제1 프로세서는 순차적 (데이터 의존) 디코딩 동작을 수행하기 위해 사용되는 반면, 다수의 부가 프로세서는 블럭 레벨 데이터를 프로세싱하는데 효율적으로 사용될 수 있다. PDD(prediction direction determination)의 연기(postponement)는, 다수의 프로세서 중 하나에 의한 프로세싱를 위해, 다수의 디코딩 동작이 연기되도록 하는데, 여기서 전체 디코딩 속도가 증대될 수 있다.
본 발명의 목적은 비디오 디코더에서의 텍스쳐 디코딩 속도를 증가시키는 것이다.
본 발명의 다른 목적은 디코더에서 텍스쳐 디코딩 속도와 프로세서 속도 사이의 의존성을 줄이는 것이다.
본 발명의 다른 목적은 멀티프로세싱 디코더에서 효율적으로 실행될 수 있는 텍스쳐 디코딩 방법을 제공하는 것이다.
본 발명의 다른 목적은 멀티프로세서 디코더에서 인스트럭션 스트림 분할의 필요성을 제거하는 것이다.
본 발명의 다른 목적은 디코딩 이전에 비디오 비트 스트림의 전스캐닝(pre-scanning)의 필요성을 제거하는 것이다.
본 발명의 다른 목적은 데이터 전송 메카니즘의 선택에 융통성이 있는 멀티프로세싱 디코더 구조를 제공하는 것이다.
본 발명의 다른 목적은 MPEG-4 및 H.263을 포함하는 통상의 포맷을 포함하는 다수의 비디오 포맷에 적용할 수 있는 텍스쳐 디코딩 방법을 제공하는 것이다.
본 발명의 다른 목적은 향상된 멀티프로세싱 디코더 성능을 제공하는 것이다.
본 발명의 다른 목적은 비디오 디코더에서 보다 용이하게 실행될 수 있는 AC 예측을 수행하는 방법을 제공하는 것이다.
본 발명의 다른 목적은 예측 방향의 계산을 연기하여 멀티프로세싱 디코더 내의 다수의 프로세서 중 하나에 의해 실행될 수 있도록 하는 방법을 제공하는 것이다.
본 발명의 또 다른 목적 및 이점은 명세서의 후속하는 부분에서 유추될 수 있으며, 여기서 상세한 설명은 본 발명의 바람직한 실시예의 전체적인 개시를 위한 것이며 이에 한정되는 것은 아니다.
설명하기 위해 도면을 보다 자세히 참조하면, 본 발명은 도 4 내지 도 12를 통해 전반적으로 도시된 장치로 구현되어 있다. 본 장치는, 여기 개시된 기본적 개념 내에서, 구성 및 세부가 변할 수 있으며, 본 방법은 특정 단계 및 순서가 변할 수 있다는 것이 이해되어야 한다.
임의의 다수의 프로세싱 엘리먼트를 포함할 수 있는 멀티프로세싱 디코더 내에서 효율적으로 구현될 수 있는 텍스쳐 디코더 및 디코딩 방법이 기술된다. 또한, AC 예측 방법은 AC 예측에 보다 수월하게 이르기 위해 PDD 추정을 사용하는 것에 기초하여 기술되는데, 여기서 추정이 무효하다고 PDD가 나타낸 경우에는 데이터가 나중에 변환된다. 본 발명의 방법을 사용함으로써, MPEG-4 또는 H.236 포맷과 같은 소정의 실질적인 객체 지향 비디오 포맷에 대해 수행되는 디코딩 동작은 데이터 독립 동작 및 데이터 의존 동작으로 나뉠 수 있다. 데이터 의존성 및 데이터 독립성 사이의 차이를 분명히 하면, 소정의 매크로블럭에 대해 수행되는 데이터 의존 동작은, 일시적으로 전위되는 부가 정보를, 데이터 의존 동작을 실행하는 조건으로서, 다른 매크로블럭으로부터 수집하는 것을 필요로 한다는 점이 이해되어야 한다. 결과적으로, 데이터 의존 동작은 순차 의존적이며, 개개의 매크로블럭과 관련된 경우에는 적절하게 실행되지 않을 수 있는데, 예를 들면, 다수의 비동기 프로세싱 엘리먼트 중 하나에서 처리될 수 있다. 따라서, 데이터 의존 동작은 이전 또는 이후의 매크로블럭으로부터의 정보 취득에 의존한다. 이러한 상당한 차이의 인식으로부터 멀티프로세서 비디오 디코딩에 다수의 상당한 이점을 제공하는 본 발명의 아키텍쳐가 유도되었다.
도 4는 제1 서브 프로세스(12)가 프로세싱 엘리먼트에서 실행되고, 이것이 전송 버퍼(20)를 통해 가령 부가 프로세싱 엘리먼트에서 실행되는 부가적 서브 프로세스(14, 16, 18)에 통신되며, 그 출력은 VOP(22)에 전송되는 디코더(10)를 도시하고 있다. 구체화된 실시예에서는 각 서브 프로세스가 개별 프로세싱 엘리먼트에서 실행되는 것으로 간주되지만, 이러한 서브 프로세스들은 본 발명에 따른 데이터 의존성 및 데이터 독립성의 구분이 유지되는 한, 프로세싱 엘리먼트와 일대일 대응을 가질 필요가 없다는 것이 이해되어야 한다. 여기서, 제1 프로세싱 엘리먼트에서 실행되는 제1 서브 프로세스(12)는 VLD_EXTENDED 프로세스로 참조되며, 블럭(24)에서의 VLD, 블럭(26)에서의 PDD, 블럭(28)에서의 IS, 블럭(30)에서의 IDCP, 블럭(34)에서의 IACP 및 블럭(36)에서의 MB(macroblock builder)를 포함하는 모든 데이터 의존 동작을 실행하기 위해 생성된다.
IDCP에 의해 이전 디코딩 블럭으로부터 요구되는, IQ 후의 DC 값은 서브 프로세스 VLD_EXTENDED(12)로부터 공급된다. 본 발명에서 각 동작은 블럭 레벨에서의 정보에 기초한다. 그러나, 본 발명은, 디코딩된 헤더 및 데이터 정보를 데이터 구조의 정규 포맷으로 변환하여, 데이터 독립 매크로블럭을 바람직하게 실행하는 다수의 프로세서에 균일하게 전송될 수 있도록 하는 MB(36)를 포함한다. 이러한 프로세스로 얻어지는 데이터 구조는 다른 데이터 구조로부터의 정보에 의존함이 없이 후속 처리될 수 있다. 서브 프로세스 VLD_EXTENDED는 프로세서 엘리먼트 중 하나에 할당되는데, 여기서는 VLD_EXTENDED_processor로 참조되는 제1 프로세싱 엘리먼트로 지칭된다. VLD_EXTENDED_processor에서 실행되는 것으로 기술된 VLD_EXTENDED 프로세스는, 본 발명의 교시로부터 벗어남이 없이, 가령, 실행이 기능적 또는 분할 배열에 따라 분할되는 것과 같이, 하나 이상의 엘리먼트를 통해 얼터너티브하게(alternatively) 분할될 수 있다는 것이 이해되어야 한다.
디코더 내의 데이터 독립 매크로블럭을 실행하기 위한 부가 프로세싱 엘리먼트 각각은 여기서 MB_processor - 이 경우에서는 도면에서 예로서 도시된 3개의 프로세싱 엘리먼트(14, 16, 18)로 예시화되어 있음 - 로 참조된다. 멀티프로세싱 디코더(10)의 실시예에서, 서브 프로세스는 하나의 프로세스를 실행하도록 구성된 각 프로세싱 엘리먼트와 직접적으로 관련이 있으며, 따라서 이와 동일하다.
구조화된 데이터는 MB 프로세서로 전송되는 서브 프로세스 VLD_EXTENDED에 의해 생성된다. VLD_EXTENDED 프로세스에 의해 생성되는 독립 매크로블럭 데이터는 데이터 의존성을 제거했기 때문에, 이들 데이터 블럭은 다수의 소정의 개별 MB_processors에 의해 독립적으로 처리된다. 또한, VLD_EXTENDED 프로세스에 의해 생성된 데이터 블럭은 어떤 특정 순서로 처리될 필요가 없다는 것이 이해될 것이다. 따라서, 각각의 MB_processors는, 이용가능하게 되었을 때, 가령, 이전 블럭의 프로세싱을 완성한 후, 전송 버퍼로부터 구조화된 데이터를 페치할 수 있다. 매크로블럭 프로세서는 충분한 프로세싱 대역폭이 MB_processor에서 이용가능하게 되었을 때, 이용가능한 매크로블럭을 복구한다. 데이터 독립 구조 매크로블럭의 데이터 독립성은, 다른 프로세싱 엘리먼트로 소정의 순서로 독립 매크로블럭을 실행할 필요성을 경감시킨다는 것이 이해되어야 한다. MB_processor는, 일련의 동작, 가령 IQ의 일부(바람직하게 AC부)(38), 변환 계수에 의존하는 IDCT 동작(40) 및 가령, VOP 메모리(22)로부터 저장된 VOP 데이터에 의존하는 MC(42)를 실행함으로써, 비디오 비트 스트림, 가령 MPEG-4의 디코딩을 완성하기 위해 데이터 독립 동작을 실행한다.
도 5는 멀티프로세싱 디코더의 프로세싱 엘리먼트에서 실행될 수 있는 것과 같은, 디코딩 동작을 상이한 서브 프로세스에 개별적으로 적용되는 데이터 의존 동작 및 데이터 독립 동작으로 나누는 본 발명의 텍스쳐 디코딩 방법에서의 프로세싱의 플로우를 도시하고 있다. 데이터 의존 텍스쳐 디코딩 동작은, 블럭(50)에서와 같이 하나의 서브 프로세스(VLD_EXTENDED)로 수행되고, 구조화된 매크로블럭 데이터는, 블럭(52)에서와 같이 다른 서브 프로세스(MC)에서 프로세싱하기 위해 생성되는데, 이는 블럭(54)에서와 같이, 서브 프로세스에 통신된다. 데이터 독립 동작은 블럭(56)에 도시된 바와 같이, VOP와 연관된 매크로블럭 데이터에서 실행되며, 텍스쳐 디코딩된 출력은 매크로블럭 데이터의 실행에 응답하여 블럭(58)에서 생성된다.
도 6은 다수의 프로세싱 엘리먼트를 구비한 디코더에서 실행되는 본 발명의 방법을 포함하는 동작을 보다 일반적인 용어로 설명하고 있다. 데이터 의존 동작의 세트는, 블럭(70)에서와 같이 소정의 비디오 포맷으로 인코딩된 비트 스트림에 대해 제1 프로세서로 실행된다. 데이터 독립 구조 매크로블럭을 부가 프로세서에 전송하는 것은 블럭(72)에 도시된 바와 같다. 부가 프로세서 각각에서 데이터 독립 매크로블럭에 대한 디코딩 동작을 실행하는 것이 블럭(74)에 나타나 있다. 마지막으로, 디코딩된 비디오 블럭은, 블럭(76)에서 부가 프로세서로부터 출력된다. 비록 데이터 독립 매크로블럭을 프로세싱하기 위해 작은 개수인 하나의 부가 프로세서가 이용될 수 있지만, 디코더의 효율을 향상시키기 위해 본 발명의 디코더에는 적어도 3개의 프로세싱 엘리먼트를 이용하는 것이 바람직하다.
전술된 본 발명의 멀티프로세싱 디코더 및 방법은 다수의 이점을 제공한다. 먼저, 멀티프로세싱의 속도 이익을 얻기 위해, 아키텍쳐를 "분할하는 것(slicing)"이 전혀 필요하지 않기 때문에, 상기 아키텍쳐는 다양한 인코딩 표준, 가령, MPEG-4 및 H.263에 적용 가능하다. 전스캐닝(pre-scanning)은 본 발명에서는 요구되지 않으며 플렉서블 데이터 전송 메카니즘(flexible data transfer mechanism)이 지원된다는 것이 이해될 것이다. 따라서, 전송 버퍼는 성능을 개선하기 위해 고속 데이터 캐쉬를 이용하여 구현될 수 있거나, 저가형 외부 메모리로 조립될 수 있다. 메모리 아키텍쳐가 사용됨에도 불구하고, 데이터 전송에 필요한 오버헤드는 가능한 적게 된다. VLD_EXTENDED_processor에 의한 사용을 위해서는 VLD 테이블의 카피(copy)가 하나만 필요하지만, 다른 MB_processors는 VLD 테이블로부터의 정보가 필요없다는 것이 이해될 것이다. 그러므로, 본 발명의 방법을 이용하면, 데이터 캐쉬 필요성이 상당히 줄어들고 전체 성능은 증가된다는 것이 이해될 것이다.
텍스쳐 디코딩을 수행하는 상기 멀티프로세싱 디코더 및 방법은 또 다른 이익을 제공하기 위해 이용된다. 후속하여 IS를 수행하는 방법을 먼저 기술하고 이어서 PDD가 계산되는 방식을 변경함으로써 AC 예측을 결정하는 방법에 대해 기술한다.
도 7에 도시된 것과 같이, 예측 방향이 수직이면, 현재 블럭의 제1 행은 상위 블럭의 제1 행으로부터 예측된다. 상술한 바와 같이, 수직 예측은 다음과 같이 수행될 수 있다는 것이 이해될 것이다.
QF X [i]=C[i]+P[i]//dc_scalar (i= 0~7)
도 8은 본 발명이 SIMD 인스트럭션을 포함하는 멀디미디어 프로세싱 엘리먼트에서 어떻게 배치될 수 있는지의 예를 도시하는 인스트럭션 리스트이다. 고성능 데이터 프로세싱을 달성하기 위해, 다수의 프로세서가 SIMD 인스트럭션을 포함하는 것이 이해될 것이다. 이들 SIMD 프로세서는 하나의 인스트럭션에 응답하여 다수의 데이터 엘리먼트를 처리할 수 있다. 본 발명의 방법을 실시할 경우, SIMD 인스트럭션을 사용하면, MPEG-4 및 유사 아키텍쳐의 포맷을 포함하는 비디오 포맷 내의 AC 예측 성능을 향상시킬 수 있다.
전술한 AC 예측 동작에서는 총 14 인스트럭션 사이클에 대해 7개의 분할 및 7개의 부가를 필요로 하였다는 점에 주목하자. 그러나, 도 8에서와 같이, SIMD 인스트럭션을 이용하면, 필요한 인스트럭션의 수는 상당히 줄어들게 된다. 도면에서 SIMD 인스트럭션의 사용은 4개의 계수를 계산하는데 필요한 단 2개의 인스트럭션 사이클로 귀결되는데, 여기서 단 4개의 인스트럭션만이 AC 예측을 수행하는데 필요하다. 전술한 예는 각 계수에 대해 이용되는, 16 비트를 구비한 SIMD 인스트럭션에 대해 64개의 비트 레지스터를 사용하는 것으로 가정한다. 본 발명은 멀티프로세싱 환경에서 효율적으로 실행되도록 계산 순서 구조를 개혁하며, 상기 SIMD 기반 프로세서에 관련된 바와 같이, 프로세서 특정 속도 증진을 이용하는 능력을 제공하는 방법을 제공한다는 것이 이해되어야 한다. 당업자는 본 발명이 다양한 프로세서 아키텍쳐로 실행되며 SIMD 또는 유사 아키텍쳐에만 한정되는 것이 아님을 이해할 것이다.
도 9는 전위의 사용을 도시하고 있다. 예측 방향이 수평일 경우, 현재 블럭의 제1 열은 좌측 블럭의 제1 열로부터 예측된다. 전형적으로, IS는 예측 방향 결정 후에 수행된다. 그러나, 본 발명은 PDD를 하는 것을 연기하며, 대신에 예측 방향에 대한 추정을 한다. 추정은, 가령, 계수의 바람직한 순차적 로딩과 관련하여, 어느 방향이 계산 복잡성을 줄일 것인가에 기초하여 만들어지는 것이 바람직하다. 그런 다음, 스캐닝은 상기 추정에 따라 데이터에 대해 수행되는데, 여기서 교체 수평 스캔(alternate-horizontal scans)이 추정된 수직 예측 방향에 대해 적용된다. 교체 수평 스캔의 전위는 교체 수직 스캔이 된다는 것이 이해되어야 한다. 추정된 예측 방향이 수직으로 주어진 예를 고려하면, 실제 예측이 수평일 경우, 데이터의 전위는 실제 데이터 대신에 처리된다. 그러나, 에러는 프로세싱의 이후 단계에서, 결과의 전위를 수행함으로써 수정될 수 있다. 프로세서 오버헤드를 낮추는 것에 기초하여 바람직한 방향을 선택하는 능력과 데이터 독립 동작을 실행하는 다수의 프로세싱 엘리먼트 중 하나에서 이후 수정되는 능력은, 멀티프로세싱 능률을 증가시키며 계수 로딩 페널티 및 다른 동작 비효율성이 감소 또는 제거되도록 동작의 순서를 최적화시키도록 한다.
도 10은 디코딩 블럭을 재정리함으로써 빠른 디코딩을 제공하는 본 발명의 방법의 일반적 단계를 나타낸다. 비디오 비트 스트림의 데이터에 대해 예측 방향이 먼저 계산되니 않으며, 예측 방향은 블럭(90)에서 추정된다. 다음으로, 블럭(92)에서와 같이, 스캐닝이 추정된 예측 방향에 따라 수행된다. 또한, 블럭(94)에 도시된 바와 같이, 추정된 예측 방향에 기초하여, 선택적 디코더 동작이 수행될 수 있다. 실제 예측 방향은 블럭(96)에서 계산된다. 블럭(98)에서 결정된 바와 같이, 최초 추정이 정확했을 경우에는 변환이 필요치 않으며, 디코더 동작은 계속될 수 있다. 그러나, 추정이 부정확했을 경우에는, 블럭(100)에 도시된 바와 같이, 데이터에 대한 전위가 실행되며, 그 후에는, 블럭(102)에 도시된 바와 같이, 부가적 디코딩 동작이 수행될 수 있는데, 이는 IQ, IDCT, MC 등과 같은 동작을 포함할 수 있다.
도 11은 IS를 먼저 수행하고 나서 제1 프로세싱 엘리먼트(12)가 다수의 매크로블럭 프로세싱 엘리먼트(114, 116, 118, 120)와 연결된 멀티프로세싱 디코더에서 나중에 AC 예측을 결정하는 본 발명의 디코더(10)를 예시하고 있다. 제1 프로세서 엘리먼트와 나머지 프로세서 엘리먼트 사이의 데이터 독립 매크로블럭을 통신하는 전송 버퍼, 또는 다른 전송 메카니즘은 도시되지는 않았으나, 버퍼링에 대한 통상의 어느 형식, 가령 통상의 이중 버퍼링이 이용될 것이라는 것이 이해될 것이다.
본 실시예에서의 동작의 순서는, 인코딩된 MPEG-4 비디오 비트스트림이 블럭(122)에서의 VLD 동작에 의해 수신되고, 그 출력 OFS[n]는, 블럭(124)에서 교체 수평 스캔이 수행되어 POF[n]를 산출하는 것으로 도시되어 있다. 블럭(124)의 출력은, 선행 블럭으로부터 정보 OFA[n-1]를 수신하는 블럭(126)에서 IACP 동작에 종속되며, 선행 블럭으로부터의 정보 F[n-1]에 역시 종속되는 블럭(128)에서의 IDCP 동작에도 종속된다. 데이터에 대한 데이터 의존 동작이 이제 수행되고, 데이터 OFA[n]은 매크로블럭 프로세싱 엘리먼트 중 하나, 가령, 114, 116, 118 및 120으로 표시된 4개의 프로세서 엘리먼트 중 하나에 전달된다. 임의의 다수의 매크로블럭 프로세서 엘리먼트는 소정의 어플리케이션에서 프로세싱에 적합하도록 이용될 수 있다는 것이 이해될 것이다. 능률적인 동작을 제공하기 위해서는, 일반적으로 적어도 2개의 매크로블럭 프로세싱 엘리먼트가 사용되는 것이 바람직하다.
예측 방향 결정은 블럭(130)에서 매크로블럭 프로세싱 엘리먼트(114)에서 수행되며, 이전의 방향 추정이 유효한 경우 결정이 이루어진다. 방향 결정이 무효한 경우, 전위는, 블럭(134)에서의 IQ에 앞서, 블럭(132)에서 데이터에 대해 수행된다. 다음으로, 데이터 F[n]은 블럭(136)에서, 그 출력 f[n]이 블럭(140)에서 VOP 메모리와 연관되어 블럭(138)에서 MC 처리되는 IDCT에 종속된다.
PDD(130)는 도면에서 블럭(126)의 AC 예측 후 발생하는 것으로 보일 수 있다. 따라서, AC 예측은 추정된 방향에 따라서 수행될 수 있다. 종래의 예에 따르면, 실제 예측 방향이 수직으로 판명된 경우, 결과가 전위된다. 본 디코딩 방법은 특히 기술된 멀티프로세서 디코더 아키텍쳐에 사용될 경우 유리하다. 도면에서의 하나의 프로세서는 주로 연속 프로세스를 실행하기 위한 구성으로 도시되어 있으나, 부가적인 프로세서는 매크로블럭 또는 블럭 레벨에서 프로세싱을 수행하는 구성으로 되어 있다. 대안적으로, 당업자 중 하나는 연속 동작을 수행하는 프로세서를, 하나의 프로세서와 유사한 방식으로 동작하며 하나의 인스트럭션 스트림을, 가령 통상의 분할된 동작으로 나눈, 작은 수의 프로세서 엘리먼트로 변형하여 구현할 수 있다는 것이 이해될 것이다.
MPEG-4 비디오 스트림을 프로세싱하는 예를 고려하면, 주로 순차적인 인스트럭션을 실행하는 프로세서는 가변 길이 코드의 디코딩을 계속하고, 블럭 레벨에서 그 결과가 순차적인 디코딩 단계에 영향을 미칠 프로세스들을 실행하며, 후속 프로세싱을 위해 데이터 독립 데이터 구조를 생성한다. 그 결과로서의 데이터 독립 데이터 구조는, IQ, IDCT 동작 및 MC 동작과 같은 부가적인 디코딩 프로세스가 수행되는 다른 프로세서에 전송된다. 본 방법은 매크로블럭을 프로세싱하는데 사용되는 프로세서의 수를 제약하지 않기 때문에 가변적일 수 있다는 점이 이해될 것이다. 전형적으로, 임의의 수의 매크로블럭 프로세싱 엘리먼트가 주어진다면, 멀티프로세싱 디코더 시스템에서의 전체 디코딩 속도는 순차적인 프로세싱에 사용되는 프로세서의 속도에 의해 제약받을 것이며, 순차적인 프로세서의 작업 부하를 줄이는 것이 가장 중요한 고려사항이 될 것이다.
도 12는 데이터 의존 동작을 처리하고, VLD(122) 및 스캐닝(124)으로 구현되며, 매크로블럭과 같은 데이터 독립 데이터 구조를 4개의 프로세싱 엘리먼트(154, 156, 158, 160)로 구현된 데이터 독립 프로세싱 엘리먼트의 세트에 통신하는 제1 프로세서(152) 또는 그 등가물을 구비한 디코더(150)를 도시하고 있다. 데이터 독립 매크로블럭 및 매크로블럭 전송 메카니즘을 만드는 것은 도면에 도시되어 있지 않다. 또한, 본 디코더는 이후의 단계까지 예측 방향을 연기하는 상기 방법을 이용한다. 그러나, 디코더(150)는 IACP(126) 및 IDCP(128) 모두의 실행을 부가적으로 연기하도록 구성되어, 순차적이고 데이터 의존적인 프로세싱 엘리먼트(152)로부터의 계산적 부담을 데이터 독립적인 다수의 프로세싱 엘리먼트, 가령, 154, 156, 158, 160에 전가하도록 되어 있다. 상술한 바와 같이, DC 및 AC 예측에 요구되는 계산은 긴 분할 동작을 포함하는 다수의 산술적 동작을 포함한다. IACP(126), IDCP(128), 이전 추정을 대체하는 PDD 계산(130), 부정확한 추정에 대한 수정에 필요한 데이터 전위(132), IQ(134), IDCT 및 VOP(140)와 연관되어 수행되는 것으로 도시된 MC(134)을 포함하는 데이터 독립 동작이 도시되어 있다. 본 발명의 방법은 상기 긴 계산을, 그 수가 원하는 성능 레벨을 제공하는데 필요한 만큼 증가될 수 있는 데이터 독립 매크로블럭 프로세서에 시프트하도록 한다.
따라서, 본 발명은 멀티프로세싱 디코더에, 당업자에게 명백한 다수의 변형으로 실시될 수 있는 실시간 텍스쳐 디코딩을 수행하는 방법을 제공한다는 것을 알 것이다. 특히, PDD, IS, IDCP 및 IACP를 포함하는 것으로 기술되었던 상기 데이터 의존 동작의 세트가 당업자에 의해 본 발명의 교시를 벗어남이 없이, 변형, 즉 더 분할 될 수 있다는 것이 이해될 것이다. 또한, 본 발명은 AC 및 DC 예측을 포함하는 디코딩 동작을 수행하는 방법을 기술한다는 것을 알 것이다. 상기 방법은 MPEG-4 비트 스트림 및 디코딩 동작의 세트에 사용하기 위해 예시되지만, 본 발명의 교시는 당업자에 의해 다른 객체 지향 비디오 포맷으로 적용될 수 있으며, 필요한 경우 이후 단계에서 수정되는 유익한 예측 방향의 추정에 기초하여 IACP를 쉽게 수행하는 능력이 폭넓게 적용가능한 응용을 가짐이 이해될 것이다.
전술한 내용은 많은 특정 사항을 포함하지만, 이들은 본 발명의 범주를 한정하는 것이 아니라, 단지 현재 본 발명의 바람직한 몇몇 실시예의 설명을 제공하기 위한 것으로서 이해되어야 한다. 따라서, 본 발명의 범주는, 당업자에게 자명한 다른 실시예를 모두 포함하고, 이에 따라 처부된 청구항 외의 다른 것에 의해 한정되지 않는다는 것이 이해될 것이며, 여기서 단수의 엘리먼트에 대한 참조는 명백하게 그렇게 언급되지 않는 한 "하나 및 단지 하나"를 의미하고자하는 것이 아니라, 오히려 "하나 이상"을 의미하고자 하는 것이다. 당업자에게 공지된 상술한 바람직한 실시예의 모든 구조적, 화학적 및 기능적 등가물은 명백하게 본 명세서에 참조로서 통합되며 본 청구범위에 의해 포함되는 것으로 의도되었다. 또한, 본 발명에 의해 해결되고자 하는 문제를 해결하는 장치 및 방법은 청구 범위 내에 포함되기 때문에, 각각의 그리고 모든 문제를 해결하는 장치 및 방법에 대해 기재하지는 않았다. 또한, 엘리먼트, 컴포넌트 또는 방법 단계가 청구범위 내에 명시적으로 언급되었는지와 무관하게, 개시된 본 발명의 엘리먼트, 컴포넌트 또는 방법 단계 중 어느 것도 공중에게 봉헌되도록 의도된 것은 아니다. 본 명세서에 어떠한 청구항도, 엘리먼트가 "~하는 수단"의 문구를 사용하여 명시적으로 설명되는 것이 아니라면, 35 U.S.C 112의 6번째 단락의 조항에 하에서 해석되지 않는다.
관련 출원의 상호 참조
본 출원은 2002년 11월 13일에 출원되며, 그 내용 전체가 본 명세서에 참조로서 통합되는 미국특허출원번호 제10/294,925호로부터 우선권은 주장한다.
저작권 보호 대상 자료에 대한 통지
본 특허 문헌의 일부 내용은 미국 및 다른 국가의 저작권법의 보호 대상이다. 저작권자는 미국 특허 및 상표청의 공개 파일 또는 기록에 나타나는 것처럼, 특허 문헌 또는 본 특허 개시 중 어느 것에 의해 복제 재생산되는 것에 반대하지 않지만, 모든 저작권은 반드시 보유되어야 한다. 이에 의해, 저작권자는 본 특허 문헌이 비밀로 유지되도록 하는 그 권리 중 어느 것도 포기하지 않으며, C.F.R. §1.14를 쫓아 제한 없이 그 권리를 포함한다.

Claims (68)

  1. 비디오 텍스쳐 정보를 디코딩하는 장치에 있어서,
    비디오 비트 스트림으로부터 데이터 의존 동작을 실행하며 나머지 데이터 독립 동작이 실행될 수 있는 데이터 구조를 생성하는 수단과,
    상기 디코더에서의 상기 데이터 독립 동작을 VOP(a video object plane)과 연관하여 실행하는 수단과,
    상기 데이터 구조가 상기 데이터 의존 동작을 실행하는 수단으로부터 상기 데이터 독립 동작을 실행하는 수단으로 통신되는 전송 버퍼를 포함하는 장치.
  2. 제1항에 있어서,
    상기 데이터 의존 동작을 실행하는 수단은 디코딩 동작을 실행하는데 적응된 프로세싱 엘리먼트를 포함하는 장치.
  3. 제2항에 있어서,
    상기 데이터 의존 동작을 실행하는 수단은 VLD(variable length decoding), PDD(prediction direction decision), IS(inverse scanning), IDCP(inverse DC prediction), IQ(inverse-quantization), IACP(inverse AC prediction), IDCP(inverse DC prediction) 및 MB(macroblock building)로 구성된 상기 데이터 디코딩 동작으로부터 선택된 하나 이상의 데이터 의존 디코딩 동작을 실행하는 장치.
  4. 제3항에 있어서,
    상기 MB는 디코딩된 헤더 및 데이터 정보를, 상기 데이터에 대한 데이터 독립 동작을 실행하는 다수의 프로세서에 전송될 수 있는 통상의 데이터 구조의 포맷으로 변환하는 장치.
  5. 제1항에 있어서,
    상기 데이터 의존 동작을 실행하는 수단은 VLD를 수행하도록 적응된 프로세싱 엘리먼트를 포함하고, 계산 또는 추정에 의해 PDD에 이르며, 후속하여 IS하는 장치.
  6. 제1항에 있어서,
    상기 데이터 독립 동작을 실행하는 수단은 데이터 독립 데이터 구조에 따라 디코딩 동작을 실행하도록 적응된 매크로 프로세싱 엘리먼트를 포함하는 장치.
  7. 제6항에 있어서,
    상기 매크로블럭 프로세싱 엘리먼트는 PDD, IACP, IDCP, IQ, IDCT 및 MC(motion compensation)으로 구성된 상기 데이터 동작으로부터 선택된 하나 이상의 데이터 독립 디코딩 동작을 실행하는 장치.
  8. 제6항에 있어서,
    상기 매크로블럭 프로세싱 엘리먼트는 PDD를 계산하고, 데이터 전위 동작(a data transpose operation)으로 예측 방향 추정 에러를 수정하며, IQ를 계산하고, IDCT를 계산하며, MC를 수행하도록 적응된 장치.
  9. 제1항에 있어서,
    상기 장치는 디코더 효율을 증가시키기 위해 상기 데이터 독립 동작을 실행하는 수단 중 적어도 2개를 포함하는 장치.
  10. 비디오 텍스쳐 정보의 멀티프로세서 디코딩용 장치에 있어서,
    순차적 순서로 실행되어야 하는 매크로블럭 디코딩 동작을 실행하도록 실행하며, 데이터 독립 매크로블럭 정보를 보유하기 위해 데이터 구조를 만들도록 적응된 제1 프로세싱 엘리먼트와,
    상기 데이터 독립 매크로블럭 정보를 수신하도록 적응된 전송 버퍼와,
    상기 데이터 독립 매크로블럭 정보를 수신하는 상기 전송 버퍼에 동작가능하도록 연결되어 내부에서 부가적인 디코딩 동작을 실행하는 적어도 2개의 매크로블럭 프로세싱 엘리먼트를 포함하는 장치.
  11. 제10항에 있어서,
    상기 매크로블럭 프로세서의 상기 디코딩 동작은 VOP와 관련하여 실행되는 장치.
  12. 제10항에 있어서,
    상기 데이터 의존 디코딩 동작은 다른 매크로블럭으로부터 일시적으로 전위되는 부가 정보를, 상기 데이터 의존 동작을 실행하는 조건으로서 수집하는 소정의 매크로블럭에서 수행되며, 따라서 순차적 순서로 처리되어야 하는 동작을 포함하는 장치.
  13. 제10항에 있어서,
    상기 독립 매크로블럭 정보를 보유하기 위해 데이터 구조를 만들기 위한 적응은, 상기 디코딩된 헤더 및 데이터 정보를 다수의 프로세서에 전송하기 위해 통상의 데이터 구조 포맷으로 변환하는 MB를 포함하는 장치.
  14. 제13항에 있어서,
    상기 데이터 구조는 상기 다수의 프로세서에서 순차적 프로세싱을 필요로하지 않는 장치.
  15. 멀티프로세싱 디코더에서 텍스쳐 정보를 디코딩하는 방법에 있어서,
    제1 프로세서에서 소정의 비디오 포맷으로 인코딩된 비트스트림에 대한 데이터 의존 동작의 세트에 대해 데이터 독립 동작을 실행하는 단계와,
    데이터 독립 구조 매크로블럭을 부가 프로세서에 전송하는 단계와,
    상기 부가 프로세서의 각각에서 상기 데이터 독립 매크로블럭을 실행하는 단계와,
    상기 부가 프로세서로부터 디코딩된 비디오 블럭을 출력하는 단계를 포함하는 방법.
  16. 제15항에 있어서, 상기 전송 단계는,
    상기 데이터 독립 매크로블럭을 전송 버퍼에 로딩하는 단계와,
    실행 대역폭이 이용가능한 경우 상기 부가 프로세서 중 하나로 상기 데이터 독립 구조화 매크로블럭 중 하나를 페칭하는 단계를 포함하는 방법.
  17. 제16항에 있어서,
    상기 부가 프로세서에 의한 상기 데이터 독립 매크로블럭의 상기 데이터 독립성은 상기 독립 매크로블럭을 순차적 순서로 실행할 필요성을 경감시키는 방법.
  18. 제15항에 있어서,
    상기 데이터 의존 동작은 PDD를 추정으로서 행하는 단계를 포함하고,
    상기 추정은 필요한 경우에 상기 데이터 독립 동작에 포함되는 이후의 PDD 실행 시, 변환을 이용하여 수정되는 방법.
  19. 제15항에 있어서,
    상기 데이터 의존 동작은 1차원 디코더 어레이가 후속 프로세싱을 위해 2차원 어레이로 변환되는 IS를 포함하는 방법.
  20. 제15항에 있어서,
    상기 데이터 의존 동작은 PDD로부터의 예측 방향이 DC 예측을 하는데 이용되는 IDCP를 포함하는 방법.
  21. 제15항에 있어서,
    상기 데이터 의존 동작은 PDD로부터의 예측 방향이 AC 예측을 하는데 이용되는 IACP를 포함하는 방법.
  22. 제15항에 있어서,
    상기 부가 프로세서는 상기 데이터 독립 매크로블럭의 실행을 위해 사용되는 적어도 2개의 프로세싱 엘리먼트를 포함하는 방법.
  23. 제15항에 있어서,
    상기 데이터 의존 동작은 1차원 디코더 어레이가 다른 프로세싱을 위해 2차원 어레이로 변환되는 IS를 포함하는 방법.
  24. 제15항에 있어서,
    상기 데이터 의존 동작은 상기 PDD로부터의 상기 예측 방향이 DC 예측을 하는데 이용되는 IDCP를 포함하는 방법.
  25. 제15항에 있어서,
    상기 데이터 독립 동작은 PDD 또는 예측 방향 추정, IS, IDCP 및 IACP를 포함하는 방법.
  26. 제15항에 있어서,
    상기 데이터 독립 동작은 이전 디코딩 블럭으로부터 디코딩된 DC값에 의존하는 IQ-AC(DC inverse quantization)를 포함하는 방법.
  27. 제15항에 있어서,
    상기 데이터 독립 동작은 IQ 동작의 일부를 포함하는 방법.
  28. 제27항에 있어서,
    상기 IQ 동작의 일부는 IQ-AC를 포함하는 방법.
  29. 제15항에 있어서,
    상기 데이터 독립 동작은 계수가 변환 동작에 이용되는 IDCT 동작을 포함하는 방법.
  30. 제15항에 있어서,
    상기 데이터 독립 동작은 저장된 VOP 데이터에 의존하는 MC를 포함하는 방법.
  31. 제15항에 있어서,
    상기 비트 스트림은 실질적인 객체 지향 포맷으로 인코딩되는 방법.
  32. 제31항에 있어서,
    상기 비트 스트림은 MPEG-4 비디오 포맷으로 인코딩되는 방법.
  33. 제31항에 있어서,
    상기 비트 스트림은 H.263 포맷으로 인코딩되는 방법.
  34. 다수의 프로세싱 엘리먼트를 사용할 수 있는 디코더에서 텍스쳐 정보를 디코딩하는 방법에 있어서,
    데이터 의존 텍스쳐 디코딩 동작을 하나의 서브 프로세스에서 처리하는 단계와,
    다른 서브 프로세스에서 처리하기 위한 데이터 독립 구조화 매크로블럭을 생성하는 단계와,
    상기 구조화 매크로블럭 데이터를 상기 서브 프로세스에 통신하는 단계와,
    상기 VOP와 연관된 상기 매크로블럭에 대한 데이터 독립 동작을 실행하는 단계와,
    상기 매크로블럭 데이터의 실행에 응답하여 텍스쳐 디코딩 출력을 생성하는 단계를 포함하는 방법.
  35. 제34항에 있어서,
    상기 데이터 의존 텍스쳐 디코딩 동작은 제1 매크로블럭에 다이렉트된 경우 부가 정보가 다른 매크로블럭으로부터 취득되어 상기 동작을 완성하는 것을 요하는 동작을 포함하는 방법.
  36. 제35항에 있어서,
    상기 다른 매크로블럭은 상기 제1 매크로블럭과 일시적으로 전위되는 매크로블럭을 포함하는 방법.
  37. 제34항에 있어서,
    각각의 상기 서브 프로세스는 디코더 내의 개별 프로세싱 엘리먼트에서 실행되는 방법.
  38. 제34항에 있어서,
    상기 데이터 의존 서브 프로세스는 하나의 프로세싱 엘리먼트 내에서 실행되는 방법.
  39. 제34항에 있어서,
    상기 방법이 구현되는 상기 디코더는 적어도 3개의 프로세싱 엘리먼트로 구성된 방법.
  40. 제34항에 있어서,
    상기 비트 스트림은 실질적인 객체 지향 포맷으로 인코딩되는 방법.
  41. 제40항에 있어서,
    상기 비트 스트림은 MPEG-4 비디오 포맷으로 인코딩되는 방법.
  42. 제40항에 있어서,
    상기 비트 스트림은 H.263 비디오 포맷으로 인코딩되는 방법.
  43. 인코딩된 비디오 비트 스트림을 수신하는 디코더에서 예측 방향에 따라 디코딩 동작을 수행하는 방법에 있어서,
    상기 예측 방향을 계산하지 않고 상기 비트 스트림의 데이터에 대한 예측 방향을 추정하는 단계와,
    상기 추정된 예측 방향에 따라 스캐닝하는 단계와,
    상기 데이터에 대한 예측 방향을 계산하는 단계와,
    상기 예측 방향 추정이 부정확한 경우, 상기 데이터의 전위를 실행하는 단계를 포함하는 방법.
  44. 제43항에 있어서,
    상기 예측 방향의 계산 단계 이전에, 소정 회수의 부가적 디코딩 동작을 실행하는 단계를 더 포함하는 방법.
  45. 제44항에 있어서,
    상기 부가적 디코딩 동작은 IDCP를 포함하는 방법.
  46. 제44항에 있어서,
    상기 부가적 디코딩 동작은 IACP를 포함하는 방법.
  47. 제43항에 있어서,
    상기 예측 방향의 추정은 제1 프로세싱 엘리먼트에 의해 수신된 데이터에 의해 실행되지만, 상기 예측 방향의 계산은 다수의 프로세싱 엘리먼트 중에서 실행되는 이후의 디코딩 단계에서 실행되는 방법.
  48. 제47항에 있어서,
    상기 제1 프로세싱 엘리먼트는 순차적 프로세싱을 실행하도록 적응된 방법.
  49. 제48항에 있어서,
    상기 순차적 프로세싱은 MPEG-4 비트 스트림 내의 가변 길이 코드를 디코딩하는 단계를 포함하는 방법.
  50. 제48항에 있어서,
    상기 순차적 프로세싱은 블럭 레벨의 이전 또는 이후 단계에서 일반적으로 데이터에 의존하는 프로세스를 실행하는 단계를 포함하는 방법.
  51. 제50항에 있어서,
    상기 순차적 프로세싱은 가변 길이 코드 및 추정된 예측 방향에 따른 스캐닝을 포함하는 방법.
  52. 제51항에 있어서,
    상기 제1 프로세싱 엘리먼트는 IDCP를 실행하도록 적응된 방법.
  53. 제51항에 있어서,
    상기 제1 프로세싱 엘리먼트는 IACP를 실행하도록 적응된 방법.
  54. 제47항에 있어서,
    상기 예측 방향의 추정은 로드 동작의 수를 줄이도록 선택되는 방법.
  55. 제54항에 있어서,
    상기 예측 방향은 계수가 연속되는 메모리 어드레스로부터 로딩될 수 있는 방향에 기초하여 추정되는 방법.
  56. 제55항에 있어서,
    상기 예측 방향의 추정은 소정의 방향에 따라 수행되는 방법.
  57. 제56항에 있어서,
    상기 추정된 예측 방향은 수직으로서 미리 결정되는 방법.
  58. 제47항에 있어서,
    다수의 프로세싱 엘리먼트에서 수행되는 상기 이후의 디코딩 단계는,
    예측 방향을 결정하는 단계와,
    추정된 예측 방향이 부정확할 경우, 상기 데이터를 전위하는 단계와,
    상기 데이터를 IQ하는 단계와,
    상기 데이터를 역 이산 변환(inverse-discrete transforming)하는 단계와,
    상기 데이터를 VOP와 관련하여 MC하는 단계를 포함하는 방법.
  59. 제58항에 있어서,
    상기 이후의 디코딩 단계는 IDCP를 더 포함하는 방법.
  60. 제58항에 있어서,
    상기 이후의 디코딩 단계는 IACP를 더 포함하는 방법.
  61. 비디오 디코더 내에서 비디오 데이터에 대한 PDD를 연기하는 방법에 있어서,
    순차적인 비디오 스트림 프로세싱을 위해 사용되는 예측 방향에 대한 추정을 하는 단계와,
    상기 데이터에 대해 PDD를 수행하는 단계와,
    최초 추정이 부정확한 경우, 상기 데이터를 전위하는 단계를 포함하는 방법.
  62. 제61항에 있어서,
    상기 예측 방향에 대한 추정은 상기 디코더 내의 데이터 독립 동작을 실행하기 위해 이용되는 방법.
  63. 제61항에 있어서,
    상기 PDD의 성능 및 상기 데이터의 가능한 전위는 상기 데이터에 대한 데이터 독립 동작으로서 수행되는 방법.
  64. 제61항에 있어서,
    상기 예측 방향에 대한 추정은 순차적인 데이터 의존 동작의 계산 오버헤드를 줄이는 방향으로 선택되는 방법.
  65. 비디오 비트 스트림을 수신하는 디코더에서의 예측 방향 계산을 수행하는 방법에 있어서,
    상기 예측 방향을 먼저 계산하지 않고 상기 비디오 비트 스트림의 데이터에 대한 예측 방향을 추정하는 단계와,
    상기 추정된 예측 방향에 따라 스캐닝하는 단계와,
    상기 데이터에 대해 IDCP하는 단계와,
    상기 데이터에 대해 IACP하는 단계와,
    상기 예측 방향을 계산하는 단계와,
    상기 예측 방향 추정이 부정확한 경우, 상기 데이터의 전위를 수행하는 단계와,
    상기 데이터를 역 이산 변환하는 단계와,
    상기 데이터를 VOP와 연관하여 MC하는 단계를 포함하는 방법.
  66. 제65항에 있어서,
    상기 예측 방향의 추정은 프로세서 오버헤드를 줄이는 방향에 기초하여 선택되는 방법.
  67. 비디오 비트 스트림을 수신하는 멀티프로세싱 디코더에서의 예측 방향 계산을 수행하는 방법에 있어서,
    제1 프로세싱 엘리먼트에서 순차적 동작을 실행하는 단계와,
    상기 예측 방향을 먼저 계산하지 않고 상기 제1 프로세싱 엘리먼트 내의 상기 비디오 비트 스트림의 데이터에 대해 예측 방향을 추정하는 단계와,
    상기 제1 프로세싱 엘리먼트에서 추정된 예측 방향에 따라 스캐닝하는 단계와,
    상기 제1 프로세싱 엘리먼트 내의 상기 데이터에 대해 IDCP하는 단계와,
    상기 제1 프로세싱 엘리먼트 내의 상기 데이터에 대해 IACP하는 단계와,
    다수의 프로세싱 엘리먼트 중 하나에서 블럭 레벨 프로세싱을 실행하는 단계와,
    상기 다수의 프로세싱 엘리먼트 중 하나에서 상기 예측 방향을 계산하는 단계와,
    상기 예측 방향 추정이 부정확한 경우, 상기 다수의 프로세싱 엘리먼트 중 하나에서 데이터에 대해 전위를 수행하는 단계와,
    상기 다수의 프로세싱 엘리먼트 중 하나에서 상기 데이터에 대해 IQ를 하는 단계와,
    상기 다수의 프로세싱 엘리먼트 중 하나에서 상기 데이터에 대해 역 이산 변환하는 단계와,
    상기 다수의 프로세싱 엘리먼트 중 하나에서 VOP와 연관하여 상기 데이터에 대해 MC하는 단계를 포함하는 방법.
  68. 비디오 비트 스트림을 수신하는 멀티프로세싱 디코더에서 예측 방향 계산을 수행하는 방법에 있어서,
    제1 프로세싱 엘리먼트에서 연속 동작을 실행하는 단계와,
    상기 예측 방향을 먼저 계산하지 않고 상기 제1 프로세싱 엘리먼트 내의 상기 비디오 비트 스트림의 데이터에 대해 상기 예측 방향을 추정하는 단계와,
    상기 제1 프로세싱 엘리먼트에서의 추정된 상기 예측 방향에 따라 스캐닝하는 단계와,
    다수의 프로세싱 엘리먼트 중 하나에서 블럭 레벨 프로세싱을 수행하는 단계와,
    상기 다수의 프로세싱 엘리먼트 중 하나에서 상기 데이터에 대해 IDCP하는 단계와,
    상기 다수의 프로세싱 엘리먼트 중 하나에서 상기 데이터에 대해 IACP하는 단계와,
    상기 다수의 프로세싱 엘리먼트 중 하나에서 상기 예측 방향을 계산하는 단계와,
    상기 예측 방향 추정이 부정확할 경우, 상기 다수의 프로세싱 엘리먼트 중 하나에서 상기 데이터에 대해 전위를 수행하는 단계와,
    상기 다수의 프로세싱 엘리먼트 중 하나에서 상기 데이터에 대해 IQ하는 단계와,
    상기 다수의 프로세싱 엘리먼트 중 하나에서 상기 데이터에 대해 VOP와 연관하여 MC하는 단계를 포함하는 방법.
KR1020057008626A 2002-11-13 2003-11-12 멀티프로세서 환경에서의 실시간 mpeg-4 텍스쳐 디코딩방법 KR100974983B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/294,925 2002-11-13
US10/294,925 US6931061B2 (en) 2002-11-13 2002-11-13 Method of real time MPEG-4 texture decoding for a multiprocessor environment

Publications (2)

Publication Number Publication Date
KR20050086623A true KR20050086623A (ko) 2005-08-30
KR100974983B1 KR100974983B1 (ko) 2010-08-09

Family

ID=32229822

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057008626A KR100974983B1 (ko) 2002-11-13 2003-11-12 멀티프로세서 환경에서의 실시간 mpeg-4 텍스쳐 디코딩방법

Country Status (7)

Country Link
US (2) US6931061B2 (ko)
EP (3) EP1561345A4 (ko)
JP (2) JP4524188B2 (ko)
KR (1) KR100974983B1 (ko)
CN (1) CN1729690B (ko)
AU (1) AU2003290861A1 (ko)
WO (1) WO2004045079A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101292668B1 (ko) * 2009-10-08 2013-08-02 한국전자통신연구원 멀티프로세서기반의 영상 복호화 장치 및 방법
US9223620B2 (en) 2010-02-01 2015-12-29 Samsung Electronics Co., Ltd. Apparatus and method for processing data

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266150B2 (en) 2001-07-11 2007-09-04 Dolby Laboratories, Inc. Interpolation of video compression frames
US6931061B2 (en) * 2002-11-13 2005-08-16 Sony Corporation Method of real time MPEG-4 texture decoding for a multiprocessor environment
US20050232350A1 (en) * 2004-03-30 2005-10-20 Mana Hamada Inverse prediction apparatus and decoding apparatus using the same
KR20050112445A (ko) * 2004-05-25 2005-11-30 경희대학교 산학협력단 예측 부호화/복호화 장치, 예측 부호화/복호화 방법 및 그방법을 수행하는 프로그램이 기록된 컴퓨터 판독가능한기록매체
JP4491295B2 (ja) * 2004-07-22 2010-06-30 キヤノン株式会社 画像再生方法及び画像再生装置
KR101108681B1 (ko) * 2005-01-19 2012-01-25 삼성전자주식회사 동영상 코덱에서의 주파수 변환 계수 예측 방법 및 장치,이를 구비한 부호화 및 복호화 장치와 방법
JP4502203B2 (ja) * 2005-03-17 2010-07-14 ルネサスエレクトロニクス株式会社 画像符号化装置、及び画像復号化装置
US20080285648A1 (en) * 2005-04-22 2008-11-20 Geraud Plagne Efficient Video Decoding Accelerator
US20060256854A1 (en) * 2005-05-16 2006-11-16 Hong Jiang Parallel execution of media encoding using multi-threaded single instruction multiple data processing
KR100654601B1 (ko) * 2005-10-06 2006-12-08 주식회사 휴맥스 통합 코덱 장치 및 방법
US8000388B2 (en) 2006-07-17 2011-08-16 Sony Corporation Parallel processing apparatus for video compression
KR101520027B1 (ko) 2007-06-21 2015-05-14 삼성전자주식회사 움직임 추정 방법 및 장치
US20090010326A1 (en) * 2007-07-05 2009-01-08 Andreas Rossholm Method and apparatus for parallel video decoding
CN100591139C (zh) * 2007-09-30 2010-02-17 四川长虹电器股份有限公司 双核视频解码器解码任务分配方法
WO2009150808A1 (ja) * 2008-06-10 2009-12-17 パナソニック株式会社 画像復号装置および画像符号化装置
KR101219220B1 (ko) * 2010-10-20 2013-01-08 성균관대학교산학협력단 병렬 부호화를 위한 데이터 파티션 방법 및 이를 수행하는 프로그램을 기록한 기록매체
US8990351B2 (en) * 2011-04-20 2015-03-24 Mobitv, Inc. Real-time processing capability based quality adaptation
WO2012167418A1 (en) 2011-06-07 2012-12-13 Technicolor (China) Technology Co., Ltd. Method for encoding and/or decoding images on macroblock level using intra-prediction
CN104053000B (zh) * 2013-03-15 2018-12-25 英特希尔美国公司 使用平行译码路径的视频压缩(vc-2)译码
US9241163B2 (en) * 2013-03-15 2016-01-19 Intersil Americas LLC VC-2 decoding using parallel decoding paths

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02250581A (ja) * 1989-03-24 1990-10-08 Matsushita Electric Ind Co Ltd 映像信号の高能率符号化方法
US5001559A (en) * 1989-10-12 1991-03-19 International Business Machines Corporation Transform coding using coefficient prediction techniques
US5289577A (en) * 1992-06-04 1994-02-22 International Business Machines Incorporated Process-pipeline architecture for image/video processing
US5699460A (en) * 1993-04-27 1997-12-16 Array Microsystems Image compression coprocessor with data flow control and multiple processing units
CN1154631A (zh) * 1995-04-14 1997-07-16 株式会社东芝 图象解码装置
US5754457A (en) * 1996-03-05 1998-05-19 Intel Corporation Method for performing an inverse cosine transfer function for use with multimedia information
US5737451A (en) * 1996-04-10 1998-04-07 Eastman Kodak Company Method and apparatus for suppressing blocking artifacts in block-transform coded images
US5818532A (en) * 1996-05-03 1998-10-06 Lsi Logic Corporation Micro architecture of video core for MPEG-2 decoder
EP1835762A3 (en) * 1996-05-28 2007-10-03 Matsushita Electric Industrial Co., Ltd. decoding apparatus with intra prediction
JP4166305B2 (ja) * 1996-09-20 2008-10-15 エイ・ティ・アンド・ティ・コーポレーション ビデオの画像コーディング及びイントラコーディングのための暗黙の係数予測及び走査適合化を提供するビデオコーダー
US6341144B1 (en) * 1996-09-20 2002-01-22 At&T Corp. Video coder providing implicit coefficient prediction and scan adaptation for image coding and intra coding of video
KR100346728B1 (ko) * 1996-09-21 2002-10-12 삼성전자 주식회사 이산코사인변환의 dc 계수예측방법 및 이를 이용한 데이터 부호화방법
KR100346740B1 (ko) * 1996-09-21 2002-09-18 삼성전자 주식회사 이산코사인변환계수예측방법
JP4034380B2 (ja) * 1996-10-31 2008-01-16 株式会社東芝 画像符号化/復号化方法及び装置
KR100239349B1 (ko) * 1996-12-20 2000-01-15 구자홍 역이산 코사인 변환기의 데이타 포멧 변환 회로
JP3235555B2 (ja) * 1997-05-14 2001-12-04 日本電気株式会社 信号復号装置及び信号復号方法並びに信号復号処理をコンピュータに行わせるためのプログラムを記録した記録媒体
US6741748B1 (en) * 1997-06-19 2004-05-25 Samsung Electronics Co. Scan interleaving method based on context values of neighboring pixels, improved encoding/decoding method of binary shape data and encoding/decoding apparatus suitable for the same
CN1155261C (zh) * 1998-05-04 2004-06-23 通用仪器公司 用于mpeg-4视频数据逆量化的方法和设备
KR20010071519A (ko) * 1998-06-19 2001-07-28 벤자민 에프 커틀러 제1 해상도를 가지는 인코딩된 이미지를 제2 해상도를가지는 이미지로 직접 디코딩하는 방법 및 장치
US6658157B1 (en) * 1999-06-29 2003-12-02 Sony Corporation Method and apparatus for converting image information
US6553150B1 (en) * 2000-04-25 2003-04-22 Hewlett-Packard Development Co., Lp Image sequence compression featuring independently coded regions
US6647061B1 (en) * 2000-06-09 2003-11-11 General Instrument Corporation Video size conversion and transcoding from MPEG-2 to MPEG-4
JP3887178B2 (ja) * 2001-04-09 2007-02-28 株式会社エヌ・ティ・ティ・ドコモ 信号符号化方法及び装置並びに復号方法及び装置
US6819803B2 (en) * 2001-07-02 2004-11-16 International Business Machines Corporation Faster lossless rotation of JPEG images
US8275047B2 (en) * 2001-09-20 2012-09-25 Xilinx, Inc. Method and device for block-based conditional motion compensation
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
KR100429020B1 (ko) * 2002-02-05 2004-04-29 (주)씨앤에스 테크놀로지 Mpeg-4 영상의 복호 방법
US7379956B2 (en) * 2002-07-14 2008-05-27 Apple Inc. Encoding and decoding data arrays
US7376280B2 (en) * 2002-07-14 2008-05-20 Apple Inc Video encoding and decoding
US6931061B2 (en) * 2002-11-13 2005-08-16 Sony Corporation Method of real time MPEG-4 texture decoding for a multiprocessor environment

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101292668B1 (ko) * 2009-10-08 2013-08-02 한국전자통신연구원 멀티프로세서기반의 영상 복호화 장치 및 방법
US9223620B2 (en) 2010-02-01 2015-12-29 Samsung Electronics Co., Ltd. Apparatus and method for processing data

Also Published As

Publication number Publication date
WO2004045079A2 (en) 2004-05-27
WO2004045079A3 (en) 2005-02-10
US6931061B2 (en) 2005-08-16
CN1729690B (zh) 2010-05-26
AU2003290861A8 (en) 2004-06-03
US20040091052A1 (en) 2004-05-13
JP4950272B2 (ja) 2012-06-13
EP2416574A3 (en) 2014-04-09
AU2003290861A1 (en) 2004-06-03
US7724820B2 (en) 2010-05-25
EP2416574A2 (en) 2012-02-08
EP2416573A3 (en) 2014-04-09
JP4524188B2 (ja) 2010-08-11
KR100974983B1 (ko) 2010-08-09
JP2006506856A (ja) 2006-02-23
EP1561345A4 (en) 2010-01-20
EP2416573A2 (en) 2012-02-08
US20050238097A1 (en) 2005-10-27
CN1729690A (zh) 2006-02-01
EP1561345A2 (en) 2005-08-10
JP2010063191A (ja) 2010-03-18

Similar Documents

Publication Publication Date Title
KR100974983B1 (ko) 멀티프로세서 환경에서의 실시간 mpeg-4 텍스쳐 디코딩방법
CA3098217C (en) Low-complexity intra prediction for video coding
Chen et al. Implementation of H. 264 encoder and decoder on personal computers
JP4920034B2 (ja) マルチスレッドsimd処理を利用したメディア符号化の並列実行
KR100762155B1 (ko) 비디오 코딩을 위한, 낮은 복잡도의 통합형 변환
KR100723411B1 (ko) 멀티 코덱용 변환 장치 및 방법과 멀티 코덱용 역변환 장치및 방법
WO2006063260A2 (en) Digital signal processing structure for decoding multiple video standards
KR20030019320A (ko) 스케일링이 가능한 mpeg-2 디코더
JP2009170992A (ja) 画像処理装置およびその方法、並びにプログラム
US20020021842A1 (en) Circuit and method for performing a two-dimensional transform during the processing of an image
US8861602B2 (en) Motion vector reconstruction in an entropy decoder
JP5174062B2 (ja) イントラ予測装置、符号化器、復号器、及びプログラム
JP2005184829A (ja) ビデオ圧縮用低パワー高性能変換コプロセッサ
AU2016277600B2 (en) Low-complexity intra prediction for video coding
JPH1084287A (ja) モジュール切り替え型画像圧縮・再生装置
AU2015264787B2 (en) Low-complexity intra prediction for video coding
Sriram et al. Computationally efficient lossless image coder
KR20050064117A (ko) H.264 디코더를 가속시키기 위하여 추가된 명령어에적합한 역정수 변환 연산기를 구비한 프로세서 및 그 방법

Legal Events

Date Code Title Description
N231 Notification of change of applicant
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: 20130723

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140723

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150723

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160722

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170726

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180726

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190724

Year of fee payment: 10