KR20110063866A - 비디오 디코더 내의 텍스쳐 디코딩 모듈의 버스 트래픽을 감소시키는 방법 및 장치 - Google Patents
비디오 디코더 내의 텍스쳐 디코딩 모듈의 버스 트래픽을 감소시키는 방법 및 장치 Download PDFInfo
- Publication number
- KR20110063866A KR20110063866A KR1020117010354A KR20117010354A KR20110063866A KR 20110063866 A KR20110063866 A KR 20110063866A KR 1020117010354 A KR1020117010354 A KR 1020117010354A KR 20117010354 A KR20117010354 A KR 20117010354A KR 20110063866 A KR20110063866 A KR 20110063866A
- Authority
- KR
- South Korea
- Prior art keywords
- zero
- codec
- packets
- pairs
- independent
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/93—Run-length coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/18—Methods 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 a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/423—Methods 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
- H04N19/426—Methods 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 using memory downsizing methods
- H04N19/428—Recompression, e.g. by spatial or temporal decimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
비디오 비트스트림의 텍스쳐 디코딩 동안의 버스 트레픽을 감소시키는 기술이 제공된다. 일 구성에서, 무선 통신 디바이스 (예를 들어, 셀룰러 전화, 등) 는 비트스트림 매크로블럭 (MB) 정보 및 레지듀얼 패킷 데이터를 분리하도록 동작하는 명령들을 실행시키도록 구성된 프로세서를 포함한다. 레지듀얼 패킷 데이터는 코덱 독립적인 범용 순서를 갖는 코덱-독립적인 넌-제로 (non-zero) MB-패킷들을 생성시키기위해 사용된다. 코덱-독립적인 넌-제로 MB-패킷들 및 MB 정보는 따라서 비디오 비트스트림의 대표 프레임의 픽셀들을 재구성하는 데에 사용된다.
Description
1. 분야
본 개시는 일반적으로 비디오 프로세싱 분야에 관련되고, 더욱 구체적으로 비디오 디코더 내의 텍스쳐 디코딩 모듈의 버스 트래픽 (bus traffic) 을 감소시키기 위한 기술에 관련된다.
2. 배경 기술
비디오 데이터 내의 디지털 정보의 양은 대량이고 비디오 카메라의 성능의 발전과 함께 증가하는 경향이 있다. 비디오 데이터의 프로세싱은 메모리, 계산, 대역폭, 및 비디오-이용가능한 디바이스들 및 특히 셀룰러 전화, 휴대 정보 단말기 (PDA), 랩톱 컴퓨터 등과 같은 배터리를 동력으로 이용하는 무선 통신 디바이스의 전력 공급원의 큰 요구를 발생시킨다.
MPEG-4/VC-1/H.264 표준을 준수하는 비디오 프로세싱 시스템에서, 비트 스트림의 각 매크로블럭의 계수들은 384 개의 16 비트 워드를 사용하여 기술된다. 비디오 디코더에서, 신택스 (syntax) 요소 분석을 수행하도록 ARM 또는 DSP 프로세서에 비디오 비트스트림이 입력되고, 디코딩된 레지듀얼 (residual) 데이터는 래스터-스캔 순서인, 비트스트림의 각 매크로블럭을 위한 384 개의 양자화된 계수들을 정의할 수 있도록 언지그재그 (un-zigzagged) 된다. 그리고 나서 양자화된 계수들은 비디오 프로세서의 픽셀 프로세서 가속기내의 텍스쳐 디코딩 하드웨어 (HW) 모듈에 입력된다.
텍스쳐 디코딩 프로세서는 양자화-해제, 레지듀얼 매크로블럭 형성을 위한 역변환, 및 재구성된 매크로블럭들을 발생시키기 위한 모션 보상 매크로블럭들의 추가와 같은 절차들을 포함한다. 초당 30 프레임의 WVAG 의 디스플레이 레이트를 위해서, 텍스쳐 디코딩 모듈에 입력된 매크로블럭 당 384 개의 계수들은 104 MBps 데이터 트래픽을 발생시킨다. 구체적으로, ARM 또는 DSP 가 외부의 메모리에 양자화된 계수 데이터를 기록하면, 텍스쳐 디코딩 HW 모듈은 데이터를 다시 역으로 패치하고, 캐시-미스 기록은 두배의 버스 트래픽을 발생시킨다. 비록 비디오 압축은 압축된 비디오 데이터의 리던던시를 현저하게 줄이지만, 이와 같은 프로세싱 테크닉은 무선 통신 디바이스의 전체적인 성능 및 소비자-결정적 특성들 (예를 들어, 배터리 수명, 통화 시간, 등) 을 감소시킬 수 있다.
따라서 비디오 비트스트림의 매크로블럭에서 텍스쳐 디코딩동안 버스 트래픽을 줄이기 위한 향상된 테크닉의 필요성이 있다.
비디오 비트스트림 내의 텍스쳐 디코딩 동안의 버스 트래픽을 감소시키는 기술이 여기서 설명된다. 일 실시형태에서, 무선 통신 디바이스 (예를 들어, 셀룰러 전화, 등) 는 비트스트림 매크로블럭 (MB) 정보 및 레지듀얼 패킷 데이터를 분리하도록 동작하는 명령들을 실행시키도록 구성된 프로세서를 포함한다. 그리고 나서 코덱-독립적인 넌-제로 (non-zero) MB-패킷들이 레지듀얼 패킷 데이터로부터 발생된다. 픽셀들은 코덱-독립적인 넌-제로 MB-패킷들 및 MB 정보들로부터 재구성된다.
다양한 다른 양태들 및 발명의 실시형태는 아래에서 더 상세히 설명될 것이다.
과제 해결 수단은 본 발명의 전체 정도 및 범위의 대표인 것으로 의도되거나 해석되어서는 안되고, 이것들과 부가적인 양태들은 특히 첨부된 도면들과 함께 발명의 상세한 설명으로부터 쉽게 명백해질 것이다.
도 1 은 무선 디바이스의 상위-레벨 블록도를 도시한다.
도 2 는 종래 비디오 디코더 모듈의 상위-레벨 블록도를 도시한다.
도 3 은 도 1 의 무선 디바이스의 비디오 디코더 모듈의 상위-레벨 블록도를 도시한다.
도 4a 는 MPEG/VC-1 표준을 준수하는 비트스트림의 매크로블럭 내의 계수들의 포맷팅 (formatting) 을 예시하는 도면을 도시한다.
도 4b 는 H.264 표준을 준수하는 비트스트림의 매크로블럭 내의 계수들의 포맷팅을 예시하는 도면을 도시한다.
도 5 는 레지듀얼 패킷 데이터를 코덱-독립적 포맷으로 리패킹 (repacking) 하기 위한 프로세스의 흐름도를 도시한다.
도 6 은 레지듀얼 패킷 데이터를 코덱-독립적 포맷으로 리패킹하기 위한 두번째 프로세스의 흐름도를 도시한다.
도 7 은 레지듀얼 패킷 데이터를 코덱-독립적 포맷으로 리패킹하기 위한 세번째 프로세스의 흐름도를 도시한다.
도 8 은 언지그재그 스캔 순서를 범용의 위치 및 레벨 데이터로 머징 (merging) 하기 위한 프로세스의 흐름도를 도시한다.
이해를 돕기 위해, 도면에서 공통되는 동일한 구성요소들을 표시하기 위해, 가능한 경우 동일한 참조 부호가 사용되었고, 각 구성요소들을 구별하기 위해 인용하는 경우 접미사가 더해질 수도 있다. 도면 내의 이미지들은 예시를 위해 간략화되어있고 반드시 일정한 비율로 그려진 것은 아니다.
첨부된 도면은 개시물의 예시적인 구성들을 예시하고, 따라서, 동일한 효과를 나타내는 다른 구성들을 허용할 수도 있는 개시물의 범위를 제한하는 것으로 간주되어서는 안된다. 그와 부합되게, 몇몇 구성들의 특징들이 추가의 설명 없이 다른 구성들에 포함될 수도 있음이 고려된다.
도 2 는 종래 비디오 디코더 모듈의 상위-레벨 블록도를 도시한다.
도 3 은 도 1 의 무선 디바이스의 비디오 디코더 모듈의 상위-레벨 블록도를 도시한다.
도 4a 는 MPEG/VC-1 표준을 준수하는 비트스트림의 매크로블럭 내의 계수들의 포맷팅 (formatting) 을 예시하는 도면을 도시한다.
도 4b 는 H.264 표준을 준수하는 비트스트림의 매크로블럭 내의 계수들의 포맷팅을 예시하는 도면을 도시한다.
도 5 는 레지듀얼 패킷 데이터를 코덱-독립적 포맷으로 리패킹 (repacking) 하기 위한 프로세스의 흐름도를 도시한다.
도 6 은 레지듀얼 패킷 데이터를 코덱-독립적 포맷으로 리패킹하기 위한 두번째 프로세스의 흐름도를 도시한다.
도 7 은 레지듀얼 패킷 데이터를 코덱-독립적 포맷으로 리패킹하기 위한 세번째 프로세스의 흐름도를 도시한다.
도 8 은 언지그재그 스캔 순서를 범용의 위치 및 레벨 데이터로 머징 (merging) 하기 위한 프로세스의 흐름도를 도시한다.
이해를 돕기 위해, 도면에서 공통되는 동일한 구성요소들을 표시하기 위해, 가능한 경우 동일한 참조 부호가 사용되었고, 각 구성요소들을 구별하기 위해 인용하는 경우 접미사가 더해질 수도 있다. 도면 내의 이미지들은 예시를 위해 간략화되어있고 반드시 일정한 비율로 그려진 것은 아니다.
첨부된 도면은 개시물의 예시적인 구성들을 예시하고, 따라서, 동일한 효과를 나타내는 다른 구성들을 허용할 수도 있는 개시물의 범위를 제한하는 것으로 간주되어서는 안된다. 그와 부합되게, 몇몇 구성들의 특징들이 추가의 설명 없이 다른 구성들에 포함될 수도 있음이 고려된다.
용어 '예시적인' 은 여기서 '예, 예시, 또는 실례로서' 를 의미하도록 사용된다. 여기서 ‘예시적인’ 임의의 다른 구성 또는 디자인은 반드시 다른 구성 또는 디자인에 비해 선호되어지거나 유리한 것으로 해석되는 것은 아니다. 이후로, 용어 '코어', '엔진', '머신', '프로세서' 및 '프로세싱 단위', 이와 마찬가지로 용어 '프레임' 및 '사진' 은 상호 교체하여 사용할 수 있다.
여기에 설명된 기술은 무선 및 유선 통신 또는 컴퓨팅을 위한 다양한 디바이스들 및 시스템들, 개인용 전자 기기, 핸드셋 등에 사용될 수도 있다. 이하 무선 통신을 위한 이러한 기술들의 예시적인 사용이 설명된다.
도 1 은 본 개시의 구성요소들을 포함하고 무선 통신 시스템에 사용될 수도 있는 무선 디바이스 (100) 의 구성의 블록도를 도시한다. 예를 들어, 무선 디바이스 (100) 는 셀룰러 전화 (즉, 핸드셋), 비디오 게임 콘솔, PDA, 랩톱 컴퓨터, 또는 비디오 또는 오디오/비디오 가능 디바이스일 수도 있고, 무선 통신 시스템은 다른 무선 통신 시스템들 중에서 코드 분할 다중 접속 (CDMA) 시스템 또는 모바일 통신을 위한 글로벌 시스템 (GSMC) 일 수도 있다.
무선 디바이스 (100) 는 일반적으로 안테나 (102), 수신기 (140), 송신기 (106), 디지털 섹션 (110), 디스플레이 유닛 (130), 및 메인 메모리 (140) 을 포함한다. 무선 통신 시스템의 각자의 기지국 양방향 통신들은 수신 및 전송 경로를 통하여 제공된다. 수신 경로에서, 기지국을 통하여 전송된 신호들은 안테나 (102) 에 의해 수신되고, 수신기 (104) 에 공급된다. 수신기 (104) 는 수신된 신호들을 변조하고 추가의 프로세싱을 위하여 변조된 신호를 디지털 섹션 (110) 으로 전달한다. 송신 경로에서, 송신기 (106) 는 송신될 데이터를 디지털 섹션 (110) 으로부터 획득하고, 데이터에 의해 변조된 케리어 신호를 발생시키고, 기지국으로의 전송을 위해 안테나 (102) 로 변조된 케리어 신호를 전달한다.
디지털 섹션 (110) 은 예시적으로 모뎀 프로세서 (112), 비디오 프로세서 (114), 콘트롤러/프로세서 (116), 디스플레이 프로세서 (118), 향상된 RISC (reduced instruction set computer) 머신/디지털 신호 프로세서 (ARM/DSP) (122), 그래픽 프로세싱 유닛 (GPU) (124), 내부 메모리 (126), 내부 버스 (120), 및 외부 인터페이스 (128) 를 포함한다. 동작시, 디지털 섹션 (110) 의 구성요소들은 콘트롤러/프로세서 (116) 에 의해 관리된다.
모뎀 프로세서 (112) 는 수신기 (104) 로부터 제공된 데이터의 프로세싱 (즉, 변조/복조) 를 수행하거나 송신기 (106) 에 연결될 수 있다. 비디오 프로세서 (114) 는 인코딩/디코딩 또는 코덱과 같은 프로세싱, 캠코더, 비디오 플레이백, 비디오 컨퍼런싱, 및 기타 같은 종류의 것과 같은 비디오 어플리케이션에 의해 생산된 비디오 비트스트림 (즉, 정지 또는 움직임 이미지들) 을 위한 동작들을 수행한다. 그와 부합되게, 디지털 프로세서 (118) 는 무선 디바이스 (100) 의 디스플레이 유닛 (130) 상의 디코딩된 이미지의 렌더링 (rendering) 을 용이하게 한다.
GPU (124) 는, ARM/DSP (122) 와 결합하여 무선 디바이스 (100) 를 위한 그래픽 프로세싱 동작을 용이하게 한다. GPU (124) 는 예를 들어, 2005년 7월 28일 대중적으로 이용가능하게 된 "OpenGL Specification, Version 1.0" 문서를 준수할 수도 있다. 이 문서는 셀룰러 전화 및 앞서 말한 무선 통신 장치들과 관련된 다른 것들과 같은, 소형 기기 및 모바일 디바이스에 적합한 2D 벡터 그래픽의 표준이다. 추가적으로, GPU (124) 는 OpenGL2.0, OpenGL ES2.0, 또는 D3D9.0 그래픽 표준일 수도 있다.
디지털 섹션 (110) 의 기능 요소들은 특수 용도 집적 회로 (ASICs), RISCs, 필드 프로그램가능 게이트 어레이 (Field programmable gate arrays; FPGAs), 마이크로-콘트롤러들 또는 마이크로프로세서들, 집적회로의 다른 타입들로서 제작되거나 이들을 포함할 수 있다.
무선 디바이스 (100) 에 의해 수신되거나 전송된 압축된 비디오 비트스트림은 일반적으로 일 이상의 산업용 비디오 압축 및 통신 표준을 준수하는 비디오 코딩 기술들을 이용하여 압축되어있다. 일 실시형태에서, 압축된 비디오 비트스트림은 적어도 하나의 MPEG/VC-1/H.264 표준 중 하나를 준수한다. MPEG/VC-1/H.264 을 준수하는 비디오 비트스트림의 디코딩은 각자의 프레임들의 매크로블럭 내의 텍스쳐 디코딩을 포함하고, 특히, 매크로블럭의 양자화된 계수 데이터를 결정하는 것을 포함한다.
디지털 섹션 (110) 에서, 비디오 프로세서 (114) 는 본 개시의 실시형태들을 따라 매크로블럭 내의 텍스쳐 디코딩을 수행하도록 구성되고, 따라서 메모리 활용의 효율, 계산 대역폭, 및 무선 디바이스 (100) 의 전력 자원을 증가키는 비디오 디코더 (VD) 모듈 (115) 을 포함한다. 특히, VD 모듈 (115) 은 내부 메모리 (126) (또는 메인 메모리 (140)) 내에 저장되고 VD 모듈 (115) 의 (도 3 에 나타난) 픽셀 프로세서 (360) 로 프로세싱을 위하여 계속적으로 전달되는 계수 데이터의 양을 감소시킨다.
도 2 는 종래의 VD 모듈 (200) 의 상위-레벨 블록도를 도시한다. 일반적으로 VD 모듈 (200) 은 가변 길이 코드 (VLC) 디코더 (210), 매크로블록 정보의 버퍼 (220), 레지듀얼 패킷 데이터 버퍼 (230), 레지듀얼 패킷 데이터 프로세싱 유닛 (240), 384 워드/매크로블럭 용량의 계수 버퍼 (250), 및 픽셀 프로세서 (260) 를 포함한다.
입력된 비트스트림 (예를 들어, MPEG-4 준수 비트스트림) 에서, VLC 디코더 (210) 는 비트스트림을 디코딩하고, 신택스 요소 파싱 (parsing) 을 수행하고 매크로블록 정보 및 레지듀얼 패킷 데이터를 두개의 데이터 패킷들로 분리한다. (패킷 헤더 정보와 같은) 제 1 데이터 패킷은 버퍼 (220) 로 전달되고 모션 벡터들, 양자화 파라미터들 (QPs), 코딩되었는지 여부, 계수들, 버퍼 주소 및 픽셀 프로세서 (260) 를 구성하기 위해 사용되는 다른 특성들과 같은 마이크로블럭 (MB) 정보를 포함한다. 제 2 데이터 패킷은 지그재그 스캔 순서의 픽셀 양자화된 계수 데이터를 포함하고 버퍼 (230) 로 전달된다. 각 매크로블럭에 대해, 파싱 패킷 데이터는 (모드, 모션 벡터, 등의) 헤더 정보, 및 (MPEG-4 또는 VC-1 내의 실행-레벨 (run-level) 쌍, 트레일링 (trailing)-1, H264 CAVLC 의 넌-제로 계수 전의 0 의 개수 및 넌-제로 계수들, 또는 H264 CABAC 의 중요 계수 플래그 및 넌-제로 계수들 중 하나인) VLC 디코딩된 계수 데이터 정보를 포함한다.
레지듀얼 패킷 데이터 프로세싱 유닛 (240) 에서, 양자화된 계수 데이터의 제 2 데이터 패킷은 언지그재그 모듈 (242) 에 의해 래스터 스캔 순서로 언지그재그된다. MPEG-4 비디오 비트스트림을 위해, 역 AC/DC 예측이 또한 역 AC/DC 예측 모듈 (244) 에 의해 MPEG-4 인트라 데이터를 위해 프로세싱된다. 레지듀얼 패킷 데이터 프로세싱 유닛 (240) 의 출력은 계수 데이터를 384 워드/MB 로 저장하는 계수 버퍼 (250) 로 보내진다. 계수 데이터는 0 및 넌-제로 계수들을 모두 포함한다.
도 3 은 무선 디바이스 (110) 에서의 사용을 위한 VD 모듈 (115) 의 상위-레벨 블록도를 도시한다. 일반적으로, VD 모듈 (115) 은 가변 길이 코드 (VLC) 디코더 (310), 매크로블럭 정보의 버퍼 (320), 선택적인 레지듀얼 패킷 데이터 버퍼 (330), 범용 레지듀얼 패킷 데이터 프로세싱 유닛 (340), 범용-패킹된 넌-제로 계수 버퍼 (350), 및 픽셀 프로세서 (360) 를 포함한다. 범용-패킹된 넌-제로 계수 버퍼 (350) 가 넌-제로 계수들을 포함하기 때문에, 버퍼 (350) 의 유효한 데이터는 384 보다 작을 수도 있고 넌-제로 계수들의 개수의 함수일 수도 있다. 다른 구성으로, 버퍼 (350) 는 384 워드/매크로블럭들보다 클 수도 있다. 예를 들어, 버퍼 (350) 의 크기는 후에 설명되는 (위치, 레벨) 포맷을 위해 최악의 크기인 (1+2*384) 워드/매크로블럭들로 디자인될 수도 있다.
입력된 비트스트림 (예를 들어, MPEG-4 준수 비트스트림) 에서, VLC 디코더 (310) 는 비트스트림을 디코딩하고, 신택스 요소 파싱을 수행하고 매크로블럭 정보 및 레지듀얼 패킷 데이터를 두개의 데이터 패킷들로 분리한다. 제 1 데이터 패킷은 버퍼 (320) 로 전달되고 모션 벡터들, 양자화 파라미터들 (QPs), 코딩되었는지 여부, 계수들, 버퍼 주소 및 픽셀 프로세서 (360) 를 구성하기 위해 사용되는 다른 특성들과 같은 마이크로블럭 (MB) 정보를 포함한다. 제 2 데이터 패킷 (레지듀얼 패킷 데이터) 은 지그재그 스캔 순서의 픽셀 양자화된 계수 데이터를 포함하고, 범용 레지듀얼 패킷 데이터 프로세싱 유닛 (340) 에 의해 프로세싱되기 전에, 선택적으로 레지듀얼 패킷 데이터 버퍼 (330) 에 전달된다.
범용 레지듀얼 패킷 데이터 프로세싱 유닛 (340) 에서, 양자화된 계수 데이터의 제 2 데이터 패킷이 도 4a 내지 4b 에 나타난 것과 같이 언지그재그 모듈 (342) 에 의해 레스터 스캔 순서로 언지그재그 된다. MPEG-4 비디오 비트스트림을 위해, 역 AC/DC 예측이 또한 역 AC/DC 예측 모듈 (344) 에 의해 MPEG-4 인트라 데이터를 위해 프로세싱된다. 역 AC/DC 예측을 수행할 때, 선택적 버퍼 (330) 가 사용될 수도 있다. 그렇지만, 버퍼 (330) 는 VD 모듈 (115) 의 부분일 필요는 없다. 그리고 나서, 레지듀얼 패킷 데이터 프로세싱 유닛 (340) 은 리패킹 (repacking) 모듈 (346) 에서 MPEG 포맷 또는 H.246 포맷의 코덱-독립적 포맷으로 언지그재그된 양자화된 계수 데이터를 리패킹한다. 리패킹 계수 데이터 (출력 데이터) 는 범용-패킹된 넌-제로 계수 버퍼 (350) 에 보내진다.
언지그재그 모듈 (342) 에서, 매크로블럭내의 0 및 넌-제로 계수들이 정의된다. 리패킹 모듈 (346) 은 각각의 넌-제로 계수가 정의되는 코덱-독립적인 넌-제로 MB-패킷을 발생시킨다. 넌-제로 계수들은 비트 맵, 실행-레벨 (run-level (RL)) 쌍 또는 위치-레벨 (location-level (LL)) 쌍을 사용하여 식별된다. 예를 들어, 위치-레벨 (LL) 쌍을 위한 넌-제로 계수는 숫자 쌍 (A,B) 포맷으로 식별될 수 있고, A 및 B 는 매크로블럭의 각각의 Y, Cr, 또는 Cb 요소의 계수의 위치 및 값 (또는 레벨) 의 각자의 기술어이다.
리패킹 하는 동안, 리패킹 모듈 (346) 에 의해 넌-제로 계수 데이터 (출력 데이터) 는 넌-제로 계수 데이터의 비트 맵인 RL 쌍 또는 LL 쌍을 포함하는 MB-패킷으로 재정렬된다. 버퍼 (350) 에서, 넌-제로 계수의 넌-제로 MB-패킷이 저장된다. 위치 및 레벨 특성이 사용되는 경우, 각각의 LL 쌍은 매크로블럭의 넌-제로 계수 (즉, 각자의 특성의 넌-제로 값을 갖는 계수) 의 위치 및 수치 값 (또는 레벨) 을 정의하는데; 다만, 데이터의 위치는 증가 또는 감소하는 순서로 정렬될 필요는 없다. 여기에서 용어 "위치" 및 "레벨" 은 계수의 입력된 비디오 포맷 및 값의 특정한 넌-제로 계수의 위치에 부합되게 관련된다. 따라서, 넌-제로 MB-패킷은 코덱 독립적이다. 넌-제로 MB-패킷에서, 0 의 계수를 위한 정보 (즉, 0 과 동일한 수치 값을 가지는 계수)는 생략되고, 따라서 각자의 매크로블럭의 계수 데이터의 압축이 제공된다.
범용-패킹된 넌-제로 계수 버퍼 (350) 내에 저장된 넌-제로 MB-패킷들은 버퍼 (350) 로 부터 픽셀 프로세서 (360) 으로 제공되고, 각각의 넌-제로 MB-패킷이 매크로블럭 정보와 함께 프로세서 (360) 에 의해 수행되는 프레임 재구성 루틴에서 사용된다. 픽셀 프로셋 (360) 내에서, 예를 들어 넌-제로 MB-패킷의 데이터 매핑 및 넌-제로 양자화된 계수들 간의 간격으로 0 의 계수들을 위치시키는 것을 사용하는 것에 의해 매크로블럭의 생략된 0 계수들이 재저장된다.
도 4a 내지 4b 는 MPEG-4 (도 4a) 및 H.264 (도 4b) 비트스트림들의 매크로블럭 내의 계수들을 포맷팅을 예시하는 도면이다. 매크로블럭은 각각의 계수들은 16-비트 워드로 표현된, 각각이 64 계수들을 갖는 Cr, Cb, 및 4 개의 Y 요소들 (총 384 계수) 을 포함한다. 리패킹 모듈 (346) 내의 넌-제로 MB-패킷에서, 0 의 계수들이 생략되므로, 매크로블럭의 넌-제로 계수들의 데이터만이 포함되어있다.
리패킹 모듈 (346) 에서 형성되는 코덱-독립적인 넌-제로 MB-패킷을 위해 몇몇의 스킴들이 고려된다. 동작에서, 각각의 이러한 스킴들은 실제 상황에서 매크로블럭의 계수 데이터를 저장하기 위해 필요한 메모리의 양을 감소시키고, 따라서, 각자의 데이터 스토리지 (예를 들어, 내부 메모리 (126)) 및 픽셀 프로세서 (360) 간의 트래픽 및 트래픽을 전송하기 위한 대역폭 요건을 감소시킨다.
도 5 는 레지듀얼 패킷 데이터를 코덱-독립적인 포맷으로 리패킹하기 위한 프로세스의 흐름도를 도시한다. 프로세스 (500) 는 블럭 (510) 에서 언지그재그 순서 (래스터 스캔 순서) 의 계수 데이터를 재스캔하는 것으로써 시작된다. 언지그재그된 레지듀얼 패킷 데이터 (이후에 "시퀀스 데이터" 로 종종 사용되어짐) 를 재스캔 한 후에, 재스캔된 시퀀스 데이터의 계수는 블럭 (520) 에서 넌-제로 위치를 지시하기 위해 비트맵 순서로 정렬된다. 블럭 (530) 에서, 비트 맵의 넌-제로 계수들은 패킷 길이를 갖는 코덱-독립적인 넌-제로 MB-패킷들로 리패킹된다. 각각의 MB 를 위한 패킷 길이는 (24+N) 16-비트 워드와 동일하고, 여기에서 N 은 넌-제로 계수들의 개수이고 1 이상 384 이하이며, 24 개의 16-비트 워드는 384 개의 계수들의 맵을 홀딩하기 위해 사용된다. 따라서, 양자화된 계수들은 모든 비디오 표준을 위한 고정된 패턴으로 리패킹된다.
도 6 은 레지듀얼 패킷 데이터를 코덱-독립적인 포맷으로 리패킹하기 위한 제 2 프로세스의 흐름도를 도시한다. 제 2 프로세스 (600) 는 블럭 (610) 에서 언지그재그 순서 (래스터 스캔 순서) 의 계수 데이터를 재스캔하는 것으로써 시작된다. 언지그재그 모듈 (342) 로부터 언지그재그된 레지듀얼 패킷 데이터 (이후에 "시퀀스 데이터" 로 종종 사용되어짐) 를 재스캔한 후에, 재스캔된 계수는 일 포맷 (실행, 레벨) 으로 배열될 수도 있다. 블럭 (610) 에서의 언지그재그 순서의 계수 데이터는 새로운 (실행, 레벨) 포맷이다. 블럭 (610) 에서 양자화된 레지듀얼 패킷 데이터를 언지그재그한 후에, 블럭 (620) 에서 각각의 MB 내에 얼마나 많은 RL 쌍이 있는지 표시하기 위해 데이터의 일 워드가 사용된다. 블럭 (630) 에서 넌-제로 계수들이 패킷 길이를 갖는 코덱-독립적인 넌-제로 MB-패킷들로 리패킹된다. 각각의 MB 를 위한 패킷 길이는 (1+2N) 16-비트 워드와 동일하고, 블럭 (620) 에서 발생되는 일 워드는 (1+2N) 16-비트 워드 내의 "1" 16-비트 워드와 일치한다. 따라서, 양자화된 계수들은 모든 비디오 표준을 위한 고정된 패턴으로 리패킹된다.
도 7 은 레지듀얼 패킷 데이터를 코덱-독립적인 포맷으로 리패킹하기 위한 제 3 프로세스의 흐름도를 도시한다. 제 3 프로세스 (700) 는 블럭 (710) 에서 언지그재그 순서 (개스터 스캔 순서) 의 계수 데이터를 재스캔하는 것으로써 시작된다. 언지그재그 모듈 (342) 로부터 언지그재그된 레지듀얼 패킷 데이터 (이후에 "시퀀스 데이터" 로 종종 사용되어짐) 를 재스캔 한 후에, 재스캔된 계수는 일 포맷 (실행, 레벨) 으로 배열될 수도 있다. 블럭 (710) 에서 양자화된 레지듀얼 패킷 데이터를 언지그재그한 후에, 블럭 (720) 에서 각각의 MB 내에 얼마나 많은 LL 쌍이 있는지 표시하기 위해 데이터의 일 워드가 사용된다. 블럭 (730) 에서, 넌-제로 계수들이 패킷 길이를 갖는 코덱-독립적인 넌-제로 MB-패킷들로 리패킹된다. 각각의 MB 를 위한 패킷 길이는 (1+2N) 16-비트 워드와 동일하고, 블럭 (720) 에서 발생되는 일 워드는 (1+2N) 16-비트 워드 내의 "1" 16-비트 워드와 일치한다. 따라서, 양자화된 계수들은 모든 비디오 표준을 위한 고정된 패턴으로 리패킹된다.
선호되어지는 제 3 실시형태에서, 제 2 실시형태에서와 같이, 패킷 길이는 또한 각각의 MB 내에 얼마나 많은 LL 쌍이 있는지 표시하기 위해 사용되는 일 워드를 포함하는 (1+2N) 16-비트 워드와 동일하고, 각각의 넌-제로 계수들은 LL 쌍에서 설명된다. 위치 정보는 단지 언지그재그 프로세싱의 부산물이고, 넌-제로 계수들을 위해 증가 또는 감소되는 순서일 필요는 없다. LL 쌍을 위한 포맷은 제 2 프로세스 (600) 에서 사용되는 재정렬 절차의 필요를 제거하고, ARM 또는 DSP 프로세서에서 펌웨어 개발을 위한 어떤 주기 비용도 증가시키지 않는다.
도 8 은 언지그재그 스캔 순서를 범용 위치 및 레벨 데이터로 머징하기 위한 프로세스 (800) 의 흐름도를 도시한다. 프로세스 (800) 에서, LL 쌍은 언지그재그된 데이터로부터 직접 발생될 수도 있다. 따라서, 프로세스 (800) 는 언지그재그 모듈 (342) 에 의한 것과 같이 언지그재그된 레지듀얼 패킷 데이터가 발생하는 블럭 (810) 에서 시작된다. 블럭 (820) 에서, 범용 위치 데이터가 발생된다. 블럭 (830) 에서, 범용 위치 데이터는 각각의 계수를 위한 LL 쌍을 갖는 맵으로 머징될 수 있다.
예시적인 실시 형태에서, 프로세스들은 하드웨어, 소프트웨어, 펌웨어, 또는 일 이상의 컴퓨터-실행가능 명령들이 포함된 컴퓨터 프로그램 제품의 형태의 다른 임의의 이들의 조합에 구현될 수도 있다. 소프트웨어 내에 구현되는 경우, 컴퓨터 저장 매체 및 컴퓨터 통신 매체를 포함하는 컴퓨터-판독가능 매체를 사용하여 저장되거나 전송될 수 있다.
여기에서 용어 "컴퓨터 저장 매체" 는 컴퓨터로 하여금 프로세스를 실행하도록 하는 명령들을 저장하도록 하는 임의의 매체를 의미한다. 제한이 아닌, 예시로서, 컴퓨터 저장 매체는 전자 메모리 디바이스들 (예를 들어, RAM, ROM, EEPROM, 및 이와 유사한 것들), 광학 메모리 디바이스들 (예를 들어, 컴팩트 디스크 (CD), 디지털 다목적 디스크 (DVD), 및 이와 유사한 것들), 자기 메모리 디바이스들 (예를 들어, 하드 드라이브, 플래시 드라이브, 테이프 드라이브, 및 이와 유사한 것들), 또는 컴퓨터 프로그램 제품을 저장하도록 하는 다른 메모리 디바이스들, 또는 이들 메모리 디바이스들의 조합을 포함하는 반도체 이용 메모리 디바이스를 포함할 수 있다.
여기서 용어 "컴퓨터 통신 매체" 는 예를 들어, 변조된 캐리어 웨이브, 광학 시그널, DC 또는 AC 전류, 및 이와 유사한 수단들을 이용하여 하나의 장소에서 다른 장소로 컴퓨터 프로그램 제품을 전송하도록 하는 임의의 물리적 인터페이스를 의미한다. 제한이 아닌 예시로서, 컴퓨터 통신 매체는 트위스티드 페어, 프린팅 또는 플랫 케이블, 동축 케이블, 광섬유 케이블, 디지털 가입자 라인 (DSL), 또는 다른 유선, 무선, 또는 광학 직병렬 인터페이스들, 또는 이들의 조합을 포함할 수 있다.
개시된 구성들의 이전의 설명은 당업자가 개시물을 제조하거나 실시할 수 있게 하도록 제공된다. 이들 구성에 대한 다양한 변형은 당업자에게 쉽게 명백할 것이며, 여기에 정의된 일반적인 원리는 개시물의 정신 및 영역을 벗어나지 않고 다른 구성에 적용할 수도 있다. 따라서, 이 개시는 여기에 도시된 구성들로 제한되는 것으로 의도된 것이 아니고, 여기에 개시된 원리들 및 독창적인 특성들에 부합하는 가장 넓은 범위를 부여하기 위함이다.
Claims (30)
- (i) 비트스트림 매크로블럭 (MB) 정보 및 레지듀얼 (residual) 패킷 데이터를 디코딩 및 분리하고; (ii) 상기 레지듀얼 패킷 데이터로부터 코덱-독립적인 넌-제로 (non-zero) MB-패킷들을 생성하며; (iii) 상기 코덱-독립적인 넌-제로 MB-패킷들 및 상기 MB 정보로부터 픽셀들을 재구성하도록 동작하는 명령들을 실행하도록 구성된 프로세서; 및
상기 명령들이 들어있는 메모리를 포함하는, 집적회로. - 제 1 항에 있어서,
비디오 비트스트림은 MPEG, VC-1, 또는 H.264 인코딩 표준 중 적어도 하나를 준수하는, 집적회로. - 제 1 항에 있어서,
상기 코덱-독립적인 넌-제로 MB-패킷들을 생성하도록 하는 명령들은, 각각의 매크로블럭을 위한 양자화된 계수를 정의하기 위하여 상기 레지듀얼 패킷 데이터를 언지그재그 (un-zigzag) 하고; 넌-제로 양자화된 계수들을 위치 및 레벨 (location and level; LL) 쌍들과 실행 및 레벨 (run and level; RL) 쌍들 중 하나로 재스캔 및 재정렬하고; 각각의 MB 내에 얼마나 많은 상기 LL 쌍들 또는 상기 RL 쌍들이 있는지 표시하는 1 워드의 데이터를 형성하도록 하는 명령들을 포함하고,
상기 LL 쌍들 및 상기 RL 쌍들의 각 하나는 각각의 하나의 넌-제로 양자화된 계수의 위치 및 레벨과 실행 및 레벨을 각각 정의하는, 집적회로. - 제 3 항에 있어서,
상기 프로세서는 또한, 소정의 패킷 길이를 갖는 상기 코덱-독립적인 넌-제로 MB-패킷들의 각각을 형성하도록 동작하고,
상기 각각의 MB 에 대한 패킷 길이는 1+2*N 개의 16-비트 워드들로 정의되고, 여기서 N 은 코덱 독립적인 범용 순서로 리스트된 넌-제로 양자화된 계수들의 수인, 집적회로. - 제 1 항에 있어서,
상기 프로세서는 또한, 소정의 패킷 길이를 갖는 상기 코덱-독립적인 넌-제로 MB-패킷들의 각각을 형성하도록 동작하고,
각각의 MB 에 대한 패킷 길이는 24+N 개의 16-비트 워드들로 정의되고, 여기서 N 은 코덱 독립적인 범용 순서로 리스트된 넌-제로 양자화된 계수들의 수인, 집적회로. - 제 1 항에 있어서,
상기 프로세서는 또한, 범용적으로 패킹 (packing) 된 넌-제로 계수들 버퍼 내에 상기 코덱-독립적인 넌-제로 MB-패킷들을 저장하도록 동작하는, 집적회로. - 제 1 항에 있어서,
상기 집적 회로는 셀룰러 전화, 비디오 게임 콘솔, PDA, 랩톱 컴퓨터, 비디오 가능 디바이스, 및 오디오/비디오 가능 디바이스로 구성되는 그룹 중에서 선택되는 무선 디바이스의 일부분인, 집적회로. - (i) 비트스트림 매크로블럭 (MB) 정보 및 레지듀얼 (residual) 패킷 데이터를 디코딩 및 분리하고; (ii) 상기 레지듀얼 패킷 데이터로부터 코덱-독립적인 넌-제로 (non-zero) MB-패킷들을 생성하며; (iii) 상기 코덱-독립적인 넌-제로 MB-패킷들 및 상기 MB 정보로부터 픽셀들을 재구성하도록 동작하는 명령들을 실행하도록 구성된 프로세서; 및
상기 명령들이 들어있는 메모리를 포함하는, 장치. - 제 8 항에 있어서,
비디오 비트스트림은 MPEG, VC-1, 또는 H.264 인코딩 표준 중 적어도 하나를 준수하는, 장치. - 제 8 항에 있어서,
상기 코덱-독립적인 넌-제로 MB-패킷들을 생성하도록 하는 명령들은, 각각의 매크로블럭을 위한 양자화된 계수를 정의하기 위하여 상기 레지듀얼 패킷 데이터를 언지그재그 (un-zigzag) 하고; 넌-제로 양자화된 계수들을 위치 및 레벨 (location and level; LL) 쌍들 및 실행 및 레벨 (run and level; RL) 쌍들 중 하나로 재스캔 및 재정렬하고; 각각의 MB 내에 얼마나 많은 상기 LL 쌍들 또는 상기 RL 쌍들이 있는지 표시하는 1 워드의 데이터를 형성하도록 하는 명령들을 포함하고,
상기 LL 쌍들 및 상기 RL 쌍들의 각 하나는 각각의 하나의 넌-제로 양자화된 계수의 위치 및 레벨과 실행 및 레벨을 각각 정의하는, 장치. - 제 10 항에 있어서,
상기 프로세서는 또한, 소정의 패킷 길이를 갖는 상기 코덱-독립적인 넌-제로 MB-패킷들의 각각을 형성하도록 동작하고,
상기 각각의 MB 에 대한 패킷 길이는 1+2*N 개의 16-비트 워드들로 정의되고, 여기서 N 은 코덱 독립적인 범용 순서로 리스트된 넌-제로 양자화된 계수들의 수인, 장치. - 제 8 항에 있어서,
상기 프로세서는 또한, 소정의 패킷 길이를 갖는 상기 코덱-독립적인 넌-제로 MB-패킷들의 각각을 형성하도록 동작하고,
각각의 MB 에 대한 패킷 길이는 24+N 개의 16-비트 워드들로 정의되고, 여기서 N 은 코덱 독립적인 범용 순서로 리스트된 넌-제로 양자화된 계수들의 수인, 장치. - 제 8 항에 있어서,
상기 프로세서는 또한, 범용적으로 패킹 (packing) 된 넌-제로 계수들 버퍼 내에 상기 코덱-독립적인 넌-제로 MB-패킷들을 저장하도록 동작하는, 장치. - 제 8 항에 있어서,
상기 장치는 셀룰러 전화, 비디오 게임 콘솔, PDA, 랩톱 컴퓨터, 비디오 가능 디바이스, 및 오디오/비디오 가능 디바이스로 구성되는 그룹 중에서 선택되는 무선 디바이스의 일부분인, 장치. - 비트스트림 매크로블럭 (MB) 정보 및 레지듀얼 (residual) 패킷 데이터를 디코딩 및 분리하기 위한 제 1 수단; 상기 레지듀얼 패킷 데이터로부터 코덱-독립적인 넌-제로 (non-zero) MB-패킷들을 생성하기 위한 제 2 수단; 상기 코덱-독립적인 넌-제로 MB-패킷들 및 상기 MB 정보로부터 픽셀들을 재구성하기 위한 제 3 수단을 포함하는, 장치.
- 제 15 항에 있어서,
상기 제 2 수단은, 각각의 MB 를 위한 양자화된 계수를 정의하기 위하여 상기 레지듀얼 패킷 데이터를 언지그재그 (un-zigzag) 하기 위한 수단; 넌-제로 양자화된 계수들을 위치 및 레벨 (location and level; LL) 쌍들 및 실행 및 레벨 (run and level; RL) 쌍들 중 하나로 재스캔 및 재정렬 하기 위한 수단; 각각의 MB 내에 얼마나 많은 상기 LL 쌍들 또는 상기 RL 쌍들이 있는지 표시하는 1 워드의 데이터를 형성하기 위한 수단을 포함하고,
상기 LL 쌍들 및 상기 RL 쌍들의 각 하나는 각각의 하나의 넌-제로 양자화된 계수의 위치 및 레벨과 실행 및 레벨을 각각 정의하는, 장치. - 제 16 항에 있어서,
상기 제 2 수단은, 소정의 패킷 길이를 갖는 상기 코덱-독립적인 넌-제로 MB-패킷들의 각각을 형성하기 위한 수단을 더 포함하고,
상기 각각의 MB 에 대한 패킷 길이는 1+2*N 개의 16-비트 워드들로 정의되고, 여기서 N 은 코덱 독립적인 범용 순서로 리스트된 넌-제로 양자화된 계수들의 수인, 장치. - 제 15 항에 있어서,
상기 제 2 수단은 소정의 패킷 길이를 갖는 상기 코덱-독립적인 넌-제로 MB-패킷들의 각각을 형성하기 위한 수단을 포함하고,
상기 각각의 MB 에 대한 패킷 길이는 24+N 개의 16-비트 워드들로 정의되고, 여기서 N 은 코덱 독립적인 범용 순서로 리스트된 넌-제로 양자화된 계수들의 수인, 장치. - 제 15 항에 있어서,
상기 코덱-독립적인 넌-제로 MB-패킷들을 저장하기 위한 제 4 수단을 더 포함하는, 장치. - 비디오 비트스트림의 매크로블럭 내에서 텍스쳐 디코딩을 수행하기 위한 컴퓨터 프로그램 제품으로서,
상기 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 매체를 포함하고,
상기 컴퓨터 판독 가능 매체는, 컴퓨터로 하여금,
비트스트림 매크로블럭 (MB) 정보 및 레지듀얼 (residual) 패킷 데이터를 디코딩 및 분리하고;
상기 레지듀얼 패킷 데이터로부터 코덱-독립적인 넌-제로 (non-zero) MB-패킷들을 생성하며;
상기 코덱-독립적인 넌-제로 MB-패킷들 및 상기 MB 정보로부터 픽셀들을 재구성하도록 하는 명령들을 포함하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품. - 제 20 항에 있어서,
상기 비디오 비트스트림은 MPEG, VC-1, 또는 H.264 인코딩 표준 중 적어도 하나를 준수하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품. - 제 21 항에 있어서,
상기 코덱-독립적인 넌-제로 MB-패킷들을 생성하도록 하는 명령들은, 각각의 매크로블럭을 위한 양자화된 계수를 정의하기 위하여 상기 레지듀얼 패킷 데이터를 언지그재그 (un-zigzag) 하고; 넌-제로 양자화된 계수들을 위치 및 레벨 (location and level; LL) 쌍들 및 실행 및 레벨 (run and level; RL) 쌍들 중 하나로 재스캔 및 재정렬하고; 각각의 MB 내에 얼마나 많은 상기 LL 쌍들 또는 상기 RL 쌍들이 있는지 표시하는 1 워드의 데이터를 형성하도록 하는 명령들을 포함하고,
상기 LL 쌍들 및 상기 RL 쌍들의 각 하나는 각각의 하나의 넌-제로 양자화된 계수의 위치 및 레벨과 실행 및 레벨을 각각 정의하는, 컴퓨터 판독 가능 매체를 포함하는 컴퓨터 프로그램 제품. - 제 22 항에 있어서,
상기 재스캔 및 재정렬하도록 하는 명령들은, 소정의 패킷 길이를 갖는 상기 코덱-독립적인 넌-제로 MB-패킷들의 각각을 생성하도록 하는 명령들을 더 포함하고
상기 각각의 MB 에 대한 패킷 길이는 1+2*N 개의 16-비트 워드들로 정의되고, 여기서 N 은 코덱 독립적인 범용 순서로 리스트된 넌-제로 양자화된 계수들의 수인, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품. - 제 20 항에 있어서,
상기 코덱-독립적인 넌-제로 MB-패킷들을 생성하도록 하는 명령들은, 소정의 패킷 길이를 갖는 상기 코덱-독립적인 넌-제로 MB-패킷들의 각각을 생성하는 명령들을 포함하고,
각각의 MB 에 대한 패킷 길이는 24+N 개의 16-비트 워드들로 정의되고, 여기서 N 은 코덱 독립적인 범용 순서로 리스트된 넌-제로 양자화된 계수들의 수인, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품. - 제 20 항에 있어서,
상기 명령들은 또한 컴퓨터로 하여금, 범용적으로 패킹 (packing) 된 넌-제로 계수들 버퍼 내에 상기 코덱-독립적인 넌-제로 MB-패킷들을 저장하도록 하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품. - 비디오 비트스트림의 매크로블럭 내에서의 텍스쳐 디코딩 방법으로서,
비트스트림 매크로블럭 (MB) 정보 및 레지듀얼 (residual) 패킷 데이터를 디코딩 및 분리하는 단계;
상기 레지듀얼 패킷 데이터로부터 코덱-독립적인 넌-제로 (non-zero) MB-패킷들을 생성하는 단계;
상기 코덱-독립적인 넌-제로 MB-패킷들 및 상기 MB 정보로부터 픽셀들을 재구성하는 단계를 포함하는, 텍스쳐 디코딩 방법. - 제 26 항에 있어서,
상기 생성하는 단계는, 각각의 매크로블럭을 위한 양자화된 계수를 정의하기 위하여 상기 레지듀얼 패킷 데이터를 언지그재그 (un-zigzag) 하는 단계; 넌-제로 양자화된 계수들을 위치 및 레벨 (location and level; LL) 쌍들과 실행 및 레벨 (run and level; RL) 쌍들 중 하나로 재스캔 및 재정렬하는 단계; 및 각각의 MB 내에 얼마나 많은 상기 LL 쌍들 또는 상기 RL 쌍들이 있는지 표시하는 1 워드의 데이터를 형성하는 단계를 포함하고,
상기 LL 쌍들 및 상기 RL 쌍들의 각 하나는 각각의 하나의 넌-제로 양자화된 계수의 위치 및 레벨과 실행 및 레벨을 각각 정의하는, 텍스쳐 디코딩 방법. - 제 27 항에 있어서,
상기 재스캔 및 재정렬하는 단계에서 소정의 패킷 길이를 갖는 상기 코덱-독립적인 넌-제로 MB-패킷들의 각각을 생성하고,
상기 각각의 MB 에 대한 패킷 길이는 1+2*N 개의 16-비트 워드들로 정의되고, 여기서 N 은 코덱 독립적인 범용 순서로 리스트된 넌-제로 양자화된 계수들의 수인, 텍스쳐 디코딩 방법. - 제 26 항에 있어서,
상기 코덱-독립적인 넌-제로 MB-패킷들을 생성하는 단계는, 소정의 패킷 길이를 갖는 상기 코덱 독립적인 넌-제로 MB-패킷들의 각각을 형성하는 단계를 포함하고,
각각의 MB 에 대한 패킷 길이는 24+N 개의 16-비트 워드들로 정의되고, 여기서, N 은 코덱 독립적인 범용 순서로 리스트된 넌-제로 양자화된 계수들의 수인, 텍스쳐 디코딩 방법. - 제 26 항에 있어서,
범용적으로 패킹 (packing) 된 넌-제로 계수들 버퍼 내에 상기 코덱-독립적인 넌-제로 MB-패킷들을 저장하는 단계를 더 포함하는, 텍스쳐 디코딩 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/247,720 | 2008-10-08 | ||
US12/247,720 US8576916B2 (en) | 2008-10-08 | 2008-10-08 | Method and apparatus for reducing bus traffic of a texture decoding module in a video decoder |
PCT/US2009/060051 WO2010042753A1 (en) | 2008-10-08 | 2009-10-08 | Method and apparatus for reducing bus traffic of a texture decoding module in a video decoder |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110063866A true KR20110063866A (ko) | 2011-06-14 |
KR101247070B1 KR101247070B1 (ko) | 2013-03-25 |
Family
ID=41683499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117010354A KR101247070B1 (ko) | 2008-10-08 | 2009-10-08 | 비디오 디코더 내의 텍스쳐 디코딩 모듈의 버스 트래픽을 감소시키는 방법 및 장치 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8576916B2 (ko) |
EP (1) | EP2345257A1 (ko) |
JP (1) | JP5226875B2 (ko) |
KR (1) | KR101247070B1 (ko) |
CN (1) | CN102177713B (ko) |
TW (1) | TW201031218A (ko) |
WO (1) | WO2010042753A1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9641846B2 (en) | 2010-10-22 | 2017-05-02 | Qualcomm Incorporated | Adaptive scanning of transform coefficients for video coding |
FR2982446A1 (fr) | 2011-11-07 | 2013-05-10 | France Telecom | Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants |
FR2982447A1 (fr) * | 2011-11-07 | 2013-05-10 | France Telecom | Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants |
US9621894B2 (en) * | 2012-01-13 | 2017-04-11 | Qualcomm Incorporated | Determining contexts for coding transform coefficient data in video coding |
US20220263691A1 (en) * | 2021-02-16 | 2022-08-18 | Nvidia Corporation | Technique to perform demodulation of wireless communications signal data |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6823016B1 (en) * | 1998-02-20 | 2004-11-23 | Intel Corporation | Method and system for data management in a video decoder |
CN1225904C (zh) * | 2002-04-12 | 2005-11-02 | 精工爱普生株式会社 | 在压缩域视频处理中降低存储器要求和实施有效的逆运动补偿的方法和设备 |
US7190724B2 (en) * | 2002-04-12 | 2007-03-13 | Seiko Epson Corporation | Method and apparatus for transform domain video processing |
US6927710B2 (en) * | 2002-10-30 | 2005-08-09 | Lsi Logic Corporation | Context based adaptive binary arithmetic CODEC architecture for high quality video compression and decompression |
US7840768B2 (en) * | 2005-12-13 | 2010-11-23 | Reliable Technologies, Inc. | Memory-controller-embedded apparatus and procedure for achieving system-directed checkpointing without operating-system kernel support |
DE202005010844U1 (de) | 2005-07-09 | 2006-11-16 | J. D. Theile Gmbh & Co. Kg | Gliederkette |
GB0524983D0 (en) * | 2005-12-07 | 2006-01-18 | Imagination Tech Ltd | Recompression and decompression of a data stream for rate smoothing |
-
2008
- 2008-10-08 US US12/247,720 patent/US8576916B2/en not_active Expired - Fee Related
-
2009
- 2009-10-08 JP JP2011531179A patent/JP5226875B2/ja not_active Expired - Fee Related
- 2009-10-08 KR KR1020117010354A patent/KR101247070B1/ko not_active IP Right Cessation
- 2009-10-08 WO PCT/US2009/060051 patent/WO2010042753A1/en active Application Filing
- 2009-10-08 EP EP09752551A patent/EP2345257A1/en not_active Ceased
- 2009-10-08 CN CN200980140540.7A patent/CN102177713B/zh active Active
- 2009-10-08 TW TW098134145A patent/TW201031218A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
US8576916B2 (en) | 2013-11-05 |
CN102177713B (zh) | 2014-03-19 |
EP2345257A1 (en) | 2011-07-20 |
JP5226875B2 (ja) | 2013-07-03 |
US20100086057A1 (en) | 2010-04-08 |
WO2010042753A1 (en) | 2010-04-15 |
TW201031218A (en) | 2010-08-16 |
CN102177713A (zh) | 2011-09-07 |
KR101247070B1 (ko) | 2013-03-25 |
JP2012505607A (ja) | 2012-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102596735B1 (ko) | 루마 및 크로마 성분에 대한 ibc 전용 버퍼 및 디폴트 값 리프레싱을 사용하는 인코더, 디코더 및 대응하는 방법들 | |
US10489426B2 (en) | Category-prefixed data batching of coded media data in multiple categories | |
US10390049B2 (en) | Electronic devices for sending a message and buffering a bitstream | |
US9986246B2 (en) | Devices for identifying a leading picture | |
RU2668723C2 (ru) | Способ и оборудование для кодирования и декодирования видеосигналов | |
US20210211657A1 (en) | Apparatus and Method for Filtering in Video Coding with Look-Up Table Selected Based on Bitstream Information | |
KR20210082406A (ko) | 스킵 모드를 이용한 영상 복호화 방법 및 이러한 방법을 사용하는 장치 | |
US10587875B2 (en) | Coding tools for subjective quality improvements in video codecs | |
KR20160016835A (ko) | 동영상 처리 방법 및 장치 | |
EP3140987A1 (en) | Method and technical equipment for video encoding and decoding using palette coding | |
KR101247070B1 (ko) | 비디오 디코더 내의 텍스쳐 디코딩 모듈의 버스 트래픽을 감소시키는 방법 및 장치 | |
KR20220157455A (ko) | 이미지 인코딩 및 디코딩을 위한 방법 및 디바이스 | |
JP2022547293A (ja) | 重み付き予測のための高レベルシグナリングの方法および装置 | |
US8599920B2 (en) | Intensity compensation techniques in video processing | |
US10349052B2 (en) | Method for coding and an apparatus | |
US20140092987A1 (en) | Entropy coding techniques and protocol to support parallel processing with low latency | |
US20140044194A1 (en) | Entropy coding techniques and protocol to support parallel processing with low latency | |
US9832478B2 (en) | Video encoding method and apparatus for determining size of parallel motion estimation region based on encoding related information and related video decoding method and apparatus | |
US20150334391A1 (en) | Region-based processing of predicted pixels | |
KR20230005862A (ko) | Act 및 jcbcr을 위한 스케일링 목록 제어 | |
CN113556542B (zh) | 帧内块复制单元及方法 | |
Dong et al. | ULIC: Ultra Lightweight Image Coder on Wearable Devices |
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: 20151230 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20161229 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20171228 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |