KR20130018413A - 랜덤 액세스 능력을 갖는 이미지 압축 방법 - Google Patents

랜덤 액세스 능력을 갖는 이미지 압축 방법 Download PDF

Info

Publication number
KR20130018413A
KR20130018413A KR1020127030087A KR20127030087A KR20130018413A KR 20130018413 A KR20130018413 A KR 20130018413A KR 1020127030087 A KR1020127030087 A KR 1020127030087A KR 20127030087 A KR20127030087 A KR 20127030087A KR 20130018413 A KR20130018413 A KR 20130018413A
Authority
KR
South Korea
Prior art keywords
block
pulse code
code modulation
encoding
image
Prior art date
Application number
KR1020127030087A
Other languages
English (en)
Other versions
KR101461771B1 (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 KR20130018413A publication Critical patent/KR20130018413A/ko
Application granted granted Critical
Publication of KR101461771B1 publication Critical patent/KR101461771B1/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/90Methods 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
    • 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/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/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/124Quantisation
    • 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/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process

Landscapes

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

Abstract

이미지 압축 방법은 랜덤 액세스 능력을 갖는다. 이 방법은 디지털 이미지들의 인트라 코딩을 포함한다. 이미지는 작은 블록들로 분할되고 각 블록은 이미지 내의 다른 블록들과는 독립적으로 코딩된다. 인코더는 각 블록마다 고정되고 미리 결정된 수의 비트들을 생성한다. 각 이미지 블록의 디코딩은 임의의 다른 이미지 블록과는 독립적으로 수행될 수 있다.

Description

랜덤 액세스 능력을 갖는 이미지 압축 방법{AN IMAGE COMPRESSION METHOD WITH RANDOM ACCESS CAPABILITY}
본 발명은 이미지 처리 분야에 관한 것이다. 더 구체적으로, 본 발명은 랜덤 액세스 능력을 갖는 이미지 압축에 관한 것이다.
종래의 이미지 압축 시스템들은 다수의 문제를 겪는다. 그들은 이미지 콘텐츠와 공간적으로 변하는 HVS(Human Visual System)의 시각적 마스킹 및 다른 특성들을 이용할 수 없다. 이것은 이러한 알고리즘들에 의해 이용되는 양자화 파라미터들이 전형적으로 이미지의 크기에 걸쳐 일정하기 때문이다. 그 결과, 이미지들은 효율적으로 압축될 수 없다. 또한, 이러한 시스템들을 이용하여 목표 비트율 또는 시각적 품질을 달성하려면, 이미지가 다수 회 압축되어야 한다.
이미지 압축 방법은 랜덤 액세스 능력을 갖는다. 이 방법은 디지털 이미지들의 인트라 코딩을 포함한다. 이미지는 작은 블록들로 분할되고 그 각각은 이미지 내의 다른 블록들과는 독립적으로 코딩된다. 인코더는 각 블록마다 고정되고 미리 결정된 수의 비트들을 생성한다. 각 이미지 블록의 디코딩은 임의의 다른 이미지 블록과는 독립적으로 수행될 수 있다.
일 양태에서, 장치 내의 컨트롤러에 프로그램된 이미지 압축 방법은, 이미지를 하나 이상의 블록들로 분할하는 단계, 하나 이상의 블록들 중 한 블록을 복수의 양자화 계수 값을 이용하여 인코딩하는 단계, 복수의 양자화 계수 값을 이용하는 인코딩의 최상 모드를 판단하는 단계, 및 인코딩의 최상 모드로 블록을 처리하여, 압축된 데이터를 생성하는 단계를 포함한다. 이 방법은 양자화 계수 값들 각각에 대한 코드 길이를 계산하는 단계를 더 포함한다. 최상 모드를 판단하는 단계는 허용되는 최대 비트 카운트보다 큰 비트 카운트에서 양자화 계수가 발생하면 양자화 계수를 자동으로 거절하는 단계를 포함한다. 블록을 인코딩하는 단계는 차분 펄스 코드 변조 인코딩 및 펄스 코드 변조 인코딩을 이용하여 블록을 인코딩하는 단계를 포함한다. 차분 펄스 코드 변조 인코딩은, 블록을 양자화하는 것, 블록 내의 각 양자화된 샘플에 대한 래스터 스캔 순서로 예측 값을 계산하는 것, 샘플들 각각에 대해 양자화된 블록 샘플과 양자화된 샘플의 예측 값 사이의 차를 결정함으로써 양자화된 차분(residual)을 판단하는 것, 및 제1 샘플 양자화된 값, 및 양자화된 차분들의 세트를 출력하는 것을 포함한다. 최상 모드는 최초 블록 샘플들에 대한 손실 없이 인코딩된 가장 많은 수의 비트들을 갖는다. 최상 모드로 블록을 처리하는 단계는, 시그널링 비트 형성, 엔트로피 코딩, 및 정제를 더 포함하는 펄스 코드 변조 인코딩 또는 차분 펄스 코드 변조 인코딩을 포함한다. 엔트로피 코딩은 양자화된 차분에 대해 크기 비트들의 수, 이전 제로들의 등가 수 및 사인(sign) 비트를 포함한다. 압축된 데이터는 고정되고 미리 결정된 사이즈이다. 컨트롤러는 프로그램된 컴퓨터 판독가능 매체 및 주문형 회로로 이루어지는 그룹으로부터 선택된다. 장치는 개인용 컴퓨터, 랩톱 컴퓨터, 컴퓨터 워크스테이션, 서버, 메인프레임 컴퓨터, 핸드헬드 컴퓨터, 휴대 정보 단말기, 셀룰러/이동 전화, 스마트 가전, 게임 콘솔, 디지털 카메라, 디지털 캠코더, 카메라 폰, iPhone, iPod?, 비디오 플레이어, DVD 라이터/플레이어, 텔레비전 및 홈 엔터테인먼트 시스템으로 이루어지는 그룹으로부터 선택된다.
다른 양태에서, 장치 내의 컨트롤러에 프로그램된 이미지 블록을 디코딩하는 방법은, 차분 펄스 코드 변조 또는 펄스 코드 변조를 이용하여 이미지 블록이 인코딩되는지를 판단하는 단계, 차분 펄스 코드 변조를 이용하여 이미지 블록이 인코딩되어 있으면, 차분 펄스 코드 변조 디코딩을 이용하여 이미지 블록을 디코딩하는 단계 및 펄스 코드 변조를 이용하여 이미지 블록이 인코딩되어 있으면, 펄스 코드 변조 디코딩을 이용하여 이미지 블록을 디코딩하는 단계를 포함한다. 이미지 블록은 다른 이미지 블록들과 독립적으로 디코딩된다.
다른 양태에서, 장치 내의 컨트롤러에 프로그램된 인코더는, 하나 이상의 블록들 중 한 블록을 복수의 양자화 계수 값을 이용하여 인코딩하기 위한 양자화 계수 모듈을 갖는 제1 차분 펄스 코드 변조 인코딩, 인코딩된 블록의 코드 길이를 결정하기 위한 코드 길이 계산 모듈, 복수의 양자화 계수 값을 이용하는 인코딩의 최상 모드를 판단하기 위한 모드 판단 모듈, 펄스 코드 변조가 최상 모드로서 선택되면, 펄스 코드 변조 인코딩을 수행하기 위한 펄스 코드 변조 모듈, 및 차분 펄스 코드 변조가 최상 모드로서 선택되면, 선택된 최상 모드 양자화 계수와 하나 이상의 블록들 중 한 블록을 인코딩하기 위한 양자화 계수 모듈을 갖는 제2 차분 펄스 코드 변조 인코딩을 포함한다. 인코더는 제2 차분 펄스 코드 변조 모듈을 시그널링하는 비트들을 생성하기 위한 시그널링 비트 형성 모듈, 비트스트림을 생성하기 위한 엔트로피 코딩 모듈, 및 비트스트림을 정제하기 위한 정제 모듈을 더 포함한다. 비트스트림은 고정되고 미리 결정된 사이즈이다.
다른 양태에서, 장치 내의 컨트롤러에 프로그램된 디코더는, 차분 펄스 코드 변조 또는 펄스 코드 변조를 이용하여 블록이 인코딩되는지를 판단하는 판단 모듈, 차분 펄스 코드 변조를 이용하여 블록이 인코딩되어 있으면 차분 펄스 코드 변조 디코딩을 이용하여 블록을 디코딩하기 위한 차분 펄스 코드 변조 모듈 및 펄스 코드 변조를 이용하여 블록이 인코딩되어 있으면 펄스 코드 변조 디코딩을 이용하여 블록을 디코딩하기 위한 펄스 코드 변조 모듈을 포함한다.
다른 양태에서, 장치 내의 컨트롤러에 프로그램된 시스템은, 이미지를 하나 이상의 블록들로 분할하고, 하나 이상의 블록들 중 한 블록을 복수의 양자화 계수 값을 이용하여 인코딩하고, 복수의 양자화 계수 값을 이용하는 인코딩의 최상 모드를 판단하고, 인코딩의 최상 모드로 블록을 처리하여, 압축된 데이터를 생성하기 위한 인코더, 및 차분 펄스 코드 변조 또는 펄스 코드 변조를 이용하여 블록이 인코딩되는지를 판단하고, 차분 펄스 코드 변조를 이용하여 블록이 인코딩되어 있으면, 차분 펄스 코드 변조 디코딩을 이용하여 블록을 디코딩하고, 펄스 코드 변조를 이용하여 블록이 인코딩되어 있으면, 펄스 코드 변조 디코딩을 이용하여 블록을 디코딩하기 위한 디코더를 포함한다.
다른 양태에서, 카메라 장치는, 비디오를 획득하기 위한 비디오 획득 구성요소, 애플리케이션을 저장하기 위한 메모리 - 애플리케이션은, 이미지를 하나 이상의 블록들로 분할하고, 하나 이상의 블록들 중 한 블록을 복수의 양자화 계수 값을 이용하여 인코딩하고, 복수의 양자화 계수 값을 이용하는 인코딩의 최상 모드를 판단하고, 인코딩의 최상 모드로 블록을 처리하여, 압축된 데이터를 생성함 -, 및 메모리에 결합된 처리 구성요소 - 처리 구성요소는 애플리케이션을 처리하도록 구성됨 -를 포함한다. 압축된 데이터는 고정되고 미리 결정된 사이즈이다.
도 1은 일부 실시예들에 따른 인코더의 블록도를 예시한다.
도 2는 일부 실시예들에 따른 예시적 VLC 계산을 예시한다.
도 3은 일부 실시예들에 따른 예시적 엔트로피 코딩 표를 예시한다.
도 4는 일부 실시예들에 따른 DPCM(differential pulse code modulation) 모드들에 대한 비트스트림 구조를 예시한다.
도 5는 bps(bits per sample)가 정수인 경우에 일부 실시예들에 따른 PCM(pulse code modulation) 모드에 대한 비트스트림 구조를 예시한다.
도 6은 일부 실시예들에 따른 이미지를 인코딩하는 방법의 흐름도를 예시한다.
도 7은 일부 실시예들에 따른 이미지를 디코딩하는 방법의 흐름도를 예시한다.
도 8은 일부 실시예들에 따른 랜덤 액세스 능력 방법으로 이미지 압축을 구현하도록 구성된 예시적 계산 장치의 블록도를 예시한다.
비디오 압축에서는 2개의 타입의 코딩, 즉 인트라 코딩 및 인터 코딩이 있다. 인트라 코딩은 현재의 프레임으로부터 정보를 이용하고 비디오 시퀀스 내의 다른 프레임들로부터 상대 정보를 이용하지 않는다. 본 명세서에서 설명되는 방법이 다른 코딩 구현들에 이용될 수 있을지라도, 이 방법은 인트라 코딩에 집중한다. 방법에서, 이미지는 블록들로 분할되고, 각 블록은 다른 블록들과는 독립적으로 코딩되며, 각 블록마다 고정되고 미리 결정된 수의 blockBitBudget 비트들이 인코더에 의해 생성된다. 본 명세서에서 설명되는 방법을 이용하면, 블록을, 이미지의 임의의 다른 부분들을 디코딩할 필요 없이, 디코딩할 수 있다. 각 블록은 이미지의 한 부분의 하나 이상의 컬러 성분들의 샘플 값들을 포함한다. 각 블록의 형상은 전형적으로 직사각형이지만, 정사각형, 원형, 난형(ovular) 또는 삼각형 등의 임의의 형상이 가능하다.
인코더
블록 내의 이미지 샘플들의 수는 samplesNum으로서 지칭된다. 블록에 대해, 평균하여, 인코더는 이에 따라 특정 수의 bps(bits per sample)로 샘플을 생성하며, 여기서 bps = blockBitBudget/samplesNum이다. bps의 값은 1보다 커야 하고, bps에 대한 전형적인 값들은 4, 5 또는 6이다. 본 명세서에서 이용되는 다른 용어들은 블록이 PCM(pulse code modulation) 모드에서 코딩되면 생성되는 비트들의 수(DPCM과 PCM 사이의 시그널링에 이용되는 한 비트를 제외함)인 PCMcodeLengthTotal을 포함하고, PCMcodeLengthTotal은 blockBitBudget와 같고; DPCMcodeLengthTotal은 블록이 DPCM(differential pulse code modulation) 모드에서 코딩되면 생성되는 비트들의 수이고; 깊이는 이미지의 최초 샘플들의 비트 깊이이고, 전형적인 깊이 값들은 다른 값들이 가능할지라도, 8, 10 또는 12를 포함한다.
인코더의 기능은 블록당 blockBitBudget 비트들을 갖도록 깊이 bps를 갖는 이미지를 취하고 그 이미지에 대한 비트스트림을 생성하는 것이다. 그 다음, 디코더는 이것을 반대로 행한다.
도 1은 일부 실시예들에 따른 인코더(100)의 블록도를 예시한다. 최초 데이터 블록은 1, 2, 4, 8, 16, 32, 64 및 128 등의 상이한 양자화 계수들을 이용하는 DPCM 인코딩을 이용하여 인코딩된다. 코드 길이는 각 DPCM 인코딩으로부터 계산된다. 이 코드 길이는 모든 시그널링 비트들을 포함하지만 정제 및 제로 패드 비트들을 제외한다(이에 대해서는 후술함). 양자화 계수를 갖는 DPCM 인코딩이 허용된 최대 비트 카운트(blockBitBudget)보다 큰 비트 카운트에서 발생하면, 그 코딩이 자동으로 거절된다. 예를 들어, 최대 비트 카운트가 160이고 양자화 계수에 대한 인코딩이 170의 비트 카운트에서 발생하면, 그 인코딩이 거절된다. 데이터 블록은 또한 PCM을 이용하여 인코딩된다. 나머지 인코딩들 중에서, 최상 모드는 상이한 DPCM 인코딩들 및 PCM 인코딩으로부터 선택된다. 최상 모드는 손실 없이 코딩되는 블록 샘플들 당 비트들의 수에 의해 표시된 바와 같이, 디코더에서 재구축된 최고 품질에 대응한다. DPCM 모드가 선택되면, 시그널링 비트 구성, 엔트로피 코딩이 후속하는 qf를 이용하는 DPCM 인코딩, 및 정제 등의 추가 단계들이 취해진다. PCM 모드가 선택되면, PCM 프로세스가 발생한다. 그 결과는 압축된 비디오 비트스트림이다. 일부 실시예들에서, 인코더(100)는 qf를 이용하는 DPCM 인코딩(102), 코드 길이 계산(104), 모드 판단(106), PCM(108), 시그널링 비트 형성(110), 엔트로피 코딩(112) 및 정제(114)를 수행하기 위한 하나 이상의 모듈들을 포함한다. 모듈들은 하드웨어, 소프트웨어, 펌웨어 또는 그들의 임의의 조합으로 구현될 수 있다.
qf 모듈을 이용하는 DPCM 인코딩
DPCM 인코딩에 대해, 블록은 양자화 스텝 사이즈(양자화 계수로도 지칭됨)(qf)로 균일하게 양자화되며, 여기서 qf는 2: qf = 2qn의 거듭제곱이다. 양자화 후의 블록의 샘플 값들은 양자화된 블록 또는 양자화된 샘플들로서 지칭된다. 양자화는 본래 최하위 비트들을 제거한다. 예를 들어, 10 비트들이 있고 qn이 4이면, 6 최상위 비트들만이 이용된다.
양자화된 블록 내의 샘플들 각각에 대해, 각 컬러 성분의 제1 샘플을 제외하고, 래스터 스캔 순서로, 양자화된 블록 내의 하나 이상의 다른 이전에 양자화된 샘플 값들에 기초하여 예측 값이 계산된다. 예측 값은 평면 예측 a+b-c를 이용하여 획득될 수 있으며, 여기서 a는 인접한 픽셀(예를 들어 좌측 픽셀)이고, b는 인접한 픽셀(예를 들어 위의 픽셀)이며, c는 대각선으로 인접한 픽셀이고; 블록 외부의 샘플 값들에 액세스를 필요로 하지 않는 JPEG-LS 예측 또는 임의의 다른 타입의 예측이 코딩된다. 양자화된 블록 내의 샘플과 그 예측 사이의 차가 계산되고 양자화된 차분으로서 지칭된다. qf를 이용하는 DPCM 인코딩의 출력은 각 구성요소에 대한 제1 샘플의 양자화된 값 및 나머지 샘플들에 대한 양자화된 차분들을 포함한다. 양자화된 값들 및 양자화된 차분들의 크기는 각각 깊이 마이너스 qn 비트들이다. 양자화된 차분들은 또한 사인을 위한 하나의 추가 비트를 갖는다.
코드 길이 계산 모듈
qf 모듈을 이용하는 DPCM 인코딩의 출력들 각각에 대해, DPCMcodeLengthTotal로 표시되는 값이 생성된다. DPCMcodeLengthTotal은 DPCM 모드를 이용하여 블록이 코딩되면 엔트로피 코딩 모듈 및 시그널링 비트 형성 모듈이 생성하는 코드들의 길이들의 합이다. DPCMcodeLengthTotal은 비트스트림을 생성하지 않고 계산될 수 있다.
모드 판단 모듈
모드 판단 모듈은 DPCMcodeLengthTotal이 blockBitBudget보다 큰 모든 DPCM 모드들을 거절한다. 나머지 모드들에 대해, 모드 판단 모듈은 모드들 각각에 대한 비트 커버리지를 계산한다. 임의의 주어진 모드에 대해, 비트 커버리지는 그 모드에서 손실 없이 코딩되는 블록 내의 모든 최초 샘플들의 비트들의 수이다. 비트 커버리지는 모드 판단에 이용되는 코딩 품질의 측정이다. PCM 모드에 대해, 비트 커버리지는 항상 같은 blockBitBudget-1에 설정될 수 있다. DPCM 모드들에 대해, 비트 커버리지는 가변적이고 qn 및 블록 샘플 값들에 의존한다. 모드 판단 모듈은 비트 커버리지가 최대인 모드(예를 들어 최상 모드)를 선택한다. 최상 모드의 모드 수는 모드 판단 모듈의 출력일 수 있다.
PCM 모듈
PCM 모듈은 최상 모드가 PCM 모드인 경우에만 비트스트림을 생성하는 데 이용된다. PCM 모듈은 비트스트림을 생성한다. 비트스트림의 제1 비트는 PCM 모드를 가리키는 '0'이다. n = floor((blockBitBudget-1)/samplesNum)으로 하며, 여기서 floor(x)는 x 이하인 최대 정수를 나타낸다. 또한, f =(n+1)*samplesNum - (blockBitBudget - 1)로 한다. 그 다음, 블록 내의 f 샘플들(예를 들어, 래스터 스캔 순서 내의 제1 f 샘플들)이 양자화 수(qn = 깊이 - n)로 양자화되고, 샘플들의 나머지가 qn = 깊이-n-1로 양자화된다. 그 다음, 양자화된 값들의 비트들이 임의의 변경 없이 비트스트림에 기입된다. bps가 정수일 때, 이것은 비트들의 나머지로 간략화된다. 비트들의 나머지가 다음과 같이 생성된다. 블록 내의 제1 샘플은 양자화 계수(qn =(깊이-bps+1))로 균일하게 양자화된다. 값은 이진 표현으로 bps-1 비트들을 갖는다. 블록 내의 샘플들의 나머지는 양자화 계수(qn = 깊이-bps)로 균일하게 양자화된다. 이 값들은 이진 표현으로 bps 비트들을 각각 갖는다. 양자화된 샘플들의 비트들이 임의의 변경없이 비트스트림에 기입된다. PCM 모듈은 정확하게 blockBitBudget 비트들을 생성한다.
시그널링 비트 형성 모듈
시그널링 비트 형성 모듈은, 최상 모드가 DPCM 모드일 때 특정 DPCM 모듈 및 allZeroFlag의 값을 시그널링하는 데 사용되는 m+2 비트들을 생성한다. 제1 비트는 최상 모드가 DPCM 모드이고 PCM 모드가 아닌 것을 시그널링하는 '1'이다. '0' 및 '1'이 PCM 및 DPCM 모드들로서 각각 지정될지라도, 그 반대가 이용될 수도 있는 것이 이해된다. 다음 m 비트들은 DPCM 모드 수를 나타낸다. 다음 비트는 'allZeroFlag' 비트이고, 양자화된 차분들 중 적어도 하나가 넌제로(non-zero)이면 0에 설정되고, 양자화된 결과들의 모두가 제로이면 1에 설정된다.
엔트로피 인코딩 모듈
엔트로피 인코딩 모듈은 비트스트림을 생성한다. 각 컬러 성분의 양자화된 제1 샘플들(샘플당 깊이-qn 비트)의 이진 표현들이 비트스트림에 기입된다. allZeroFlag가 '1'이면, 어떤 다른 비트들도 비트스트림에 기입되지 않는다. 그렇지 않으면, 블록 내의 샘플의 나머지에 대해, VLC(variable length code) 비트들은 본 명세서에서 설명된 바와 같이, 맵핑 및 지수 골롬 코딩을 적용함으로써 생성된다. 임의의 주어진 양자화된 차분 값에 대해, 엔트로피 코더는 다음과 같이 함으로써 VLC를 계산한다:
1. 양자화된 차분의 크기를 나타내는 데 필요한 비트들의 총 수(최상위 '1'의 좌측에 0을 무시함)를 카운팅한다. 이것은 양자화된 차분에 대한 값 K를 제공한다.
2. K개의 제로들을 비트스트림에 기입한다.
3. K 크기 비트들을 기입한다.
4. 사인 비트를 기입한다: 네거티브에 대해 0 및 제로 또는 포지티브에 대해 1.
도 2는 일부 실시예들에 따른 예시적 VLC 계산을 예시한다.
도 3은 일부 실시예들에 따른 예시적 엔트로피 코딩 표를 예시한다. 표에 나타낸 바와 같이, 가장 좌측 열은 양자화된 차분 입력이다. 중간 열들은 사인 비트가 네거티브에 대해 0이고 포지티브 및 제로에 대해 1인 경우에 입력, 크기 및 사인 비트의 이진 표현이다. 출력은 마지막에 K개의 크기 비트들 및 사인 비트에 앞서 K개의 제로들을 포함한다.
정제 모듈
첫 번째, 정제 모듈은 min((blockBitBudget-DPCMcodeLengthTotal), qn*samplesNum) 비트들을 포함하는 비트스트림을 생성하며, 여기서 DPCMcodeLengthTotal 및 qn의 값들은 최상 모드의 것들이다. 비트들은 DPCM 모듈에 의해 코딩되지 않는 최상위 비트들로 시작해서, 각 샘플의 최하위 비트까지의 최초 샘플들의 비트들이다. 두 번째, (blockBitBudget-DPCMcodeLength)가 (qn*samplesNum)보다 크면, 이것은 전체 블록이 blockBitBudget 비트들보다 작게 손실 없이 코딩되는 것을 의미한다. 이 경우에, (blockBitBudget-DPCMcodeLength - qn * samplesNum) 제로들은, 인코더에 의해 생성되는 비트들의 총 수가 blockBitBudget과 같아지도록, 제로 패드 비트들로서 비트스트림에 기입된다.
도 4는 일부 실시예들에 따른 DPCM 모드들에 대한 비트스트림 구조(400)를 예시한다. 비트스트림 구조(400)는 blockBitBudget의 길이를 갖는다. 제1 비트(최상위 비트로도 지칭됨)는 DPCM 모드를 가리키는 '1'이다. 그 다음, m 비트들은 qf의 값을 가리키는 데 이용된다. 각 컬러 성분 내의 제1 샘플에 대한 깊이 마이너스 qn 비트들이 계속된다. allZeroFlag 비트가 그 다음이다. 블록의 나머지 샘플들 각각에 대해, 엔트로피 코딩 모듈에 의해 생성되는 비트들이 뒤따른다. 비트들의 총 수가 블록 비트 버짓 미만이면, 추가 정제 비트들이 가산되어 코딩의 정확도를 더욱 개선한다. 최종적으로, 정제 비트들을 송신한 후에 블록이 손실 없이 코딩되면 제로 패딩 비트들이 마지막에 부가된다.
도 5는 일부 실시예들에 따른 PCM 모드에 대한 비트스트림 구조(500)를 예시한다. 비트스트림 구조(500)는 blockBitBudget의 길이를 갖는다. 제1 비트(최상위 비트로도 지칭됨)는 PCM 모드를 가리키는 '0'이다. 그 다음, 나머지 픽셀들에 대해, 블록 내의 픽셀들 모두에 대한 PCM 코드들이 포함된다.
디코더
비트스트림의 제1 비트가 판독된다. 비트가 '0'이면, 디코더는 PCM 디코딩을 적용한다. 비트가 '1'이면, 디코더는 DPCM 디코딩을 적용한다.
PCM 디코딩
인코딩(상술함)에 대한 PCM 모듈에서 설명된 표기법을 이용하면, 블록 내의 제1 f 샘플들 각각에 대해, n 비트들이 비트스트림으로부터 판독되고, 디코더에서 재구축된 샘플의 n 최상위 비트들로서 간주된다. 블록 내의 샘플들의 나머지 각각에 대해, n+1 비트들이 비트스트림으로부터 판독되고, 그 재구축된 샘플의 n+1 최상위 비트들로서 간주된다. bps가 정수이면, 이 프로세스는 다음과 같이 간략화된다: 제1 샘플에 대해, bps-1 비트들이 비트스트림으로부터 판독된다. 비트들이 블록 내의 제1 샘플의 bps-1 최상위 비트들로서 간주된다. 블록 내의 나머지 samplesNum-1 샘플들 각각에 대해, bps 비트들이 비트스트림으로부터 판독되고 비트들이 샘플의 bps 최상위 비트들로서 간주된다. 상술한 프로세스에서 설정되지 않는 샘플들의 다음 최상위 비트는 '1'에 설정된다. 깊이 비트 샘플들의 비트들의 나머지는 '0'에 설정된다.
DPCM 디코딩
비트스트림의 다음 m 비트들이 판독된다. 이 m 비트들을 이용하면, 양자화에 이용되는 qf 값이 디코딩된다. 비트스트림의 다음 비트가 판독된다. 비트는 allZeroFlag를 나타낸다. 각 컬러 성분의 제1 샘플들의 깊이 마이너스 qn 최상위 비트들이 비트스트림으로부터 판독되고, 그 샘플들의 최상위 비트들로서 간주된다. allZeroFlag = 0이면, 샘플들의 나머지에 대해, 양자화된 차분들을 생성하기 위해 엔트로피 코딩된 VLC들이 판독되고 디코딩된다. 각 샘플들에 대해, 양자화된 샘플의 예측은 이전에 인코딩된/디코딩된 양자화된 샘플들에 기초하여 인코더에서 계산되는 동일한 방법으로 계산된다. 그 다음, 양자화된 샘플들을 생성하기 위해 양자화된 차분들이 (양자화된 샘플들의) 예측 값들에 가산된다. 이 양자화된 샘플들이 샘플들의 나머지의 깊이 마이너스 qn 최상위 비트들로서 간주된다. 그렇지 않으면(예를 들어 allZeroFlag = 1이면), 샘플들의 나머지의 깊이 마이너스 qn 최상위 비트들은 0에 설정된다. qn>0이면, 각 샘플의 나머지 qn 비트들에 대해, 정제 비트들(존재하는 경우)은 인코더에 의해 비트스트림에 기입되는 정확히 동일한 순서로 판독되어 적소에 기입된다. 제로 패드 비트들(존재하는 경우)은 디코더에 의해 무시된다. 각 샘플의 나머지 비트들(존재하는 경우)에 대해, 최상위 비트는 1에 설정되고, 비트들의 나머지는 0에 설정된다.
도 6은 일부 실시예들에 따른 이미지를 인코딩하는 방법의 흐름도를 예시한다. 단계 600에서, 이미지가 블록들로 분할된다. 단계 602에서, 블록은 상이한 양자화 계수 값들로 인코딩된 DPCM이다. 단계 604에서, 양자화 계수들 각각에 대한 코드 길이가 계산된다. 단계 606에서, 최상 모드인지에 대한 판단이 이루어진다. 최상 모드는 상이한 양자화 계수들을 갖는 DPCM 인코딩, 및 PCM 인코딩으로부터 선택된다. 본 명세서에서 설명된 바와 같이, 최상 모드는 그의 비트 커버리지에 의해 측정되는 바와 같이, 가장 손실이 없는 블록이다. 비트 커버리지는 DPCM 내의 엔트로피 코딩 및 정제를 통해, 또는 PCM 내의 비트스트림에 비트들을 명시적으로 기입함으로써 코딩되는 모든 비트들의 수만을 포함한다. 예를 들어, 손실 없는 비트들의 수가 카운팅되어 가장 손실 없는 비트들을 갖는 모드가 최상 모드이다. 단계 606 내의 모드 판단에 따라, 다음 단계는 DPCM 경우 또는 PCM 경우이다. PCM이 선택되면, PCM 처리가 단계 608에서 발생한다. DPCM이 선택되면, 시그널링 비트들을 구성하는 프로세스가 단계 610에서 발생한다. 단계 612에서, qf를 이용하는 DPCM 인코딩이 발생한다. 일부 실시예들에서, qf를 이용하는 DPCM 인코딩이 단계 602에서 발생하면, 단계가 반복되지 않는다. 일부 실시예들에서는, 단계 602 및 612이 상이해서, 단계 612가 발생한다. 예를 들어, 일부 실시예들에서는, 단계 602에서, 비트스트림이 생성되지 않지만, 단계 612에서, 비트스트림이 생성된다. 또는, 단계 602에서, 인코딩이 생성하지 않고, 오히려 비트들이 카운팅되며, 단계 612에서, 인코딩이 발생한다. 그 다음, 엔트로피 코딩이 단계 614에서 발생한다. 정제가 단계 616에서 발생한다. 최종 비트스트림은 압축된 데이터이다. 단계들의 순서가 변경될 수 있고, 일부 실시예들에서, 일부 단계들이 스킵될 수 있다.
도 7은 일부 실시예들에 따른 이미지를 디코딩하는 방법의 흐름도를 예시한다. 단계 700에서, DPCM 인코딩 또는 PCM 인코딩을 이용하여 블록이 인코딩되는지가 판단된다. PCM 인코딩이 이용되면, PCM 디코딩이 단계 702에서 이용된다. PCM 디코딩은 본 명세서에서 설명되었다. DPCM 인코딩이 이용되면, DPCM 디코딩이 단계 704에서 이용된다.
도 8은 일부 실시예들에 따른 랜덤 액세스 능력 방법으로 이미지 압축을 구현하도록 구성된 예시적 컴퓨팅 장치(800)의 블록도를 예시한다. 컴퓨팅 장치(800)는 이미지들 및 비디오들과 같은 정보를 획득, 저장, 계산, 전달 및/또는 디스플레이하는 데 이용될 수 있다. 예를 들어, 컴퓨팅 장치(800)는 이미지를 획득 및 저장할 수 있다. 이미지 압축 방법은 장치(800) 상에서 이미지를 획득 또는 뷰잉할 때 이용될 수 있다. 일반적으로, 컴퓨팅 장치(800)를 구현하는 데 적당한 하드웨어 구조는 네트워크 인터페이스(802), 메모리(804), 프로세서(806), I/O 장치(들)(808), 버스(810) 및 저장 장치(812)를 포함한다. 프로세서의 선택은 충분한 속도를 갖는 적당한 프로세서가 선택되기만 하면 중요하지 않다. 메모리(804)는 이 기술 분야에 공지된 임의의 종래의 컴퓨터 메모리일 수 있다. 저장 장치(812)는 하드 드라이브, CDROM, CDRW, DVD, DVDRW, 플래시 메모리 카드 또는 임의의 다른 저장 장치를 포함할 수 있다. 컴퓨팅 장치(800)는 하나 이상의 네트워크 인터페이스들(802)를 포함할 수 있다. 네트워크 인터페이스의 예는 이더넷 또는 다른 타입의 LAN에 연결된 네트워크 카드를 포함한다. I/O 장치(들)(808)는 이하의 예들 중 하나 이상을 포함할 수 있다: 키보드, 마우스, 모니터, 디스플레이, 프린터, 모뎀, 터치스크린, 버튼 인터페이스 및 다른 장치들. 이미지 압축 방법을 수행하는 데 이용되는 이미지 압축 애플리케이션(들)(830)은 애플리케이션들이 전형적으로 처리되는 바와 같이 저장 장치(812) 및 메모리(804)에 저장되어 처리될 가능성이 있다. 도 8에 도시된 다소의 구성요소들은 컴퓨팅 장치(800)에 포함될 수 있다. 일부 실시예들에서, 이미지 압축 하드웨어(820)가 포함된다. 도 8 내의 컴퓨팅 장치(800)가 이미지 압축을 위해 애플리케이션들(830) 및 하드웨어(820)를 포함할지라도, 이미지 압축 방법은 하드웨어, 펌웨어, 소프트웨어 또는 그들의 임의의 조합으로 컴퓨팅 장치 상에서 구현될 수 있다. 예를 들어, 일부 실시예들에서, 이미지 압축 애플리케이션들(830)이 메모리에 프로그램되어 프로세서를 이용하여 실행된다. 다른 예에서, 일부 실시예들에서, 이미지 압축 하드웨어(820)는 이미지 압축 방법을 구현하도록 특히 설계된 게이트들을 포함하는 프로그램된 하드웨어 로직이다.
일부 실시예들에서, 이미지 압축 애플리케이션(들)(830)은 수개의 애플리케이션들 및/또는 모듈들을 포함한다. 본 명세서에서 설명된 바와 같이, 모듈들은 qf를 이용하는 DPCM 인코딩, 코드 길이 계산, 모드 판단, PCM, 시그널링 비트 형성, 엔트로피 코딩 및 정제를 포함한다. 일부 실시예들에서, qf 모듈을 이용하는 제2 DPCM 인코딩이 이용되며, 여기서 첫 번째 것은 최상 모드를 판단하는 데 일조하도록 이용되고, 두 번째 것은 인코딩을 수행하는 데 이용된다. 일부 실시예들에서, 분리 DPCM 인코딩 모듈은 각 양자화 계수마다 존재한다. 일부 실시예들에서, 모듈들은 하나 이상의 서브모듈들도 포함한다. 일부 실시예들에서, 보다 소수의 또는 추가 모듈들이 포함될 수 있다.
적당한 컴퓨팅 장치들의 예들은 개인용 컴퓨터, 랩톱 컴퓨터, 컴퓨터 워크스테이션, 서버, 메인프레임 컴퓨터, 핸드헬드 컴퓨터, 휴대 정보 단말기, 셀룰러/이동 전화, 스마트 가전, 게임 콘솔, 디지털 카메라, 디지털 캠코더, 카메라 폰, iPod?/iPhone, 비디오 플레이어, DVD 라이터/플레이어, 텔레비전, 홈 엔터테인먼트 시스템 또는 임의의 다른 적당한 컴퓨팅 장치를 포함한다.
이미지 압축 방법을 이용하기 위해, 사용자는 비디오/이미지를 예컨대 디지털 캠코더 상에서 획득하고, 비디오가 획득되는 동안 또는 후에, 이미지 압축 방법은, 이 비디오의 각 이미지를 자동으로 압축하고, 이에 따라 그 비디오가 압축되어 고품질 비디오를 적절히 유지한다. 이미지 압축 방법은 사용자 관여 없이 자동으로 발생한다. 유사하게, 디코더가 비디오를 디코딩하고 있을 때, 디코더는 그 비디오가 적절히 디스플레이되도록 비디오를 자동으로 디코딩한다.
동작 중에, 본 명세서에서 설명된 이미지 압축 방법은 낮은 하드웨어 비용(예를 들어 많지 않은 논리 게이트들이 요구함) 일부 실시예들에서, 저복잡성, 저지연, 매우 높은 시각적 품질(예를 들어 시각적으로 손실 없음)을 이미지 압축에 제공하고 디코딩을 위한 다른 블록들에 의존하지 않는다(예를 들어 고정 블록 사이즈부터 임의의 블록을 디코딩함). 이미지 압축 방법은 무선 HD(wireless high definition)을 포함하지만, 이에 제한되지 않은 임의의 구현으로 이용될 수 있다.
본 명세서에서 설명된 이미지 압축 방법은 비디오들 및/또는 이미지에 이용될 수 있다.
랜덤 액세스 능력을 갖는 이미지 압축 방법의 일부 실시예들
1. 장치 내의 컨트롤러에 프로그램된 이미지 압축 방법으로서,
a. 이미지를 하나 이상의 블록들로 분할하는 단계;
b. 하나 이상의 블록들 중 한 블록을 복수의 양자화 계수 값을 이용하여 인코딩하는 단계;
c. 복수의 양자화 계수 값을 이용하는 인코딩의 최상 모드를 판단하는 단계; 및
d. 인코딩의 최상 모드로 블록을 처리하여, 압축된 데이터를 생성하는 단계를 포함하는, 이미지 압축 방법.
2. 제1항에 있어서, 양자화 계수 값들의 각각에 대한 코드 길이를 계산하는 단계를 더 포함하는, 이미지 압축 방법.
3. 제1항에 있어서, 최상 모드를 판단하는 단계는 허용되는 최대 비트 카운트보다 큰 비트 카운트에서 양자화 계수가 발생하면 양자화 계수를 자동으로 거절하는 단계를 포함하는, 이미지 압축 방법.
4. 제1항에 있어서, 블록을 인코딩하는 단계는 차분 펄스 코드 변조 인코딩 및 펄스 코드 변조 인코딩을 이용하여 블록을 인코딩하는 단계를 포함하는, 이미지 압축 방법.
5. 제4항에 있어서, 차분 펄스 코드 변조 인코딩은,
a. 블록을 양자화하는 것;
b. 블록 내의 각 양자화된 샘플에 대한 래스터 스캔 순서로 예측 값을 계산하는 것;
c. 샘플들 각각에 대해 양자화된 블록 샘플과 양자화된 샘플의 예측 값 사이의 차를 결정함으로써 양자화된 차분을 판단하는 것; 및
d. 제1 샘플 양자화된 값, 및 양자화된 차분들의 세트를 출력하는 것을 포함하는, 이미지 압축 방법.
6. 제1항에 있어서, 최상 모드는 손실 없이 인코딩된 가장 많은 비트들을 갖는, 이미지 압축 방법.
7. 제1항에 있어서, 최상 모드로 블록을 처리하는 단계는, 시그널링 비트 형성, 엔트로피 코딩, 및 정제를 더 포함하는 펄스 코드 변조 인코딩 또는 차분 펄스 코드 변조 인코딩을 포함하는, 이미지 압축 방법.
8. 제7항에 있어서, 엔트로피 코딩은 양자화된 차분에 대해 크기 비트들의 수, 이전 제로들의 등가 수 및 사인 비트를 판단하는 것을 포함하는, 이미지 압축 방법.
9. 제1항에 있어서, 압축된 데이터는 고정되고 미리 결정된 사이즈인, 이미지 압축 방법.
10. 제1항에 있어서, 컨트롤러는 프로그램된 컴퓨터 판독가능 매체 및 주문형 회로로 이루어지는 그룹으로부터 선택되는, 이미지 압축 방법.
11. 제1항에 있어서, 장치는 개인용 컴퓨터, 랩톱 컴퓨터, 컴퓨터 워크스테이션, 서버, 메인프레임 컴퓨터, 핸드헬드 컴퓨터, 휴대 정보 단말기, 셀룰러/이동 전화, 스마트 가전, 게임 콘솔, 디지털 카메라, 디지털 캠코더, 카메라 폰, iPhone, iPod?, 비디오 플레이어, DVD 라이터/플레이어, 텔레비전 및 홈 엔터테인먼트 시스템으로 이루어지는 그룹으로부터 선택되는, 이미지 압축 방법.
12. 장치 내의 컨트롤러에 프로그램된 이미지 블록을 디코딩하는 방법으로서,
a. 차분 펄스 코드 변조 또는 펄스 코드 변조를 이용하여 이미지 블록이 인코딩되어 있는지를 판단하는 단계;
b. 차분 펄스 코드 변조를 이용하여 이미지 블록이 인코딩되어 있으면, 차분 펄스 코드 변조 디코딩을 이용하여 이미지 블록을 디코딩하는 단계; 및
c. 펄스 코드 변조를 이용하여 이미지 블록이 인코딩되어 있으면, 펄스 코드 변조 디코딩을 이용하여 이미지 블록을 디코딩하는 단계를 포함하는, 이미지 블록 디코딩 방법.
13. 제12항에 있어서, 이미지 블록은 다른 이미지 블록들과는 독립적으로 디코딩되는, 이미지 블록 디코딩 방법.
14. 장치 내의 컨트롤러에 프로그램된 인코더로서,
a. 복수의 양자화 계수 값을 이용하여 하나 이상의 블록들 중 한 블록을 인코딩하기 위한 양자화 계수 모듈을 갖는 제1 차분 펄스 코드 변조 인코딩;
b. 인코딩된 블록의 코드 길이를 결정하기 위한 코드 길이 계산 모듈;
c. 복수의 양자화 계수 값을 이용하는 인코딩의 최상 모드를 판단하기 위한 모드 판단 모듈;
d. 펄스 코드 변조가 최상 모드로서 선택되면, 펄스 코드 변조 인코딩을 수행하기 위한 펄스 코드 변조 모듈; 및
e. 차분 펄스 코드 변조가 최상 모드로서 선택되면, 선택된 최상 모드 양자화 계수를 이용하여 하나 이상의 블록들 중 한 블록을 인코딩하기 위한 양자화 계수 모듈을 갖는 제2 차분 펄스 코드 변조 인코딩을 포함하는, 인코더.
15. 제14항에 있어서,
a. 제2 차분 펄스 코드 변조 모듈을 시그널링하는 비트들을 생성하기 위한 시그널링 비트 형성 모듈
b. 비트스트림을 생성하기 위한 엔트로피 코딩 모듈; 및
c. 비트스트림을 정제하기 위한 정제 모듈을 더 포함하는, 인코더.
16. 제15항에 있어서, 비트스트림은 고정되고 미리 결정된 사이즈인, 인코더.
17. 장치 내의 컨트롤러에 프로그램된 디코더로서,
a. 차분 펄스 코드 변조 또는 펄스 코드 변조를 이용하여 블록이 인코딩되어 있는지를 판단하는 판단 모듈;
b. 차분 펄스 코드 변조를 이용하여 블록이 인코딩되어 있으면 차분 펄스 코드 변조 디코딩을 이용하여 블록을 디코딩하기 위한 차분 펄스 코드 변조 모듈; 및
c. 펄스 코드 변조를 이용하여 블록이 인코딩되어 있으면 펄스 코드 변조 디코딩을 이용하여 블록을 디코딩하기 위한 펄스 코드 변조 모듈을 포함하는, 디코더.
18. 장치 내의 컨트롤러에 프로그램된 시스템으로서,
i. 이미지를 하나 이상의 블록들로 분할하고;
ii. 하나 이상의 블록들 중 한 블록을 복수의 양자화 계수 값을 이용하여 인코딩하고;
iii. 복수의 양자화 계수 값을 이용하는 인코딩의 최상 모드를 판단하고;
iv. 인코딩의 최상 모드로 블록을 처리하여, 압축된 데이터를 생성하기 위한
a. 인코더; 및
i. 차분 펄스 코드 변조 또는 펄스 코드 변조를 이용하여 블록이 인코딩되는지를 판단하고;
ii. 차분 펄스 코드 변조를 이용하여 블록이 인코딩되어 있으면, 차분 펄스 코드 변조 디코딩을 이용하여 블록을 디코딩하고;
iii. 펄스 코드 변조를 이용하여 블록이 인코딩되어 있으면, 펄스 코드 변조 디코딩을 이용하여 블록을 디코딩하기 위한
b. 디코더를 포함하는, 시스템.
19. 카메라 장치로서,
a. 비디오를 획득하기 위한 비디오 획득 구성요소;
b. 애플리케이션을 저장하기 위한 메모리 - 애플리케이션은,
i. 이미지를 하나 이상의 블록들로 분할하고;
ii. 하나 이상의 블록들 중 한 블록을 복수의 양자화 계수 값을 이용하여 인코딩하고;
iii. 복수의 양자화 계수 값을 이용하는 인코딩의 최상 모드를 판단하고;
iv. 인코딩의 최상 모드로 블록을 처리하여, 압축된 데이터를 생성함 -; 및
c. 메모리에 결합된 처리 구성요소 - 처리 구성요소는 애플리케이션을 처리하도록 구성됨 - 를 포함하는, 카메라 장치.
20. 제19항에 있어서, 압축된 데이터는 고정되고 미리 결정된 사이즈인, 카메라 장치.
본 발명의 구성 및 동작의 원리들의 이해를 용이하게 하기 위해 상세를 포함하는 특정 실시예들에 관하여 본 발명이 설명되었다. 본 명세서에서 특정 실시예들 및 그의 상세에 대한 그러한 참조는 이에 첨부된 청구항들의 범위를 제한하는 것으로 의도된 것은 아니다. 다른 각종 수정들은 청구항들에 의해 정의된 바와 같이 본 발명의 사상 및 범위를 벗어나지 않고 예시를 위해 선택된 실시예에서 이루어질 수 있는 것이 당업자라면 자명할 것이다.

Claims (20)

  1. 장치 내의 컨트롤러에 프로그램된 이미지 압축 방법으로서,
    a. 이미지를 하나 이상의 블록들로 분할하는 단계;
    b. 상기 하나 이상의 블록들 중 한 블록을 복수의 양자화 계수 값을 이용하여 인코딩하는 단계;
    c. 상기 복수의 양자화 계수 값을 이용하는 상기 인코딩의 최상 모드를 판단하는 단계; 및
    d. 상기 인코딩의 최상 모드로 상기 블록을 처리하여, 압축된 데이터를 생성하는 단계를 포함하는, 이미지 압축 방법.
  2. 제1항에 있어서,
    상기 양자화 계수 값들의 각각에 대한 코드 길이를 계산하는 단계를 더 포함하는, 이미지 압축 방법.
  3. 제1항에 있어서,
    상기 최상 모드를 판단하는 단계는 허용되는 최대 비트 카운트보다 큰 비트 카운트에서 양자화 계수가 발생하면 상기 양자화 계수를 자동으로 거절하는 단계를 포함하는, 이미지 압축 방법.
  4. 제1항에 있어서,
    상기 블록을 인코딩하는 단계는 차분 펄스 코드 변조 인코딩 및 펄스 코드 변조 인코딩을 이용하여 상기 블록을 인코딩하는 단계를 포함하는, 이미지 압축 방법.
  5. 제4항에 있어서,
    상기 차분 펄스 코드 변조 인코딩은,
    a. 상기 블록을 양자화하는 것;
    b. 상기 블록 내의 각 양자화된 샘플에 대한 래스터 스캔 순서로 예측 값을 계산하는 것;
    c. 샘플들 각각에 대해 양자화된 블록 샘플과 상기 양자화된 샘플의 상기 예측 값 사이의 차를 결정함으로써 양자화된 차분(residual)을 판단하는 것; 및
    d. 제1 샘플 양자화된 값, 및 양자화된 차분들의 세트를 출력하는 것을 포함하는, 이미지 압축 방법.
  6. 제1항에 있어서,
    상기 최상 모드는
    손실 없이 인코딩된 가장 많은 비트들을 갖는, 이미지 압축 방법.
  7. 제1항에 있어서,
    상기 최상 모드로 상기 블록을 처리하는 단계는, 시그널링 비트 형성, 엔트로피 코딩, 및 정제를 더 포함하는 펄스 코드 변조 인코딩 또는 차분 펄스 코드 변조 인코딩을 포함하는, 이미지 압축 방법.
  8. 제7항에 있어서,
    상기 엔트로피 코딩은 양자화된 차분에 대해 크기 비트들의 수, 이전 제로들의 등가 수 및 사인(sign) 비트를 판단하는 것을 포함하는, 이미지 압축 방법.
  9. 제1항에 있어서,
    상기 압축된 데이터는 고정되고 미리 결정된 사이즈인, 이미지 압축 방법.
  10. 제1항에 있어서,
    상기 컨트롤러는 프로그램된 컴퓨터 판독가능 매체 및 주문형 회로로 이루어지는 그룹으로부터 선택되는, 이미지 압축 방법.
  11. 제1항에 있어서,
    상기 장치는 개인용 컴퓨터, 랩톱 컴퓨터, 컴퓨터 워크스테이션, 서버, 메인프레임 컴퓨터, 핸드헬드 컴퓨터, 휴대 정보 단말기, 셀룰러/이동 전화, 스마트 가전, 게임 콘솔, 디지털 카메라, 디지털 캠코더, 카메라 폰, iPhone, iPod?, 비디오 플레이어, DVD 라이터/플레이어, 텔레비전 및 홈 엔터테인먼트 시스템으로 이루어지는 그룹으로부터 선택되는, 이미지 압축 방법.
  12. 장치 내의 컨트롤러에 프로그램된 이미지 블록을 디코딩하는 방법으로서,
    a. 차분 펄스 코드 변조 또는 펄스 코드 변조를 이용하여 상기 이미지 블록이 인코딩되어 있는지를 판단하는 단계;
    b. 상기 차분 펄스 코드 변조를 이용하여 상기 이미지 블록이 인코딩되어 있으면, 차분 펄스 코드 변조 디코딩을 이용하여 상기 이미지 블록을 디코딩하는 단계; 및
    c. 상기 펄스 코드 변조를 이용하여 상기 이미지 블록이 인코딩되어 있으면, 펄스 코드 변조 디코딩을 이용하여 상기 이미지 블록을 디코딩하는 단계
    를 포함하는, 이미지 블록 디코딩 방법.
  13. 제12항에 있어서,
    상기 이미지 블록은 다른 이미지 블록들과는 독립적으로 디코딩되는, 이미지 블록 디코딩 방법.
  14. 장치 내의 컨트롤러에 프로그램된 인코더로서,
    a. 복수의 양자화 계수 값을 이용하여 하나 이상의 블록들 중 한 블록을 인코딩하기 위한 양자화 계수 모듈을 갖는 제1 차분 펄스 코드 변조 인코딩;
    b. 인코딩된 블록의 코드 길이를 결정하기 위한 코드 길이 계산 모듈;
    c. 상기 복수의 양자화 계수 값을 이용하는 상기 인코딩의 최상 모드를 판단하기 위한 모드 판단 모듈;
    d. 펄스 코드 변조가 상기 최상 모드로서 선택되면, 펄스 코드 변조 인코딩을 수행하기 위한 펄스 코드 변조 모듈; 및
    e. 차분 펄스 코드 변조가 상기 최상 모드로서 선택되면, 선택된 최상 모드 양자화 계수를 이용하여 상기 하나 이상의 블록들 중 한 블록을 인코딩하기 위한 양자화 계수 모듈을 갖는 제2 차분 펄스 코드 변조 인코딩
    을 포함하는, 인코더.
  15. 제14항에 있어서,
    a. 상기 제2 차분 펄스 코드 변조 모듈을 시그널링하는 비트들을 생성하기 위한 시그널링 비트 형성 모듈;
    b. 비트스트림을 생성하기 위한 엔트로피 코딩 모듈; 및
    c. 상기 비트스트림을 정제하기 위한 정제 모듈을 더 포함하는, 인코더.
  16. 제15항에 있어서,
    상기 비트스트림은 고정되고 미리 결정된 사이즈인, 인코더.
  17. 장치 내의 컨트롤러에 프로그램된 디코더로서,
    a. 차분 펄스 코드 변조 또는 펄스 코드 변조를 이용하여 블록이 인코딩되어 있는지를 판단하는 판단 모듈;
    b. 상기 차분 펄스 코드 변조를 이용하여 상기 블록이 인코딩되어 있으면 차분 펄스 코드 변조 디코딩을 이용하여 상기 블록을 디코딩하기 위한 차분 펄스 코드 변조 모듈; 및
    c. 상기 펄스 코드 변조를 이용하여 상기 블록이 인코딩되어 있으면 펄스 코드 변조 디코딩을 이용하여 상기 블록을 디코딩하기 위한 펄스 코드 변조 모듈
    을 포함하는, 디코더.
  18. 장치 내의 컨트롤러에 프로그램된 시스템으로서,
    i. 이미지를 하나 이상의 블록들로 분할하고;
    ii. 상기 하나 이상의 블록들 중 한 블록을 복수의 양자화 계수 값을 이용하여 인코딩하고;
    iii. 상기 복수의 양자화 계수 값을 이용하는 상기 인코딩의 최상 모드를 판단하고;
    iv. 상기 인코딩의 최상 모드로 상기 블록을 처리하기 위하여, 압축된 데이터를 생성하기 위기 위한
    a. 인코더; 및
    i. 차분 펄스 코드 변조 또는 펄스 코드 변조를 이용하여 상기 블록이 인코딩되어 있는지를 판단하고;
    ii. 상기 차분 펄스 코드 변조를 이용하여 상기 블록이 인코딩되어 있으면, 차분 펄스 코드 변조 디코딩을 이용하여 상기 블록을 디코딩하고;
    iii. 상기 펄스 코드 변조를 이용하여 상기 블록이 인코딩되어 있으면, 펄스 코드 변조 디코딩을 이용하여 상기 블록을 디코딩하기 위한
    b. 디코더
    를 포함하는, 시스템.
  19. 카메라 장치로서,
    a. 비디오를 획득하기 위한 비디오 획득 구성요소;
    b. 애플리케이션을 저장하기 위한 메모리 - 상기 애플리케이션은,
    i. 이미지를 하나 이상의 블록들로 분할하고;
    ii. 상기 하나 이상의 블록들 중 한 블록을 복수의 양자화 계수 값을 이용하여 인코딩하고;
    iii. 상기 복수의 양자화 계수 값을 이용하는 상기 인코딩의 최상 모드를 판단하고;
    iv. 상기 인코딩의 최상 모드로 상기 블록을 처리하여, 압축된 데이터를 생성함 -; 및
    c. 상기 메모리에 결합된 처리 구성요소 - 상기 처리 구성요소는 상기 애플리케이션을 처리하도록 구성됨 -
    를 포함하는, 카메라 장치.
  20. 제19항에 있어서,
    상기 압축된 데이터는 고정되고 미리 결정된 사이즈인, 카메라 장치.
KR1020127030087A 2010-05-27 2011-05-23 랜덤 액세스 능력을 갖는 이미지 압축 방법 KR101461771B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/789,010 2010-05-27
US12/789,010 US20110292247A1 (en) 2010-05-27 2010-05-27 Image compression method with random access capability
PCT/US2011/037580 WO2011149848A1 (en) 2010-05-27 2011-05-23 An image compression method with random access capability

Publications (2)

Publication Number Publication Date
KR20130018413A true KR20130018413A (ko) 2013-02-21
KR101461771B1 KR101461771B1 (ko) 2014-11-14

Family

ID=45004312

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127030087A KR101461771B1 (ko) 2010-05-27 2011-05-23 랜덤 액세스 능력을 갖는 이미지 압축 방법

Country Status (7)

Country Link
US (1) US20110292247A1 (ko)
EP (1) EP2559255A4 (ko)
JP (1) JP5550005B2 (ko)
KR (1) KR101461771B1 (ko)
CN (1) CN102907101A (ko)
MX (1) MX2012013720A (ko)
WO (1) WO2011149848A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101454418B1 (ko) * 2010-11-26 2014-10-28 닛본 덴끼 가부시끼가이샤 영상 복호 장치, 영상 복호 방법 및 컴퓨터 판독 가능한 기록 매체

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2406953B1 (en) * 2009-06-22 2015-06-10 Sony Corporation A method of compression of graphics images and videos
UA109312C2 (uk) * 2011-03-04 2015-08-10 Імпульсно-кодова модуляція з квантуванням при кодуванні відеоінформації
US9384410B2 (en) * 2012-05-21 2016-07-05 Nvidia Corporation Method and system for image compression while encoding at least one extra bit
GB2519070A (en) * 2013-10-01 2015-04-15 Sony Corp Data encoding and decoding
US9819969B2 (en) 2013-11-26 2017-11-14 Nvidia Corporation Generalization of methods and systems for image compression while encoding at least one extra bit
US9161040B2 (en) * 2014-01-10 2015-10-13 Sony Corporation Adaptive block partitioning with shared bit-budget
US9237350B2 (en) 2014-06-16 2016-01-12 Sony Corporation Image processing system with random access capable integral image compression and method of operation thereof
US10063889B2 (en) 2014-10-28 2018-08-28 Sony Corporation Image processing system with conditional coding and method of operation thereof
US9674554B2 (en) 2014-10-28 2017-06-06 Sony Corporation Image processing system with coding mode and method of operation thereof
US9294782B1 (en) 2014-10-28 2016-03-22 Sony Corporation Image processing system with artifact reduction mechanism and method of operation thereof
US9357232B2 (en) 2014-10-28 2016-05-31 Sony Corporation Image processing system with binary decomposition and method of operation thereof
US10356410B2 (en) 2014-10-28 2019-07-16 Sony Corporation Image processing system with joint encoding and method of operation thereof
US9357237B2 (en) 2014-10-28 2016-05-31 Sony Corporation Image processing system with bitstream reduction and method of operation thereof
CN104539712A (zh) * 2014-12-31 2015-04-22 广东德豪润达电气股份有限公司 智能家电数据传输方法
JP6512928B2 (ja) * 2015-04-28 2019-05-15 キヤノン株式会社 画像符号化装置、画像処理装置、画像符号化方法
JP6502739B2 (ja) 2015-04-28 2019-04-17 キヤノン株式会社 画像符号化装置、画像処理装置、画像符号化方法
US10097829B2 (en) * 2015-10-23 2018-10-09 Sony Corporation System and method for compression of digital content
TWI651615B (zh) * 2017-09-21 2019-02-21 大陸商深圳朗田畝半導體科技有限公司 實現USB設備檢測的Type-C轉接器、通道控制方法
US11765468B2 (en) 2018-03-01 2023-09-19 Sony Corporation Image processing device and method thereof, imaging element, and imaging device
JP7121584B2 (ja) * 2018-08-10 2022-08-18 キヤノン株式会社 画像符号化装置及びその制御方法及びプログラム
US11265544B2 (en) * 2018-09-18 2022-03-01 Sony Corporation Apparatus and method for image compression based on optimal sequential encoding scheme
KR20200065367A (ko) 2018-11-30 2020-06-09 삼성전자주식회사 이미지 처리 장치 및 프레임 버퍼 컴프레서
CN113613004A (zh) * 2021-09-14 2021-11-05 百果园技术(新加坡)有限公司 图像编码方法、装置、电子设备及存储介质
KR20240029439A (ko) * 2022-08-26 2024-03-05 삼성전자주식회사 이미지 처리 장치 및 이미지 처리 장치의 동작 방법
CN117236566B (zh) * 2023-11-10 2024-02-06 山东顺发重工有限公司 一种全程可视的法兰盘包装管理***

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2020084C (en) * 1989-06-29 1994-10-18 Kohei Iseda Voice coding/decoding system having selected coders and entropy coders
US5233629A (en) * 1991-07-26 1993-08-03 General Instrument Corporation Method and apparatus for communicating digital data using trellis coded qam
JPH06217280A (ja) * 1993-01-14 1994-08-05 Sony Corp 動画像符号化及び復号化装置
US5517327A (en) * 1993-06-30 1996-05-14 Minolta Camera Kabushiki Kaisha Data processor for image data using orthogonal transformation
JP3046224B2 (ja) * 1994-07-26 2000-05-29 三星電子株式会社 固定ビット率の符号化方法および装置とこれを利用した高速探索のためのトラッキング方法
DE69631999T2 (de) * 1995-06-22 2004-09-02 Canon K.K. Bildverarbeitungsgerät und Verfahren
US6101282A (en) * 1995-06-22 2000-08-08 Canon Kabushiki Kaisha Apparatus and method for image data encoding
US5793892A (en) * 1995-06-27 1998-08-11 Motorola, Inc. Method and system for compressing a pixel map signal using dynamic quantization
KR0153671B1 (ko) * 1995-06-30 1998-11-16 배순훈 고선명 텔레비젼 엔코더의 레이트 콘트롤러
JPH1042293A (ja) * 1996-07-19 1998-02-13 Nippon Columbia Co Ltd 符号化制御装置および符号化装置および符号化制御方法
KR100517993B1 (ko) * 1996-12-18 2005-09-29 톰슨 콘슈머 일렉트로닉스, 인코포레이티드 효율적인 고정-길이 블록 압축 및 압축해제
JPH114436A (ja) * 1997-06-12 1999-01-06 Sony Corp 画像符号化装置とその方法
WO1999062189A2 (en) 1998-05-27 1999-12-02 Microsoft Corporation System and method for masking quantization noise of audio signals
GB2364843A (en) * 2000-07-14 2002-02-06 Sony Uk Ltd Data encoding based on data quantity and data quality
KR100345450B1 (ko) 2000-12-27 2002-07-26 한국전자통신연구원 인트라 블록 예측 부호화 및 복호화 장치 및 그 방법
US6898323B2 (en) * 2001-02-15 2005-05-24 Ricoh Company, Ltd. Memory usage scheme for performing wavelet processing
US7483581B2 (en) * 2001-07-02 2009-01-27 Qualcomm Incorporated Apparatus and method for encoding digital image data in a lossless manner
DE10156851C1 (de) * 2001-11-20 2003-07-03 Infineon Technologies Ag Verfahren und Vorrichtung zur Bildkompression
US7193541B2 (en) * 2001-12-04 2007-03-20 Sun Microsystems, Inc. Representation of sign in encoding scheme
US6795584B2 (en) * 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
FI114071B (fi) * 2003-01-13 2004-07-30 Nokia Corp Kuvien käsitteleminen rajoitetulla bittimäärällä
US6900748B2 (en) * 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
JP4587175B2 (ja) * 2005-05-19 2010-11-24 キヤノン株式会社 画像符号化装置及び方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
US8005140B2 (en) * 2006-03-17 2011-08-23 Research In Motion Limited Soft decision and iterative video coding for MPEG and H.264
US8208545B2 (en) * 2006-06-01 2012-06-26 Electronics And Telecommunications Research Institute Method and apparatus for video coding on pixel-wise prediction
KR101270167B1 (ko) * 2006-08-17 2013-05-31 삼성전자주식회사 저복잡도의 이미지 압축 방법 및 장치, 저복잡도의 이미지복원 방법 및 장치
US8050320B2 (en) * 2007-02-09 2011-11-01 Ericsson Television, Inc. Statistical adaptive video rate control
KR101375662B1 (ko) * 2007-08-06 2014-03-18 삼성전자주식회사 이미지 데이터 압축 방법 및 장치
CN101822063A (zh) * 2007-08-16 2010-09-01 诺基亚公司 用于编码和解码图像的方法和装置
EP2234403A4 (en) * 2007-12-28 2011-12-21 Sharp Kk MOBILE IMAGE ENCODER AND DECODER

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101454418B1 (ko) * 2010-11-26 2014-10-28 닛본 덴끼 가부시끼가이샤 영상 복호 장치, 영상 복호 방법 및 컴퓨터 판독 가능한 기록 매체

Also Published As

Publication number Publication date
CN102907101A (zh) 2013-01-30
JP5550005B2 (ja) 2014-07-16
MX2012013720A (es) 2012-12-17
JP2013530610A (ja) 2013-07-25
KR101461771B1 (ko) 2014-11-14
US20110292247A1 (en) 2011-12-01
EP2559255A4 (en) 2014-10-22
EP2559255A1 (en) 2013-02-20
WO2011149848A1 (en) 2011-12-01

Similar Documents

Publication Publication Date Title
KR101461771B1 (ko) 랜덤 액세스 능력을 갖는 이미지 압축 방법
US11936884B2 (en) Coded-block-flag coding and derivation
US8634668B2 (en) Method of compression of digital images using a fixed number of bits per block
JP6176342B2 (ja) 有意性マップ符号化の計算量低減
EP2406953B1 (en) A method of compression of graphics images and videos
KR20140028142A (ko) 비트 예산에 기초한 이미지 데이터의 선택적 무손실-손실 압축
US8285062B2 (en) Method for improving the performance of embedded graphics coding
US20120183049A1 (en) Methods for delta-qp signaling for decoder parallelization in hevc
MX2012004747A (es) Codificacion de graficos integrados: corriente de bits reclasificada para descodificacion paralela.
WO2011028735A2 (en) Vector embedded graphics coding
CN111669590B (zh) 基于子块的熵译码的方法、设备和***
US20120183234A1 (en) Methods for parallelizing fixed-length bitstream codecs
US9407918B2 (en) Apparatus and method for coding image, and non-transitory computer readable medium thereof
Le Pendu et al. Template based inter-layer prediction for high dynamic range scalable compression
CN111108747A (zh) 获得信号的时间样本的目标表示
US10666985B1 (en) Sub-block based entropy coding for image coding
KR102267206B1 (ko) 이미지 압축을 위한 하이브리드 팔레트-dpcm 코딩

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee