KR20160118365A - 코딩을 위한 방법 및 장치 - Google Patents
코딩을 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR20160118365A KR20160118365A KR1020167025705A KR20167025705A KR20160118365A KR 20160118365 A KR20160118365 A KR 20160118365A KR 1020167025705 A KR1020167025705 A KR 1020167025705A KR 20167025705 A KR20167025705 A KR 20167025705A KR 20160118365 A KR20160118365 A KR 20160118365A
- Authority
- KR
- South Korea
- Prior art keywords
- coefficients
- coefficient
- sign
- bitstream
- indication
- 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/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/12—Selection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- 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/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- 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/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/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- 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
- H04N19/467—Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking
-
- 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/48—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
-
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
계수들의 세트를 수신하는 단계; 및 계수들의 세트 내의 계수의 부호가 비트스트림 내에 임베딩될 수 있는지를 결정하는 단계를 포함하는 방법이 개시된다. 계수들의 세트 내의 계수의 부호가 비트스트림 내에 임베딩될 수 있음을 상기 결정하는 단계가 표시하면, 임베딩된 부호의 표시가 비트스트림 내로 삽입된다. 또한 디코딩된 계수들의 세트를 수신하는 단계; 및 비트스트림이 계수의 임베딩된 부호의 표시를 포함하는지를 결정하는 단계를 포함하는 방법이 개시된다. 비트스트림이 계수의 임베딩된 부호의 표시를 포함하는 것을 상기 결정하는 단계가 표시하면, 부호는 디코딩된 계수들에 기초하여 결정되고; 그리고 계수의 부호는 결정된 부호에 기초하여 수정된다.
Description
인코딩(encoding)을 위한 방법, 디코딩(decoding)을 위한 방법, 장치, 컴퓨터 프로그램 제품들, 인코더(encoder) 및 디코더(decoder)가 제공된다.
본 섹션은 청구항들에서 열거되는 본 발명에 대한 배경 또는 상황을 제공하도록 의도된다. 본원에서의 설명은 추진되었을 수 있었을 개념들을 포함할 수 있으나, 반드시 이전에 착상되거나 추진되었던 것들은 아니다. 그러므로, 본원에서 달리 표시되지 않는 한, 본 섹션에서 기술되는 것은 본 출원에서의 상세한 설명 및 청구항들의 종래 기술은 아니며 본 섹션에 포함됨으로써 종래 기술로 인정되지 않는다.
비디오 코덱(video codec)은 입력 비디오를 저장 및/또는 전송에 적합한 압축된 표현으로 변환하는 인코더 및 압축 비디오 표현을 다시 시청 가능한 형태로 압축 해제할 수 있는 디코더, 또는 이것들 중 어느 하나를 포함할 수 있다. 인코더는 더 컴팩트한 형태로, 예를 들어 비디오를 더 낮은 비트 레이트(bit rate)로 표현하기 위하여 원래의(original) 비디오 시퀀스에서 일부 정보를 폐기할 수 있다.
예를 들어 국제 전기통신 연합의 ITU-T H.263 및 H.264 코딩 표준들에 따라 동작하는 많은 하이브리드 비디오 코덱들은 비디오 정보를 2개의 상(phase)들로 인코딩한다. 제 1 상에서, 특정한 화상 에어리어(area) 또는 "블록"에서의 픽셀 값들이 예측된다. 이 픽셀 값들은 예를 들어 코딩된 블록에 밀접하게 대응하는 이전에 인코딩된 비디오 프레임들(또는 이후에 코딩되는 비디오 프레임) 중 하나에서 에어리어를 참고 표시하는 것을 포함하는 움직임 보상 메커니즘들에 의해 예측될 수 있다. 추가로, 픽셀 값들은 예를 들어 특정한 방식으로 코딩되는 블록 주위의 픽셀 값들을 사용함으로써 공간 영역 관계를 찾고 표시하는 것을 포함하는 공간 메커니즘들에 의해 예측될 수 있다.
이전의(또는 이후의) 이미지로부터 이미지 정보를 사용하는 예측 방법들은 또한 인터 예측(Inter prediction) 방법들로 칭해질 수 있고, 동일한 이미지 내에서 이미지 정보를 사용하는 예측 방법은 또한 인트라 예측(Intra prediction) 방법들로 칭해질 수 있다.
제 2 상은 예측되는 픽셀들의 블록 및 원래의 픽셀들의 블록 사이의 에러를 코딩하는 것이다. 이것은 명시된 변환을 사용하여 픽셀 값들의 차를 변환함으로써 달성될 수 있다. 이 변형은 예를 들어 이산 코사인 변환(Discrete Cosine Transform; DCT) 또는 이의 이형(variant)일 수 있다. 상기 차를 변환한 후에, 변환된 차는 양자화(quantize)되고 엔트로피 인코딩(entropy encoding)될 수 있다.
양자화 프로세스의 충실도(fidelity)를 변경함으로써, 인코더는 픽셀 표현의 정확도(즉, 픽셀의 품질) 및 그 결과에 따라 인코딩되는 비디오 표현의 크기(즉, 파일 크기 또는 변환 비트 레이트) 사이의 균형을 제어할 수 있다.
디코더는 예측되는 픽셀 블록들의 표현을 형성하기 위해(인코더에 의해 생성되고 이미지의 압축된 표현에 저장되는 움직임 또는 공간 정보를 사용하여) 인코더에 의해 사용되는 것과 유사한 예측 메커니즘 및 예측 에러 디코딩(공간 도메인에서 양자화된 예측 에러 신호를 복구하는 예측 에러 코딩의 역 동작)을 적용함으로써 출력 비디오를 재구성한다.
픽셀 예측 및 에러 디코딩 프로세스들을 적용한 후에 디코더는 예측 및 예측 에러 신호들(픽셀 값들)을 결합하여 출력 비디오 프레임을 형성한다.
디코더(및 인코더)는 또한 디스플레이를 위해 출력 비디오를 전달하고/하거나 비디오 시퀀스에 곧 다가오는 프레임들에 대한 예측 참조로서 저장하기 전에 이 출력 비디오의 품질을 개선하기 위하여 추가 필터링 프로세스들을 적용할 수 있다.
고 효율 비디오 코딩 워킹 드래프트(Video Coding Working Draft) 4와 같은 일부 비디오 코덱들에서, 비디오 화상(video picture)들은 화상의 에어리어를 포괄하는 코딩 유닛(coding unit; CU)들로 분리될 수 있다. 코딩 유닛은 코딩 유닛 내의 샘플들에 대한 예측 프로세스를 정의하는 하나 이상의 예측 유닛(prediction unit; PU)들 및 코딩 유닛 내의 샘플들에 대한 예측 에러 코딩 프로세스를 정의하는 하나 이상의 변환 유닛(transform unit; TU)들로 구성된다. 코딩 유닛은 가능한 코딩 유닛 크기들의 미리 정의된 세트로부터 선택 가능한 크기를 가지는 정사각형 블록의 샘플들로 구성될 수 있다. 최대 허용 크기를 가지는 코딩 유닛은 최대 코딩 유닛(largest coding unit; LCU)으로 칭해질 수 있고 비디오 화상은 중첩하지 않는 최대 코딩 유닛들로 분리될 수 있다. 최대 코딩 유닛은 예를 들어 최대 코딩 유닛 및 그 결과적인 코딩 유닛들을 재귀적으로(recursively) 나눔으로써 더 작은 코딩 유닛들의 결합으로 추가로 나눠질 수 있다. 각각의 결과적인 코딩 유닛은 적어도 하나의 예측 유닛 및 이와 연관되는 적어도 하나의 변환 유닛을 가질 수 있다. 각각의 예측 유닛 및 변환 유닛은 예측 및 예측 에러 코딩 프로세스들의 입도(granularity)를 각각 증가시키기 위하여 더 작은 예측 유닛들 및 변환 유닛들로 더 나누어질 수 있다. 각각의 예측 유닛은 자신과 연관되는 예측 정보를 가질 수 있고, 이 예측 정보는 상기 예측 유닛 내의 픽셀들에 대해 어떤 종류의 예측이 적용되어야 하는지(예를 들어, 인터 예측되는 예측 유닛들에 대한 움직임 벡터 정보 및 인트라 예측되는 예측 유닛들에 대한 인트라 예측 방향성 정보)를 정의한다. 유사하게, 각각의 변환 유닛은 변환 유닛 내의 샘플들에 대한 예측 에러 디코딩 프로세스를 기술하는 정보(예를 들어, 이산 코사인 변환(discrete cosine transform; DCT) 계수 정보를 포함하는)와 연관될 수 있다. 예측 에러 코딩이 각각의 코딩 유닛에 대해 적용되는지의 여부는 코딩 유닛 레벨에서 시그널링(signalling)될 수 있다. 코딩 유닛과 연관되는 예측 에러 잔류(residual)가 존재하지 않는 경우, 코딩 유닛에 대한 어떠한 변환 유닛들도 존재하지 않는다고 고려될 수 있다. 이미지를 코딩 유닛들로 분할하고 코딩 유닛들을 예측 유닛들 및 변환 유닛들로 분할하는 것은 디코더가 의도된 이 유닛들의 구조를 재생하는 것이 가능한 비트스트림으로 시그널링될 수 있다.
일부 비디오 코덱들에서, 움직임 정보는 각각의 움직임 보상 이미지 블록과 연관되는 움직임 벡터들로 표시된다. 이 움직임 벡터들은 코딩(인코더에서)되거나 디코딩(디코더에서)될 화상 내의 이미지 블록 및 이전에 코딩되거나 디코딩된 이미지들(또는 화상들) 중 하나에서의 예측 소스 블록의 변위(displacement)를 표현한다. 움직임 벡터들을 효율적으로 표현하기 위하여, 움직임 벡터들은 블록에 특정한 예측 움직임 벡터에 관하여 차분하여(differentially) 코딩될 수 있다. 일부 비디오 코덱들에서, 예측 움직임 벡터들은 미리 정의된 방식으로, 예를 들어, 인접하는 블록들의 인코딩되거나 디코딩된 움직임 벡터들의 중앙값(median)을 계산함으로써 생성된다.
움직임 벡터 예측을 생성하는 다른 방식은 현재의 프레임 내의 블록들 및/또는 시간 참조 화상들 내에 공동 위치되거나 다른 블록들로부터 후보 예측들의 목록 또는 세트를 만들고 선택된 후보를 움직임 벡터 예측으로 시그널링하는 것이다. 공간 움직임 벡터 예측은 단지 현재의 프레임과 동일한 프레임의 하나 이상의 블록들의 정보에 기초하여 획득되는 예측인데 반해 시간 움직임 벡터 예측은 현재 프레임과 상이한 프레임의 하나 이상의 블록들의 정보에 기초하여 획득되는 예측이다. 또한 하나 이상의 인코딩된 블록들의 공간 및 시간 예측 정보 모두를 결합함으로써 움직임 벡터 예측들을 획득하는 것이 가능하다. 이 종류들의 움직임 벡터 예측들은 공간-시간 움직임 벡터 예측들로 칭해진다.
움직임 벡터 값들을 예측하는 것 외에, 참조 영상 목록 내의 참조 인덱스(index)가 예측될 수 있다. 참조 인덱스는 현재의 프레임 내의 블록들 및/또는 시간 참조 화상 내에 공동 위치되는 또는 다른 블록들로부터 예측될 수 있다. 더욱이, 일부 고효율 비디오 코덱들은 흔히 병합(merging)/병합 모드로 칭해지는 추가 움직임 정보 코딩/디코딩 메커니즘을 사용하고, 여기서 이용 가능한 참조 화상 목록 별로 움직임 벡터 및 대응하는 참조 화상 인덱스를 포함하는 모든 움직임 필드(motion field) 정보는 어떠한 수정 또는 정정 없이 예측되고 사용될 수 있다. 유사하게 움직임 필드 정보를 예측하는 것은 현재의 프레임 내의 블록들 및/또는 시간 참조 화상들에서 공동 위치되거나 또는 다른 블록들의 움직임 필드 정보를 사용하여 수행될 수 있고 사용되는 움직임 필드 정보는 현재의 프레임 내의 이용 가능한 블록들 및/또는 시간 참조 화상들에 공동 위치 또는 다른 블록들의 움직임 필드 정보가 채워진 움직임 필드 후보 목록의 목록 사이에서 시그널링된다.
일부 비디오 코덱들에서 움직임 보상 후의 예측 잔류가 먼저 변환 커널(DCT와 같은)에 의해 변환되고 나서 코딩된다. 이 이유는 흔히 잔여 중에서 여전히 일부 상관(correlation)이 존재하고 많은 경우들에서 변환이 이 상관을 감소시키고 더 효율적인 코딩을 제공하는 것을 도울 수 있기 때문이다.
일부 비디오 인코더들은 최적의 코딩 모드들, 예를 들어 원하는 매크로블록(Macroblock) 모드 및 연관되는 움직임 벡터들을 찾기 위하여 라그랑지안(Lagrangian) 비용 함수(cost function)들을 사용한다. 이 종류의 비용 함수는 손실이 있는 코딩 방법들로 인한 (정확하거나 추정되는) 이미지 왜곡 및 이미지 에어리어 내의 픽셀 값들을 나타내는 데 필요한 (정확한 또는 추정되는) 양의 정보를 서로 결부시키기 위하여 가중 팩터(weighting factor) λ(람다)를 사용한다:
여기서 C는 최소화되는 라그랑지안 비용이고, D는 모드 및 움직임 벡터들이 고려되는 상태에서의 이미지 왜곡(예를 들어, 평균 제곱 에러(Mean Squared Error))이고, R은 디코더 내에 이미지 블록을 재구성하는데 요구되는 데이터를 표현하는 데 필요한 비트들의 수이다(후보 움직임 벡터들을 표현하는 데이터의 양을 포함한다).
본 발명의 목적은 인코딩을 위한 방법, 디코딩을 위한 방법, 장치, 컴퓨터 프로그램 제품들, 인코더 및 디코더를 제공하는 것이다.
본 발명은 예를 들어, 화상에 대해 또는 코딩 유닛에 대해 무손실 코딩 모드가 가능한지를 시그널링하는 방법을 소개한다. 이것은 무손실 코딩 방법이 가능한지 또는 아닌지를 결정하는 데 사용될 수 있는 표시자를 비트스트림 내에 삽입함으로써 달성될 수 있다. 일부 실시예들에서, 무손실 코딩 방법이 사용될 때 표시자가 비트스트림 내에 삽입되고 무손실 코딩 방법이 사용되지 않으면 표시자가 비트스트림 내에 포함되지 않는다.
본 발명의 제 1 양태에 따르면:
계수들의 세트를 수신하는 단계;
무손실 코딩 모드가 적용되는지에 대한 표시를 수신하는 단계;
계수들의 세트 내의 계수의 부호가 비트스트림 내에 임베딩될 수 있는지를 결정하는 단계를 포함하는 방법이 제공되고, 여기서 계수들의 세트 내의 계수의 부호가 비트스트림 내에 임베딩될 수 있는지를 결정하는 단계는 적어도 무손실 코딩 모드가 적용되는지에 대한 표시에 좌우된다.
본 발명의 제 2 양태에 따르면: 인코딩되는 계수들의 세트를 수신하는 단계;
무손실 코딩 모드가 적용되는지에 대한 표시를 수신하는 단계;
비트스트림이 계수의 임베딩된 부호의 표시를 포함하는지를 결정하는 단계로서, 비트스트림이 계수의 임베딩된 부호의 표시를 결정하는 단계는 적어도 무손실 코딩 모드가 적용되는지에 대한 표시에 좌우되는, 상기 결정하는 단계;
비트스트림이 계수의 임베딩된 부호의 표시를 포함한다고 상기 결정하는 단계가 표시하면, 디코딩된 계수들에 기초하여 부호를 결정하는 단계; 및
결정된 부호에 기초하여 계수의 부호를 수정하는 단계를 포함하는 방법이 제공된다.
본 발명의 제 3 양태에 따르면, 컴퓨터 프로그램 코드를 포함하는 메모리 및 프로세서를 포함하는 장치가 제공되고, 메모리 및 컴퓨터 프로그램 코드는 프로세서와 함께, 장치로 하여금:
계수들의 세트를 수신하고;
무손실 코딩 모드가 적용되는지에 대한 표시를 수신하고;
계수들의 세트 내의 계수의 부호가 비트스트림 내에 임베딩될 수 있는지를 결정하도록 구성되고, 계수들의 세트 내의 계수의 부호가 비트스트림 내에 임베딩될 수 있는지를 결정하는 것은 적어도 무손실 코딩 모드가 적용되는지에 대한 표시에 좌우된다.
본 발명의 제 4 양태에 따르면, 컴퓨터 프로그램 코드를 포함하는 메모리 및 프로세서를 포함하는 장치를 제공하고, 메모리 및 컴퓨터 프로그램 코드는 프로세서와 함께, 장치로 하여금:
인코딩된 계수들의 세트를 수신하고;
무손실 코딩 모드가 적용되는지에 대한 표시를 수신하고;
비트스트림이 계수의 임베딩된 부호의 표시를 포함하는지를 결정하고, 여기서 비트스트림이 계수의 임베딩된 부호의 표시를 포함하는지를 결정하는 것은 적어도 무손실 코딩 모드가 적용되는지에 대한 표시에 좌우되고;
비트스트림이 계수의 임베딩된 부호의 표시를 포함한다고 결정이 표시하면, 디코딩된 계수들에 기초하여 부호를 결정하고; 그리고
결정된 부호에 기초하여 계수의 부호를 수정하도록 구성된다.
본 발명의 제 5 양태에 따르면, 내부에 인코더가 사용하기 위한 컴퓨터 실행 가능 프로그램 코드를 저장하는 저장 매체가 제공되고, 상기 프로그램 코드는:
계수들의 세트를 수신하고;
무손실 코딩 모드가 적용되는지에 대한 표시를 수신하고;
계수들의 세트 내의 계수의 부호가 비트스트림 내에 임베딩될 수 있는지를 결정하기 위한 명령어를 포함하고, 계수들의 세트 내의 계수의 부호가 비트스트림 내에 임베딩될 수 있는지를 결정하는 것은 적어도 무손실 코딩 모드가 적용되는지에 대한 표시에 좌우된다.
본 발명의 제 6 양태에 따르면, 내부에 디코더가 사용하기 위한 컴퓨터 실행 가능 프로그램 코드를 저장하는 저장 매체가 제공되고, 상기 프로그램 코드는:
인코딩된 계수들의 세트를 수신하고;
무손실 코딩 모드가 적용되는지에 대한 표시를 수신하고;
비트스트림이 계수의 임베딩된 부호의 표시를 포함하는지를 결정하고, 여기서 비트스트림이 계수의 임베딩된 부호의 표시를 포함하는지를 결정하는 것은 적어도 무손실 코딩 모드가 적용되는지에 대한 표시에 좌우되고;
비트스트림이 계수의 임베딩된 부호의 표시를 포함한다고 결정이 표시하면, 디코딩된 계수들에 기초하여 부호를 결정하고; 그리고
결정된 부호에 기초하여 계수의 부호를 수정하는 명령어를 포함한다.
본 발명의 제 7 양태에 따르면:
계수들의 세트를 수신하는 수단;
무손실 코딩 모드가 적용되는지에 대한 표시를 수신하는 수단;
계수들의 세트 내의 계수의 부호가 비트스트림 내에 임베딩될 수 있는지를 결정하는 수단을 포함하는 장치가 제공되고, 여기서 계수들의 세트 내의 계수의 부호가 비트스트림 내에 임베딩될 수 있는지를 결정하는 것은 적어도 무손실 코딩 모드가 적용되는지에 대한 표시에 좌우된다.
본 발명의 제 8 양태에 따르면:
인코딩된 계수들의 세트를 수신하는 수단;
무손실 코딩 모드가 적용되는지에 대한 표시를 수신하는 수단;
비트스트림이 계수의 임베딩된 부호의 표시를 포함하는지를 결정하는 수단;
비트스트림이 계수의 임베딩된 부호의 표시를 포함한다고 결정이 표시하면, 디코딩된 계수들에 기초하여 부호를 결정하는 수단; 및
결정된 부호에 기초하여 계수의 부호를 수정하는 수단을 포함하는 장치가 제공된다.
본 발명의 더 양호하게 이해하기 위하여, 이제 예로서 첨부 도면들이 참조될 것이다:
도 1은 본 발명의 일부 실시예들을 사용하는 전자 디바이스를 개략적으로 도시하는 도면;
도 2는 본 발명의 일부 실시예들을 사용하는 데 적합한 사용자 장비를 개략적으로 도시하는 도면;
도 3은 무선 및 유선 네트워크 접속들을 사용하여 접속되는 본 발명의 실시예들을 사용하는 전자 디바이스들을 개략적으로 더 도시하는 도면;
도 4a는 본 발명의 하나의 실시예를 인코너 내에 통합되는 것으로 개략적으로 도시하는 도면;
도 4b는 본 발명의 일부 실시예들에 따른 수정기(modifier)의 하나의 실시예를 개략적으로 도시하는 도면;
도 5는 도 4a 및 도 4b에 도시되는 바와 같은 인코더에 관한 본 발명의 하나의 실시예의 동작을 도시하는 흐름도를 도시하는 도면;
도 6은 본 발명의 하나의 실시예를 디코더 내에 통합된 것으로 개략적으로 도시하는 도면; 및
도 7은 도 6에 도시된 디코더에 관한 본 발명의 하나의 실시예의 동작을 도시하는 흐름도를 도시하는 도면.
도 1은 본 발명의 일부 실시예들을 사용하는 전자 디바이스를 개략적으로 도시하는 도면;
도 2는 본 발명의 일부 실시예들을 사용하는 데 적합한 사용자 장비를 개략적으로 도시하는 도면;
도 3은 무선 및 유선 네트워크 접속들을 사용하여 접속되는 본 발명의 실시예들을 사용하는 전자 디바이스들을 개략적으로 더 도시하는 도면;
도 4a는 본 발명의 하나의 실시예를 인코너 내에 통합되는 것으로 개략적으로 도시하는 도면;
도 4b는 본 발명의 일부 실시예들에 따른 수정기(modifier)의 하나의 실시예를 개략적으로 도시하는 도면;
도 5는 도 4a 및 도 4b에 도시되는 바와 같은 인코더에 관한 본 발명의 하나의 실시예의 동작을 도시하는 흐름도를 도시하는 도면;
도 6은 본 발명의 하나의 실시예를 디코더 내에 통합된 것으로 개략적으로 도시하는 도면; 및
도 7은 도 6에 도시된 디코더에 관한 본 발명의 하나의 실시예의 동작을 도시하는 흐름도를 도시하는 도면.
다음은 예측 정확성을 개선하고 따라서 가능하다면 비디오 코딩 시스템들에서 전송될 정보를 감소시키는 것을 제공하기 위한 적절한 장치 및 가능한 메커니즘들을 더 상세하게 기술한다. 이 점에 있어서 우선 도 1이 참조되고 도 1은 본 발명의 하나의 실시예에 따라 코덱을 통합할 수 있는 예시 장치 또는 전자 디바이스(50)의 개략 블록도를 도시한다.
전자 디바이스(50)는 예를 들어 무선 통신 시스템의 모바일 단말기 또는 사용자 장비일 수 있다. 그러나, 본 발명의 실시예들은 비디오 이미지들을 인코딩하고 디코딩하거나 인코딩하거나 디코딩하는 것을 필요로 할 수 있는 임의의 전자 디바이스 또는 장치 내에서 구현될 수 있음이 인정될 것이다.
장치(50)는 디바이스를 통합하고 보호하는 하우징(housing)(30)을 포함할 수 있다. 장치(50)는 액정 디스플레이의 형태인 디스플레이(32)를 더 포함할 수 있다. 본 발명의 다른 실시예들에서 디스플레이는 이미지 또는 비디오를 디스플레이하는 데 적합한 임의의 적절한 디스플레이 기술일 수 있다. 장치(50)는 키패드(34)를 더 포함할 수 있다. 본 발명의 다른 실시예들에서 임의의 적절한 데이터 또는 사용자 인터페이스 메커니즘이 사용될 수 있다. 예를 들어 사용자 인터페이스는 터치 감응 디스플레이의 일부로서의 가상 키보드 또는 데이터 입력 시스템으로서 구현될 수 있다. 장치는 디지털 또는 아날로그 신호 입력일 수 있는 마이크로폰(36) 또는 임의의 적절한 오디오 입력을 포함할 수 있다. 장치(50)는 오디오 출력 디바이스를 더 포함할 수 있고 오디오 출력 디바이스는 본 발명의 실시예들에서: 이어폰(38), 스피커 또는 아날로그 오디오 또는 디지털 오디오 출력 접속 중 임의의 하나일 수 있다. 장치(50)는 또한 배터리(40)를 포함할 수 있다(또는 본 발명의 다른 실시예에서 장치는 태양 전치, 연료 전지 또는 태엽 장치 발전기와 같은 임의의 적절한 이동성 에너지 디바이스에 의해 전력을 공급받을 수 있다). 장치는 다른 디바이스들로의 단거리 시선(line of sight) 통신을 위한 적외선 포트(42)를 더 포함할 수 있다. 다른 실시예들에서 장치(50)는 예를 들어 블루투스 무선 접속 또는 USB/파이어와이어(firewire) 유선 접속과 같은 임의의 적절한 단거리 통신 솔루션을 더 포함할 수 있다.
장치(50)는 장치(50)를 제어하기 위한 제어기(56) 또는 프로세서를 포함할 수 있다. 제어기(56)는 본 발명의 실시예들에서 이미지의 형태의 데이터 및 오디오 데이터 이 둘 모두를 저장할 수 있고/있거나 또는 제어기(56) 상에서 구현되는 명령어를 저장할 수 있는 메모리(58)에 접속될 수 있다. 제어기(56)는 오디오 및/또는 비디오 데이터의 코딩 및 디코딩을 수행하거나 제어기(56)에 의해 수행되는 코딩 및 디코딩을 보조하는 데 적합한 코덱 회로소자(54)에 더 접속될 수 있다.
장치(50)는 카드 판독기(48) 및 스마트 카드(46), 예를 들어 사용자 정보를 제공하고 네트워크에 있는 사용자의 인증 및 인가를 위한 인증 정보를 제공하는 데 적합한 UICC 및 UICC 판독기를 더 포함할 수 있다.
장치(50)는 제어기에 접속되고 예를 들어 셀룰러 통신 네트워크, 무선 통신 시스템 또는 무선 로컬 에어리어 네트워크와의 통신을 위해 무선 통신 신호들을 생성하는 데 적합한 무선 인터페이스 회로소자(52)를 포함할 수 있다. 장치(50)는 무선 인터페이스 회로소자(52)에서 생성되는 무선 주파수 신호들을 다른 장치(들)에 전송하고 다른 장치(들)로부터 무선 주파수 신호들을 수신하기 위해 무선 인터페이스 회로소자(52)에 접속되는 안테나(44)를 더 포함할 수 있다.
본 발명의 일부 실시예들에서, 장치(50)는 이후에 프로세싱을 위해 코덱(54) 또는 제어기로 전달되는 개별 프레임들을 기록하거나 검출할 수 있는 카메라를 포함한다. 본 발명의 일부 실시예들에서, 장치는 전송 및/또는 저장 전에 다른 디바이스로부터 프로세싱을 위한 비디오 이미지 데이터를 수신할 수 있다. 본 발명의 일부 실시예들에서, 장치(50)는 코딩/디코딩을 위한 이미지를 무선으로 또는 유선 접속에 의해 수신할 수 있다.
도 3과 관련하여, 본 발명의 실시예들이 사용될 수 있는 시스템의 예가 도시된다. 시스템(10)은 하나 이상의 네트워크들을 통해 통신할 수 있는 다수의 통신 디바이스들을 포함한다. 시스템(10)은 무선 셀룰러 전화 네트워크(GSM, UMTS, CDMA 네트워크 등과 같은), IEEE 802.x 표준들과 같은 무선 로컬 에어리어 네트워크(WLAN), 블루투스 개인 에어리어 네트워크, 이더넷 로컬 에어리어 네트워크, 토큰 링(token ring) 로컬 에어리어 네트워크, 광대역 네트워크 및 인터넷을 포함하나 이로 제한되지 않는 유선 또는 무선 네트워크들의 임의의 결합을 포함할 수 있다.
시스템(10)은 본 발명의 실시예들을 구현하는 데 적합한 유선 및 무선 통신 디바이스들 또는 장치(50) 이 둘 모두를 포함할 수 있다.
예를 들어, 도 3에 도시되는 시스템은 모바일 전화 네트워크(11) 및 인터넷(28)을 그린 것을 도시한다. 인터넷(28)으로의 접속은 장거리 무선 접속들, 단거리 무선 접속들 및 전화선들, 케이블 선들, 전력선들 및 유사한 통신 경로들을 포함하나 이로 제한되지 않는 다양한 유선 접속들을 포함할 수 있으나 이로 제한되지 않는다.
시스템(10)에 도시되는 예시 통신 디바이스들은 전자 디바이스 또는 장치(50), 개인용 디지털 보조장치(personal digital assistant; PDA) 및 모바일 전화기(14)의 결합, PDA(16), 통합 메시징 디바이스(integrated messaging device; IMD)(18), 데스크탑 컴퓨터(20), 노트북 컴퓨터(22)를 포함할 수 있으나 이로 제한되지 않는다. 장치(50)는 정지하고 있거나 이동하고 있는 개인이 지니고 있을 때 이동 중일 수 있다. 장치(50)는 또한 자동차, 트럭, 택시, 버스, 열차, 배, 비행기, 자전거, 오토바이를 포함하나 이로 제한되지 않는 하나의 방식의 운반 수단에 또는 임의의 유사한 적절한 방식의 운반 수단에 위치될 수 있다.
일부 또는 추가 장치들은 호출들 및 메시지들을 송신 및 수신하고 기지국(24)과의 무선 접속(25)을 통해 서비스 제공자들과 통신할 수 있다. 기지국(24)은 모바일 전화 네트워크(11) 및 인터넷(28) 사이의 통신이 가능하도록 네트워크 서버(26)에 접속될 수 있다. 시스템은 추가 통신 디바이스들 및 다양한 유형들의 통신 디바이스들을 포함할 수 있다.
통신 디바이스들은 코드 분할 다중 액세스(code division multiple access; CDMA), 모바일 통신용 전지구적 시스템(global systems for mobile communications; GSM), 범용 모바일 전기통신 시스템(universal mobile telecommunications system; UMTS), 시분할 다중 액세스(time divisional multiple access; TDMA), 주파수 분할 다중 액세스(frequency division multiple access; FDMA), 전송 제어 프로토콜-인터넷 프로토콜(transmission control protocol-internet protocol; TCP-IP), 단문 메시징 서비스(short messaging service; SMS), 멀티미디어 메시징 서비스(multimedia messaging service; MMS), 이메일, 인스턴트 메시징 서비스(instant messaging service; IMS), 블루투스, IEEE 802.11 및 임의의 유사한 무선 통신 기술을 포함하나 이로 제한되지 않는 다양한 전송 기술들을 사용하여 통신할 수 있다. 본 발명의 다양한 실시예들을 구현하는 데 수반되는 통신 디바이스는 무선, 적외선, 레이저, 케이블 접속들 및 임의의 적절한 접속을 포함하나 이로 제한되지 않는 다양한 매체를 사용하여 통신할 수 있다.
도 4a와 관련하여, 본 발명의 실시예들을 수행하는 데 적합한 비디오 인코더의 블록도가 도시된다. 더욱이, 도 5와 관련하여, 구체적으로 표시를 비트스트림에 삽입할 수 있을지의 여부를 결정하는 것에 관하여 본 발명의 실시예들을 예시하는 인코더의 동작이 흐름도로서 도시된다.
도 4a는 인코더를 픽셀 예측기(302), 예측 에러 인코더(303), 수정기(370) 및 예측 에러 디코더(304)를 포함하는 것으로 도시한다. 도 4a는 또한 픽셀 예측기(302)의 하나의 실시예를, 인터 예측기(306), 인트라 예측기(308), 모드 선택기(310), 필터(316) 및 참조 프레임 메모리(318)를 포함하는 것으로 도시한다. 본 실시예에서 모드 선택기(310)는 블록 프로세서(381) 및 비용 평가기(cost evaluator)(382)를 포함한다. 인코더는 비트스트림을 엔트로피 인코딩하기 위하여 엔트로피 인코더(330)를 더 포함할 수 있다.
도 4b는 수정기(370)의 하나의 실시예를 도시한다. 수정기(370)는 양자화기(344)로부터 수신되는(도 5에서의 블록 500) 양자화된 계수 값들을 저장하기 위하여(도 5에서의 블록 502) 계수 버퍼(371)를 포함할 수 있다. 코딩 선택기(376)는 코딩이 무손실 방식으로 수행될 수 있는지의 여부를 결정할 수 있다(504). 코딩 선택기(376)가 무손실 코딩을 사용할 것을 선택하면, 코딩 선택기(376)는 양자화된 계수 값들을 수정하지 않고 이것들을 출력하기 위해 수정기를 제어할 수 있다. 이것은 제 1 스위치(372) 및 제 2 스위치(375)로 도시된다. 스위치들(372, 375)이 실제로 스위치들일 필요가 없고 이 스위치들은 단지 양자화된 변환 계수들을 양자화된 변환 계수로서 또는 수정된 상태로 수정기의 출력에 제공하는 것이 가능하다는 것을 예시하는 것이 주목되어야 한다. 코딩 선택기(376)가 손실이 있는 코딩을 사용할 것을 선택하면, 코딩 선택기(376)는 양자화된 계수 값들을 계수 수정기(373)로 출력하기 위하여 수정기를 제어할 수 있다. 계수 수정기(373)는 그 후에 제 1 계수의 부호가 임베딩될 수 있는지를 결정하고(506), 만일 임베딩될 수 있으면 디코더가 다른, 이미 디코딩된 정보로부터 신호를 결정할 수 있는 그러한 방식으로 부호 정보를 임베딩할 수 있다. 이 동작은 디코더가 부호를 결정할 수 있도록 계수들 중 하나 이상이 수정되는 것을(508) 필요로 할 수 있다. 일부 상황들에서 양자화된 계수 값들에 대한 수정들은 필요하지 않을 수 있고 여기에서는 계수 수정기(373)는 양자화된 계수들을 양자화된 계수로서 선택사양의 엔트로피 인코더(33)에 제공할 수 있다. 부호 임베딩의 정보는 비트스트림에 제공될 수 있다(510).
픽셀 예측기(302)는 인터 예측기(306)(이미지 및 움직임 보상된 참조 프레임(318) 사이의 차를 결정하는) 및 인트라 예측기(308)(단지 이미 프로세싱된 현재의 프레임 또는 화상의 부분들에 기초하여 이미지 블록에 대한 예측을 결정하는) 모두에서 인코딩된 이미지(300)를 수신한다. 인터 예측기 및 인트라 예측기 모두의 출력은 모드 선택기(310)로 전달될 수 있다. 인트라 예측기(308)는 하나 이상의 인트라 예측 모드들을 가질 수 있다. 그러므로, 각각의 모드는 인트라 예측을 제공하고 예측된 신호를 모드 선택기(310)에 제공할 수 있다. 모드 선택기(310)는 또한 이미지(300)의 카피를 수신한다.
모드 선택기(310)는 현재의 블록을 인코딩하는 데 어떠한 인코딩 모드를 사용할지를 결정한다. 모드 선택기(310)가 인터 예측 모드를 사용할 것을 결정하면 이는 인터 예측기(306)의 출력을 모드 선택기(310)의 출력으로 전달할 것이다. 모드 선택기(310)가 인트라 예측 모드를 사용할 것을 결정하면, 이는 인트라 예측기 모드들 중 하나의 출력을 모드 선택기(310)의 출력으로 전달할 것이다.
모드 선택기의 출력은 제 1 합산 디바이스(321)로 전달된다. 제 1 합산 디바이스는 예측 에러 인코더(303)로 입력되는 제 1 예측 에러 신호(320)를 생성하기 위해 이미지(300)로부터 픽셀 예측기(302) 출력을 공제할 수 있다.
픽셀 예측기(302)는 예비 재구성기(339)로부터 이미지 블록(312)의 예측 표현 및 예측 에러 디코더(304)의 출력(338)의 결합을 더 수신한다. 예비의 재구성된 이미지(314)는 인트라 예측기(308)로 그리고 필터(316)로 전달될 수 있다. 예비 표현을 수신하는 필터(316)는 예비 표현을 필터링하고 참조 프레임 메모리(318) 내에 저장될 수 있는 최종 재구성 이미지(340)를 출력할 수 있다. 참조 프레임 메모리(318)는 미래의 이미지(300)가 인터 예측 동작들에서 비교되는 참조 이미지로서 사용되기 위하여 인터 예측기(306)에 접속될 수 있다.
픽셀 예측기(302)의 동작은 당업계에 공지되어 있는 임의의 공지된 픽셀 예측 알고리즘을 수행하도록 구성될 수 있다.
픽셀 예측기(302)는 또한 픽셀 예측기(302)로부터 예측된 값들을 출력하기 전에 이 예측된 값들을 필터링하는 필터(385)를 포함할 수 있다.
예측 에러 인코더(302) 및 예측 에러 디코더(304)의 동작은 이후에 더 상세하게 설명될 것이다. 다음의 예들에서 인코더는 풀(full) 이미지 또는 화상을 형성하도록 진행되는 16x16 픽셀 매크로블록들에 관하여 이미지를 생성한다. 그러므로, 다음의 예들의 경우 픽셀 예측기(302)는 크기 16x16 픽셀들의 일련의 예측된 매크로블록들을 출력하고 제 1 합산 디바이스(321)는 이미지(300) 내의 제 1 매크로블록 대 예측되는 매크로블록(픽셀 예측기(302)의 출력) 사이의 차를 표현할 수 있는 일련의 16x16 픽셀 잔여 데이터 매크로블록들을 출력한다. 다은 크기의 매크로블록들이 사용될 수 있음이 인정될 것이다.
예측 에러 인코더(303)는 변환 블록(342) 및 양자화기(344)를 포함한다. 변환 블록(342)은 제 1 예측 에러 신호(320)를 변환 도메인으로 변환한다. 변환은 예를 들어, DCT 변환이다. 양자화기(344)는 양자화되는 계수들을 형성하기 위하여 변환 도메인 신호, 예를 들어 DCT 계수들을 양자화한다.
예측 에러 디코더(304)는 예측 에러 인코더(303)로부터 출력을 수신하고 제 2 합산 디바이스(339)에서 이미지 블록(312)의 예측 표현과 결합될 때 예비 재구성 이미지(314)를 생성하는 디코딩된 예측 에러 신호(338)를 생성하기 위하여 예측 에러 인코더(303)의 정반대의 프로세스들을 수행한다. 예측 에러 디코더는 변환 신호를 재구성하기 위해 양자화된 계수 값들, 예를 들어 DCT 계수들을 역양자화하는 역양자화기(346) 및 재구성된 변환 신호로의 역 변환을 수행하는 역 변환 블록(348)을 포함하는 것으로 고려될 수 있고, 여기서 역 변환 블록(348)의 출력은 재구성 블록(들)을 포함한다. 예측 에러 디코더는 또한 부가 디코딩된 정보 및 필터 파라미터들에 따라 재구성된 매크로블록을 필터링할 수 있는 매크로블록 필터(도시되지 않음)를 포함할 수 있다.
이후에 부호 정보(예를 들어, 부호 비트)를 임베딩하는 예시 실시예가 설명될 것이다. 코딩 선택기(364)는 부호 정보를 인코딩하는 것을 선택하거나 부호 정보를 임베딩하는 것을 선택할 수 있다. 상술한 바와 같이, 선택은 무손실 인코딩이 수행되어야 하는지 또는 손실이 있는 인코딩이 허용되는지에 기초할 수 있다. 부호가 임베딩 없이 인코딩될 수 있으면, 모든 계수들에 대한 부호는 인코더에 의해 제공될 수 있다. 부호의 임베딩이 선택되면, 계수 수정기는 양자화된 계수 값들로부터 제 1 넌제로 계수(first non-zero coefficient)를 스캐닝(scanning) 순서로 탐색하고 계수의 부호를 결정할 수 있다. 예시 실시예에서, 부호는 양자화된 계수 값들의 합과 비교될 수 있고 합의 패리티(parity)가 신호와 동일하면, 계수들은 수정 없이 전송될 수 있다. 부호 및 패리티가 동일하지 않으면, 패리티가 부호와 정합하도록 양자화된 계수들 중 하나 이상이 수정될 수 있다. 이 수정은 예를 들어, 계수들 중 하나 이상의 값을 변경함으로써 수행될 수 있다.
부호 정보가 비트스트림 내에 임베딩되었다면, 표시 가산기(363)는 제 1 계수의 부호가 제 1 계수의 부호로서 전송되지 않으나 비트스트림 내에 임베딩되었음을 디코더가 검출할 수 있도록 구문 요소(syntax element) 또는 다른 표시를 비트스트림에 가산할 수 있다. 대안으로, 디코더는 변환 유닛에서 넌제로 계수들의 수를 분석함으로써 계수의 부호 비트가 임베딩되는지를 검출할 수 있다.
이후에 디코더(600)의 예시 실시예의 동작이 도 6을 참조하여 더 상세하게 설명된다.
디코더 측에서는 이미지 블록들을 재구성하기 위하여 유사한 동작들이 수행된다. 도 6은 본 발명의 실시예들을 사용하는 데 적합한 비디오 디코더(700)의 블록도를 도시하고 도 7은 비디오 디코더에서의 하나의 방법의 예의 흐름도를 도시한다. 디코딩될 비트스트림이 인코더로부터, 네트워크 요소로부터, 저장 매체로부터 또는 다른 소스로부터 수신될 수 있다. 디코더는 자신이 엔트로피 코딩된 코드워드(codeword)들의 의미를 결정할 수 있고 수신된 신호에 대한 엔트로피 디코딩을 수행하는 엔트로피 디코더(701)에 의해 비트스트림을 디코딩할 수 있도록 비트스트림의 구조를 인지한다. 엔트로피 디코더는 따라서 상술한 인코더의 엔트로피 인코더(330)에 역 동작을 수행한다. 엔트로피 디코더(701)는 엔트로피 디코딩의 결과들을 역수정기(705)로 출력한다(도 7에서 블록 800). 역수정기(705)는 수신된 비트스트림이 임베딩된 부호 정보의 표시를 포함하고 있는지를 결정하기 위하여 상기 비트스트림을 검사한다(802). 상술한 바와 같이, 이 결정은 무손실 코딩이 수행될 수 있는지에 대한 비트스트림 내의 표시에 기초할 수 있다. 이 표시는 디코더에 의해 수신될 수 있고(801) 역수정기(705)는 수신된 표시를 검사할 수 있다. 비트스트림이 임베딩된 부호 정보의 표시를 포함하면, 역수정기(705)는 디코딩되고, 양자화된 계수 값들로부터 부호 정보를 재구성하고(804) 부호 정보가 비트스트림 내로 임베딩되었던 양자화된 계수로 상기 부호를 가산한다(806). 역수정기(705)는 재구성된 양자화된 계수 값들을 예측 에러 디코더(702) 및 픽셀 예측기(704)로 출력한다.
일부 실시예들에서 엔트로피 코딩이 사용될 수 없지만 다른 채널 인코딩이 사용될 수 있거나 인코딩된 비트스트림이 채널 인코딩 없이 디코더(700)에 제공될 수 있다. 디코더(700)는 수신되는 신호로부터 인코딩된 코드워드들을 획득하기 위해 대응하는 채널 디코더를 포함할 수 있다.
픽셀 예측기(704)는 엔트로피 디코더(701)의 출력을 수신한다. 엔트로피 디코더(701)의 출력은 현재의 블록을 인코딩하는 데 사용되는 예측 모드에 대한 표시를 포함할 수 있다. 픽셀 예측기(704) 내의 예측기 선택기(714)는 인트라 예측 또는 인터 예측이 수행될 수 있음을 결정한다. 예측기 선택기(714)는 더욱이 이미지 블록(716)의 예측되는 표현을 제 1 결합기(713)에 출력할 수 있다. 이미지 블록(716)의 예측되는 표현은 예비 재구성 이미지(718)를 생성하기 위하여 재구성된 예측 에러 신호(712)와 함께 사용된다. 예비 재구성 이미지(718)는 예측기(714)에서 사용될 수 있거나 필터(720)로 전달될 수 있다. 필터(720)는, 사용되는 경우, 최종 재구성 신호(722)를 출력하는 필터링을 적용한다. 최종 재구성 신호(722)는 참조 프레임 메모리(724)에 저장될 수 있고, 참조 프레임 메모리(724)는 예측 동작들을 위해 예측기(714)에 더 접속된다.
또한 예측 에러 디코더(702)는 엔트로피 디코더(701)의 출력을 수신한다. 예측 에러 디코더(702)의 역양자화기(792)는 엔트로피 디코더(701)의 출력을 역양자화할 수 있고 역양자화기(792)에 의해 출력되는 역양자화된 신호로의 역 변환 동작을 수행할 수 있다. 엔트로피 디코더(701)의 출력은 또한 예측 에러 신호가 적용될 수 없음을 표시할 수 있고 이 경우에 예측 에러 디코더는 모든 0 출력 신호를 발생시킨다.
디코더는 재구성을 위해 16x16 픽셀 잔여 매크로블록을 선택한다. 이 잔여 매크로블록은 또한 현재의 블록으로 칭해진다.
디코더는 현재의 블록의 인코딩에 사용되는 인코딩 모드에 대한 정보를 수신할 수 있다. 이 표시는 필요할 때 디코딩되고, 예측 선택기(714)의 재구성 프로세서(791)로 제공된다. 재구성 프로세서(791)는 상기 표시를 검사하고 다음 중 하나, 즉 블록이 인트라 예측 또는 인터 예측 모드를 사용하여 인코딩되었음을 상기 표시가 표시하는 경우, 인트라 예측 모드(들), 또는 블록이 인터 예측을 사용하여 인코딩되었음을 상기 표시가 표시하는 경우, 인터 예측 모드를 선택한다.
인터 예측 모드의 경우 재구성 프로세서(791)는 움직임 벡터 정의기, 예측 목록 수정기 및/또는 움직임 벡터 선택기와 같이, 인코더의 예측 프로세서(362)에 대응하는 하나 이상의 요소들을 포함할 수 있다.
예시 실시예들에서, 구문 구조들, 구문 요소들의 시맨틱(semantic)들 및 디코딩 프로세스는 다음과 같이 명시될 수 있다. 비트스트림 내의 구문 요소들은 볼드(bold) 형으로 표현된다. 각각의 구문 요소는 자체의 명칭(모두 밑줄이 있는 문자들을 가지는 소문자들), 선택적으로 자체의 하나 또는 두 개의 구문 카테고리들 또는 자체의 코딩된 표현의 방법에 대한 하나 또는 2개의 디스크립터(descriptor)들에 의해 기술된다. 디코딩 프로세스는 구문 요소의 값에 따라 그리고 이전에 디코딩된 구문 요소들의 값들에 따라 거동(behave)한다. 구문 요소의 값이 구문 표들 또는 텍스트에서 사용될 때, 구문 요소는 보통(즉, 볼드가 아닌) 유형으로 나타난다. 일부 경우들에서 구문 표들은 구문 요소 값들로부터 도출되는 다른 변수들의 값들을 사용할 수 있다. 그와 같은 변수들은 구문 표들에서 소문자 및 대문자의 혼합에 의해 그리고 어떠한 밑줄이 있는 문자들 없이 지칭되어 나타난다. 대문자로 시작하는 변수들은 현재의 구문 구조들 및 모든 부수적인 구문 구조들의 디코딩을 위해서 도출된다. 대문자로 시작하는 변수들은 발생하는 변수의 구문 구조를 언급하지 않고 이후의 구문 구조들을 위한 디코딩 프로세스에서 사용될 수 있다. 소문자로 시작하는 변수들은 단지 자신들이 도출하는 컨텍스트 내에서 사용된다. 일부 경우들에서, 구문 요소 값들 또는 변수 값들에 대한 "연상(mnemonic)" 명칭들은 자신들의 수치 값들과 상호 교환 가능하게 사용된다. 때때로 "연상" 명칭들은 어떠한 연관되는 수치 값들 없이 사용된다. 이 값들 및 명칭들의 연관은 텍스트에서 명시된다. 명칭들은 밑줄이 있는 문자에 의해 분리되는 문자들의 하나 이상의 그룹들로부터 구성된다. 각각의 그룹은 대문자로 시작하고 더 많은 대문자들을 포함할 수 있다.
예시 실시예들에서, 예를 들어 H.264/AVC 또는 드래프트 HEVC에서 명시되는 바와 같이, 산술 연산자들, 논리 연산자들, 관계 연산자들, 비트 연산자(bit-wise operator)들, 지정 연산자(assignment operator)들 및 범위 표기에 대해 공통 표기법이 사용된다. 더욱이 예를 들어 H.264/AVC 또는 드래프트 HEVC에서 명시되는 바와 같은 공통 수학 함수들이 사용될 수 있고 예를 들어 H.264/AVC 또는 드래프트 HEVC에서 명시되는 바와 같이 연산자들의 공통 선행 순서 및 실행 순서(좌에서 우로 또는 우에서 좌로)가 사용될 수 있다.
예시 실시예들에서, 다음의 디스크립터는 각각의 구문 요소의 파싱(parsing) 프로세스를 명시하는 데 사용될 수 있다.
- ae(v): 컨텍스트-적응형 산술 엔트로피 코딩된 구문 요소.
예시 실시예들에서, 구문 구조는 다음을 사용하여 명시될 수 있다. 중괄호들로 닫혀 있는 명령문(statement)들의 그룹은 복합문(compound statement)이고 함수적으로 단일 문으로 처리된다. "while" 구조는 조건이 참인지에 대한 테스트를 지정하고 만일 참이라면 조건이 더 이상 참이 아닐 때까지 반복해서 명령문(또는 복합문)의 평가를 명시한다. "do...while" 구조는 조건이 참인지에 대한 테스트에 선행하여 명령문의 평가를 한 번 지정하고, 만일 참이라면 조건이 더 이상 참이 아닐 때까지 명령문의 반복 평가를 명시한다. "if... else" 구조는 조건이 참인지에 대한 테스트를 지정하고 조건이 참이라면 주 명령문의 평가를 명시하고, 만일 참이 아니라면 대안의 명령문의 평가를 지정한다. 이 구조 및 연관되는 대안 명령문 구조의 "else" 부분은 대안의 명령문 평가가 필요하지 않을 경우 생략된다. "for" 구조는 조건의 테스트에 선행하여 초기 명령문의 평가를 명시하고, 조건이 참이라면, 조건이 더 이상 참이 아닐 때까지 후속 명령문에 선행하는 주 명령문의 반복 평가를 지정한다.
다음에 잔여 코딩 구문의 예시 실시예가 기술된다.
파라미터 lossless _coding_enabled는 무손실 코딩 모드가 현재의 변환 유닛에 대해 가능한지를 명시한다.
상술한 본 발명의 실시예들은 수반되는 프로세스들의 이해를 돕기 위해 코덱을 별개의 인코더 및 디코더 장치에 관하여 기술한다. 그러나, 장치들, 구조들 및 동작들은 단일 인코더-디코더 장치/구조/동작으로서 구현될 수 있음이 인정될 것이다. 더욱이 본 발명의 일부 실시예들에서 코더 및 디코더는 일부의 또는 모든 공통 요소들을 공유할 수 있다.
상기 예들이 전자 디바이스 내의 코덱 내에서 동작하는 본 발명의 실시예들을 기술되었을지라도, 후술되는 본 발명은 임의의 비디오 코덱의 일부로서 구현될 수 있음이 인정될 것이다. 그러므로, 예를 들어, 본 발명의 실시예들은 고정 또는 유선 통신 경로들을 통한 비디오 코딩을 구현할 수 있는 비디오 코덱에서 구현될 수 있다.
그러므로, 사용자 장비는 상기 본 발명의 실시예들에서 기술되는 것과 같은 비디오 코덱을 포함할 수 있다.
용어 사용자 장비는 모바일 전화기들, 휴대용 데이터 프로세싱 디바이스들 또는 휴대용 웹 브라우저들과 같은, 무선 사용자 장비의 임의의 적절한 유형을 포괄하도록 의도된다.
더욱이 지상선 모바일 네트워크(public land mobile network; PLMN)의 요소들은 또한 상술한 바와 같은 비디오 코덱들을 포함할 수 있다.
일반적으로, 본 발명의 다양한 실시예들은 하드웨어 또는 특수 목적 회로들, 소프트웨어, 로직 또는 이들의 임의의 결합물에서 구현될 수 있다. 예를 들어, 일부 양태들은 하드웨어에서 구현될 수 있고, 반면에 다른 양태들은 제어기, 마이크로제어기 또는 다른 컴퓨팅 디바이스에 의해 실행될 수 있는 펌웨어 또는 소프트웨어에서 구현될 수 있으나, 본 발명은 이로 제한되지 않는다. 본 발명의 다양한 양태들이 블록도들, 흐름도들 또는 어떤 다른 그림 표현을 사용하여 예시되고 설명될 수 있을지라도, 본원에서 기술되는 이 블록들, 장치들, 시스템들, 기술들 또는 방법들은 비제한적인 예들로서, 하드웨어, 소프트웨어, 펌웨어, 특수 목적 회로들 또는 로직, 범용 하드웨어 또는 제어기 또는 다른 컴퓨팅 디바이스들 또는 이들의 어떤 결합물에서 구현될 수 있음이 충분히 이해된다.
본 발명의 실시예들은 프로세서 엔티티(entity)에서, 또는 하드웨어에 의해, 또는 소프트웨어 및 하드웨어의 결합에 의해서와 같이, 모바일 디바이스의 데이터 프로세서에 의해 실행될 수 있는 컴퓨터 소프트웨어에 의해 구현될 수 있다. 더욱이 이 점에 있어서 도면들에서와 같은 논리 흐름의 임의의 블록들이 프로그램 단계들 또는 상호 연결되는 논리 회로들, 블록들 및 기능들 또는 프로그램 단계들 논리 회로들, 블록들 및 기능들의 결합을 표현할 수 있음이 주목되어야 한다. 소프트웨어는 메모리 칩들 또는 프로세서 내에서 구현되는 메모리 블록들, 하드 디스크 또는 플로피 디스크들과 같은 자기 매체 및 예를 들어, DVD 및 이의 데이터 이형물들, CD와 같은 광학 매체와 같은 그러한 물리적 매체 상에 저장될 수 있다.
메모리는 국지적인 기술 환경에 적합한 임의의 유형으로 이루어질 수 있고 반도체 기반 메모리 디바이스들, 자기 메모리 디바이스들 및 시스템들, 광학 메모리 디바이스들 및 시스템들, 고정 메모리 및 제거 가능 메모리와 같이, 임의의 적절한 데이터 저장 기술을 사용하여 구현될 수 있다. 데이터 프로세서들은 국지적인 기술 환경에 적합한 임의의 유형으로 이루어질 수 있고 비제한적인 예들로서, 범용 컴퓨터들, 특수 목적 컴퓨터들, 마이크로제어기들, 디지털 신호 프로세서(digital signal processor; DSP)들 및 다중 코어 프로세서 아키텍처에 기초하는 프로세서들 중 하나 이상을 포함할 수 있다.
본 발명의 실시예들은 집적 회로 모듈들과 같은 다양한 구성요소들에서 실행될 수 있다. 집적 회로들의 설계는 대체로 고도로 자동화된 프로세스이다. 논리 레벨 설계는 반도체 기판 상에서 식각되고 형성될 준비가 되어 있는 반도체 회로 설계로 변환하기 위해 복잡하고 강력한 소프트웨어 툴들이 이용 가능하다.
California, Mountain View의 Synopsys 및 California, San Jose의 Cadence Design에 의해 제공되는 프로그램들과 같은 프로그램들은 컨덕터들을 자동으로 라우팅(routing)하고 미리 저장된 설계 모듈들의 라이브러리들뿐만 아니라 양호하게 설정된 설계 규칙을 사용하여 반도체 칩 상에 구성요소들을 설치한다. 일단 반도체 회로에 대한 설계가 완료되었다면, 그 결과에 따른 설계는 표준화된 전자 포맷(예를 들어, Opus, GDSII 등)으로 반도체 제조 설비 또는 제조를 위한 "팹(fab)"으로 전송될 수 있다.
상기 설명은 예시적이며 비제한적인 예들을 통해 본 발명의 예시적인 실시예의 완전하고 유익한 설명을 제공하였다. 그러나, 첨부 도면들 및 첨부된 청구항들과 함께 판독될 때, 상기 설명을 고려하면, 당업자에게 다양한 수정들 및 적응들이 분명해질 것이다. 그러나, 본 발명의 내용의 모든 그와 같은 그리고 유사한 수정들은 여전히 본 발명의 범위 내에 해당할 것이다.
이후에 일부 예들이 제공될 수 있다.
일부 실시예들에서 방법이 제공되고, 상기 방법은:
계수들의 세트를 수신하는 단계;
무손실 코딩 모드가 적용되는지에 대한 표시를 수신하는 단계;
계수들의 세트 내의 계수의 부호가 비트스트림 내에 임베딩될 수 있는지를 결정하는 단계를 포함하고, 계수들의 세트 내의 계수의 부호가 비트스트림 내에 임베딩될 수 있는지를 결정하는 단계는 적어도 무손실 코딩 모드가 적용되는지에 대한 표시에 좌우된다.
상기 방법의 일부 실시예들에서, 계수들의 세트 내의 계수의 부호가 비트스트림에 임베딩될 수 있음을 상기 결정하는 단계가 표시하면, 임베딩된 부호 비트의 표시를 삽입하는 단계를 더 포함한다.
일부 실시예들에서 상기 결정하는 단계는 변환 유닛에서 넌제로 계수들의 수를 분석하는 단계를 포함한다.
일부 실시예들에서 상기 결정하는 단계는 양자화된 계수 값들로부터 제 1 넌제로 계수를 스캐닝 순서로 탐색하고 계수의 부호를 결정하는 단계를 포함한다.
일부 실시예들에서 부호는 양자화된 계수 값들의 합과 비교된다.
일부 실시예들에서 상기 방법은 합의 패리티가 부호와 동일한지를 결정하는 단계; 및 만일 동일하지 않으면, 적어도 하나의 계수를 수정하는 단계를 포함한다.
일부 실시예들에서 상기 방법은 무손실 코딩 모드가 적용되지 않음을 표시가 표시하면, 부호를 비트스트림 내로 임베딩하는 단계를 포함한다.
일부 실시예들에서 방법이 제공되고, 상기 방법은:
인코딩되는 계수들의 세트를 수신하는 단계;
무손실 코딩 모드가 적용되는지에 대한 표시를 수신하는 단계;
비트스트림이 계수의 임베딩된 부호의 표시를 포함하는지를 결정하는 단계;
비트스트림이 계수의 임베딩된 부호의 표시를 포함한다고 결정하는 단계가 표시하면, 디코딩된 계수들에 기초하여 부호를 결정하는 단계; 및
결정된 부호에 기초하여 계수의 부호를 수정하는 단계를 포함한다.
일부 실시예들에서 부호를 결정하는 단계는 변환 유닛에서 넌제로 계수들의 수를 분석하는 단계를 포함한다.
일부 실시예들에서 상기 방법은 변환 유닛에서 결정된 넌제로 계수들의 수에 기초하여 비트스트림으로부터 부호를 재구성하는 단계를 포함한다.
일부 실시예들에서 컴퓨터 프로그램 코드를 포함하는 메모리 및 프로세서를 포함하는 장치가 제공되고, 메모리 및 컴퓨터 프로그램 코드는 프로세서와 함께, 장치로 하여금:
계수들의 세트를 수신하고;
무손실 코딩 모드가 적용되는지에 대한 표시를 수신하고;
계수들의 세트 내의 계수의 부호가 비트스트림 내에 임베딩될 수 있는지를 결정하도록 구성되고, 계수들의 세트 내의 계수의 부호가 비트스트림 내에 임베딩될 수 있는지를 결정하는 것은 적어도 무손실 코딩 모드가 적용되는지에 대한 표시에 좌우된다.
일부 실시예들에서 계수들의 세트 내의 계수의 부호가 비트스트림 내에 임베딩될 수 있음을 상기 결정이 표시하면, 임베딩된 부호 비트의 표시가 삽입된다.
일부 실시예들에서 상기 장치는 프로세서와 함께, 상기 장치로 하여금 변환 유닛에서 넌제로 계수들의 수를 분석하도록 구성되는 컴퓨터 프로그램 코드를 포함한다.
일부 실시예들에서 상기 장치는 프로세서와 함께, 상기 장치로 하여금, 양자화된 계수 값들로부터 제 1 넌제로 계수를 스캐닝 순서로 탐색하고 계수의 부호를 결정하도록 구성되는 컴퓨터 프로그램 코드를 포함한다.
일부 실시예들에서 상기 장치는 프로세서와 함께, 상기 장치로 하여금 부호를 양자화된 계수 값들의 합과 비교하도록 구성되는 컴퓨터 프로그램 코드를 포함한다.
일부 실시예들에서 상기 장치는 프로세서와 함께, 상기 장치로 하여금 합의 패리티가 부호와 동일한지를 결정하고; 동일하지 않으면 적어도 하나의 계수를 수정하도록 구성되는 컴퓨터 프로그램 코드를 포함한다.
일부 실시예들에서 상기 장치는 프로세서와 함께, 상기 장치로 하여금 계수들의 세트가 손실이 있는 인코딩 방식으로 인코딩될 수 있는지를 조사하고, 만일 그렇다면, 부호를 비트스트림 내로 임베딩하도록 구성되는 컴퓨터 프로그램 코드를 포함한다.
일부 실시예들에서 컴퓨터 프로그램 코드를 포함하는 메모리 및 프로세서를 포함하는 장치가 제공되고, 메모리 및 컴퓨터 프로그램 코드는 프로세서와 함께, 장치로 하여금:
인코딩된 계수들의 세트를 수신하고;
무손실 코딩 모드가 적용되는지에 대한 표시를 수신하고;
비트스트림이 계수의 임베딩된 부호의 표시를 포함하는지를 결정하는데, 여기서 비트스트림이 계수의 임베딩된 부호의 표시를 포함하는지를 결정하는 것은 적어도 무손실 코딩 모드가 적용되는지에 대한 표시에 좌우되고;
비트스트림이 계수의 임베딩된 부호의 표시를 포함한다고 결정이 표시하면, 디코딩된 계수들에 기초하여 부호를 결정하고; 그리고
결정된 부호에 기초하여 계수의 부호를 수정하도록 구성된다.
일부 실시예들에서 상기 장치는 프로세서와 함께, 상기 장치로 하여금
계수들의 세트 내의 제 1 및 최종 넌제로 계수 사이의 계수들의 수를 결정하도록 구성되는 컴퓨터 프로그램 코드를 포함한다.
일부 실시예들에서 상기 장치는 프로세서와 함께, 상기 장치로 하여금 결정된 계수들의 수 및 계수들의 값들에 기초하여 비트스트림으로부터 부호를 재구성하도록 구성되는 컴퓨터 프로그램 코드를 포함한다.
일부 실시예에서 내부에 컴퓨터 프로그램 코드, 인코더가 사용하기 위한 컴퓨터 실행 가능 프로그램 코드를 저장하는 저장 매체가 제공되고, 상기 프로그램 코드들은 인코더가 사용하기 위한 명령어를 포함하고, 상기 프로그램 코드는:
계수들의 세트를 수신하고;
무손실 코딩 모드가 적용되는지에 대한 표시를 수신하고;
계수들의 세트 내의 계수의 부호가 비트스트림 내에 임베딩될 수 있는지를 결정하기 위한 명령어를 포함하고, 계수들의 세트 내의 계수의 부호가 비트스트림 내에 임베딩될 수 있는지를 결정하는 것은 적어도 무손실 코딩 모드가 적용되는지에 대한 표시에 좌우된다.
일부 실시예들에서 상기 프로그램 코드는 계수들의 세트 내의 계수의 부호가 비트스트림 내에 임베딩될 수 있음을 상기 결정이 표시하면, 임베딩된 부호 비트의 표시를 삽입하기 위한 명령어를 포함한다.
일부 실시예들에서 내부에 컴퓨터 프로그램 코드, 인코더가 사용하기 위한 컴퓨터 실행 가능 프로그램 코드를 저장하는 저장 매체가 제공되고, 상기 프로그램 코드들은 인코더가 사용하기 위한 명령어를 포함하고, 상기 프로그램 코드는:
인코딩된 계수들의 세트를 수신하고;
무손실 코딩 모드가 적용되는지에 대한 표시를 수신하고;
비트스트림이 계수의 임베딩된 부호의 표시를 포함하는지를 결정하고, 여기서 비트스트림이 계수의 임베딩된 부호의 표시를 포함하는지를 결정하는 것은 적어도 무손실 코딩 모드가 적용되는지에 대한 표시에 좌우되고;
비트스트림이 계수의 임베딩된 부호의 표시를 포함한다고 상기 결정이 표시하면, 디코딩된 계수들에 기초하여 부호를 결정하고; 그리고
결정된 부호에 기초하여 계수의 부호를 수정하기 위한 명령어를 포함한다.
일부 실시예들에서 장치가 제공되고, 상기 장치는:
계수들의 세트를 수신하는 수단;
무손실 코딩 모드가 적용되는지에 대한 표시를 수신하는 수단;
계수들의 세트 내의 계수의 부호가 비트스트림 내에 임베딩될 수 있는지를 결정하는 수단을 포함하고, 계수들의 세트 내의 계수의 부호가 비트스트림 내에 임베딩될 수 있는지를 결정하는 것은 적어도 무손실 코딩 모드가 적용되는지에 대한 표시에 좌우된다.
일부 실시예들에서 상기 장치는 계수들의 세트 내의 계수의 부호가 비트스트림 내에 임베딩될 수 있음을 상기 결정이 표시하면, 임베딩된 부호 비트의 표시를 삽입하는 수단을 포함한다.
일부 실시예들에서 장치가 제공되고, 상기 장치는:
인코딩된 계수들의 세트를 수신하는 수단;
비트스트림이 계수의 임베딩된 부호의 표시를 포함하는지를 결정하는 수단;
비트스트림이 계수의 임베딩된 부호의 표시를 포함한다고 결정이 표시하면, 디코딩된 계수들에 기초하여 부호를 결정하는 수단; 및
결정된 부호에 기초하여 계수의 부호를 수정하는 수단을 포함한다.
Claims (16)
- 이미지를 인코딩(encoding)하는 방법으로서,
계수들의 세트를 수신하는 단계와,
무손실 코딩 모드가 적용되는지에 대한 표시를 수신하는 단계와,
무손실 코딩 모드가 적용됨을 상기 표시가 표시하면, 비트스트림에 상기 계수들의 세트 내의 모든 계수들의 부호를 제공하는 단계와,
무손실 코딩 모드가 적용되지 않음을 상기 표시가 표시하면, 상기 계수들의 세트 내의 하나의 계수의 부호가 상기 계수들의 세트 내의 다른 계수들에 기초하여 상기 비트스트림 내에 임베딩(embedding)되는지를 결정하는 단계- 상기 계수의 부호는 상기 계수들의 세트 내의 계수들의 값에 기초하여 결정가능함 - 를 포함하는
방법.
- 제 1 항에 있어서,
상기 계수들의 세트에서 넌제로 계수들(non-zero coefficient)의 수를 분석하는 단계와,
상기 계수들의 세트 내의 넌제로 계수들의 수에 기초하여 상기 계수의 부호를 추론하는 단계를 더 포함하는
방법.
- 제 1 항 또는 제 2 항에 있어서,
상기 계수의 부호를 상기 계수들의 세트 내의 계수 값들의 합과 비교하는 단계와,
상기 합의 패리티(parity)가 상기 계수의 부호와 같은지를 결정하고, 만일 상기 합의 패리티가 상기 계수의 부호와 같지 않으면, 상기 계수들의 세트 내의 적어도 하나의 계수의 값을 수정하는 단계를 더 포함하는
방법.
- 인코딩된 이미지를 표현하는 비트스트림을 디코딩하는 방법으로서,
인코딩된 계수들의 세트를 수신하는 단계와,
무손실 코딩 모드가 적용되는지에 대한 표시를 수신하는 단계와,
무손실 코딩 모드가 적용됨을 상기 표시가 표시하면, 비트스트림으로부터 인코딩된 계수들의 세트의 모든 계수들의 부호를 수신하는 단계와,
무손실 코드 모드가 적용되지 않음을 상기 표시가 표시하면, 상기 비트스트림이 적어도 하나의 계수의 임베딩된 부호의 표시를 포함하는지를 결정하는 단계와,
상기 결정하는 단계에서 상기 비트스트림이 상기 적어도 하나의 계수의 임베딩된 부호의 표시를 포함함을 나타내면, 상기 수신된 임코딩된 계수들의 세트 내의 다른 계수들에 기초하여 상기 적어도 하나의 계수의 부호를 결정하는 단계와,
상기 결정된 부호에 기초하여 상기 적어도 하나의 계수의 부호를 수정하는 단계를 포함하는
방법.
- 제 4 항에 있어서,
상기 수신된 인코딩된 계수들의 세트 내의 넌제로 계수들의 수를 분석하는 단계와,
상기 계수들의 세트 내의 넌제로 계수들의 수에 기초하여 상기 적어도 하나의 계수의 부호를 추론하는 단계를 더 포함하는
방법.
- 제 4 항 또는 제 5 항에 있어서,
상기 수신된 인코딩된 계수들의 세트 내의 계수 값들의 합을 결정하는 단계와,
상기 합의 패리티에 기초하여 상기 적어도 하나의 계수의 부호를 추론하는 단계를 더 포함하는
방법.
- 제 4 항 또는 제 5 항에 있어서,
상기 수신된 인코딩된 계수들의 세트 내의 제 1 넌제로 계수의 적어도 하나의 계수 기반 부호의 부호를 스캐닝 순서로 추론하는 단계를 더 포함하는
방법.
- 이미지를 인코딩하는 장치로서,
상기 장치는 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리 및 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께, 상기 장치로 하여금,
계수들의 세트를 수신하는 단계와,
무손실 코딩 모드가 적용되는지에 대한 표시를 수신하는 단계와,
무손실 코딩 모드가 적용됨을 상기 표시가 표시하면, 비트스트림에 상기 계수들의 세트 내의 모든 계수들의 부호를 제공하는 단계와,
무손실 코딩 모드가 적용되지 않음을 상기 표시가 표시하면, 상기 계수들의 세트 내의 하나의 계수의 부호가 상기 계수들의 세트 내의 다른 계수들에 기초하여 상기 비트스트림 내에 임베딩되는지를 결정하는 단계 - 상기 계수의 부호는 상기 계수들의 세트 내의 계수들의 값에 기초하여 결정가능함 - 를 포함하는 방법을 수행하도록 구성되는
장치.
- 제 8 항에 있어서,
상기 계수들의 세트 내의 넌제로 계수들의 수를 분석하고,
상기 계수들의 세트 내의 넌제로 계수들의 수에 기초하여 상기 계수들의 부호를 추론하도록 더 구성되는
장치.
- 제 8 항 또는 제 9 항에 있어서,
상기 컴퓨터 프로그램 코드는,
상기 계수들의 부호를 상기 계수들의 세트 내의 계수 값들의 합과 비교하고,
상기 합의 패리티가 상기 계수의 부호와 같은지를 결정하고, 만일 상기 합의 패리티가 상기 계수의 부호와 같지 않으면, 상기 계수들의 세트 내의 적어도 하나의 계수의 값을 수정하도록 더 구성되는
장치.
- 이미지를 인코딩하기 위한 컴퓨터 프로그램을 포함하는 컴퓨터 판독 가능 매체로서, 상기 컴퓨터 프로그램은 하나 이상의 프로세서들에 의해 실행될 때, 장치로 하여금,
계수들의 세트를 수신하는 단계와,
무손실 코딩 모드가 적용되는지에 대한 표시를 수신하는 단계와,
무손실 코딩 모드가 적용됨을 상기 표시가 표시하면, 비트스트림에 상기 계수들의 세트 내의 모든 계수들의 부호를 제공하는 단계와,
무손실 코딩 모드가 적용되지 않음을 상기 표시가 표시하면, 상기 계수들의 세트 내의 하나의 계수의 부호가 상기 계수들의 세트 내의 다른 계수들에 기초하여 상기 비트스트림 내에 임베딩되는지를 결정하는 단계 - 상기 계수의 부호는 상기 계수들의 세트 내의 계수들의 값에 기초하여 결정가능함 - 를 포함하는 방법을 수행하도록 하는 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는
컴퓨터 판독 가능 매체.
- 인코딩된 이미지를 표현하는 비트스트림을 디코딩하는 장치로서,
상기 장치는 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리 및 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께, 상기 장치로 하여금,
인코딩된 계수들의 세트를 수신하는 단계와,
무손실 코딩 모드가 적용되는지에 대한 표시를 수신하는 단계와,
무손실 코딩 모드가 적용됨을 상기 표시가 표시하면, 비트스트림으로부터 상기 인코딩된 계수들의 세트의 모든 계수들의 부호를 수신하는 단계와,
무손실 코드 모드가 적용되지 않음을 상기 표시가 표시하면, 상기 비트스트림이 적어도 하나의 계수의 임베딩된 부호의 표시를 포함하는지를 결정하는 단계와,
상기 결정하는 단계에서 상기 비트스트림이 상기 적어도 하나의 계수의 임베딩된 부호의 표시를 포함함을 나타내면, 상기 수신된 인코딩된 계수들의 세트 내의 다른 계수들에 기초하여 상기 적어도 하나의 계수의 부호를 결정하는 단계와,
상기 결정된 부호에 기초하여 상기 적어도 하나의 계수의 부호를 수정하는 단계를 포함하는 방법을 수행하도록 구성되는
장치.
- 제 12 항에 있어서,
상기 컴퓨터 프로그램 코드는,
상기 수신된 인코딩된 계수들의 세트 내의 넌제로 계수들의 수를 분석하고,
상기 계수들의 세트 내의 넌제로 계수들의 수에 기초하여 상기 적어도 하나의 계수의 부호를 추론하도록 더 구성되는
장치.
- 제 12 항 또는 제 13 항에 있어서,
상기 컴퓨터 프로그램 코드는,
상기 수신된 인코딩된 계수들의 세트 내의 계수 값들의 합을 결정하고,
상기 합의 패리티에 기초하여 상기 적어도 하나의 계수의 부호를 추론하도록 더 구성되는
장치.
- 제 12 항 또는 제 13 항에 있어서,
상기 컴퓨터 프로그램 코드는,
상기 수신된 인코딩된 계수들의 세트 내의 제 1 넌제로 계수의 적어도 하나의 계수 기반 부호의 부호를 스캐닝 순서로 추론하도록 더 구성되는
장치.
- 인코딩된 이미지를 표현하는 비트스트림을 디코딩하기 위한 컴퓨터 프로그램을 포함하는 컴퓨터 판독 가능 매체로서, 상기 컴퓨터 프로그램은 하나 이상의 프로세서들에 의해 실행될 때, 장치로 하여금,
인코딩된 계수들의 세트를 수신하는 단계와,
무손실 코딩 모드가 적용되는지에 대한 표시를 수신하는 단계와,
무손실 코딩 모드가 적용됨을 상기 표시가 표시하면, 비트스트림으로부터 상기 인코딩된 계수들의 세트의 모든 계수들의 부호를 수신하는 단계와,
무손실 코드 모드가 적용되지 않음을 상기 표시가 표시하면, 상기 비트스트림이 적어도 하나의 계수의 임베딩된 부호의 표시를 포함하는지를 결정하는 단계와,
상기 결정하는 단계에서 상기 비트스트림이 상기 적어도 하나의 계수의 임베딩된 부호의 표시를 포함함을 나타내면, 상기 수신된 인코딩된 계수들의 세트 내의 다른 계수들에 기초하여 상기 적어도 하나의 계수의 부호를 결정하는 단계와,
상기 결정된 부호에 기초하여 상기 적어도 하나의 계수의 부호를 수정하는 단계를 포함하는 방법을 수행하도록 하는 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는
컴퓨터 판독 가능 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261595648P | 2012-02-06 | 2012-02-06 | |
US61/595,648 | 2012-02-06 | ||
PCT/FI2013/050124 WO2013117811A1 (en) | 2012-02-06 | 2013-02-05 | Method for coding and an apparatus |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147025003A Division KR20140131352A (ko) | 2012-02-06 | 2013-02-05 | 코딩을 위한 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20160118365A true KR20160118365A (ko) | 2016-10-11 |
Family
ID=48902870
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167025705A KR20160118365A (ko) | 2012-02-06 | 2013-02-05 | 코딩을 위한 방법 및 장치 |
KR1020147025003A KR20140131352A (ko) | 2012-02-06 | 2013-02-05 | 코딩을 위한 방법 및 장치 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147025003A KR20140131352A (ko) | 2012-02-06 | 2013-02-05 | 코딩을 위한 방법 및 장치 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9210423B2 (ko) |
EP (1) | EP2813078A4 (ko) |
KR (2) | KR20160118365A (ko) |
CN (1) | CN104170385B (ko) |
WO (1) | WO2013117811A1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020264529A1 (en) * | 2019-06-28 | 2020-12-30 | Beijing Dajia Internet Information Technology Co., Ltd. | Lossless coding modes for video coding |
WO2021049732A1 (en) * | 2019-09-11 | 2021-03-18 | Samsung Electronics Co., Ltd. | Electronic apparatus and controlling method thereof |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105812803B (zh) * | 2014-12-31 | 2018-09-28 | 浙江大华技术股份有限公司 | 一种针对变换单元tu的残差舍弃方法及装置 |
CN116112120A (zh) * | 2021-11-11 | 2023-05-12 | 华为技术有限公司 | 传输数据的方法和通信装置 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6647061B1 (en) * | 2000-06-09 | 2003-11-11 | General Instrument Corporation | Video size conversion and transcoding from MPEG-2 to MPEG-4 |
US6721362B2 (en) * | 2001-03-30 | 2004-04-13 | Redrock Semiconductor, Ltd. | Constrained discrete-cosine-transform coefficients for better error detection in a corrupted MPEG-4 bitstreams |
US20040057521A1 (en) * | 2002-07-17 | 2004-03-25 | Macchina Pty Ltd. | Method and apparatus for transcoding between hybrid video CODEC bitstreams |
US7724827B2 (en) * | 2003-09-07 | 2010-05-25 | Microsoft Corporation | Multi-layer run level encoding and decoding |
US20060153294A1 (en) * | 2005-01-12 | 2006-07-13 | Nokia Corporation | Inter-layer coefficient coding for scalable video coding |
KR100746007B1 (ko) * | 2005-04-19 | 2007-08-06 | 삼성전자주식회사 | 엔트로피 코딩의 컨텍스트 모델을 적응적으로 선택하는방법 및 비디오 디코더 |
US8599925B2 (en) | 2005-08-12 | 2013-12-03 | Microsoft Corporation | Efficient coding and decoding of transform blocks |
KR100723505B1 (ko) * | 2005-10-06 | 2007-05-30 | 삼성전자주식회사 | 하이브리드 방식의 영상 데이터 처리 시스템 및 영상데이터 처리 방법 |
DE102006049232B4 (de) * | 2006-10-18 | 2010-02-04 | Ods Technology Gmbh | Verfahren und Vorrichtung zur Vermeidung von Fehlern beim Runden von Werten nach Durchführung einer inversen diskreten Kosinus-Transformation |
EP2222086A1 (de) * | 2009-02-18 | 2010-08-25 | EcoDisc Technology AG | Verfahren und Vorrichtung zur Vermeidung von Rundungsfehlern nach Durchführung einer inversen diskreten orthogonalen Transformation |
CN102823141B (zh) * | 2010-03-30 | 2015-09-16 | 国际商业机器公司 | 用于固态存储器件的两级bch码 |
US8891617B2 (en) * | 2011-01-18 | 2014-11-18 | Google Inc. | Method and system for processing video data |
US8953690B2 (en) * | 2011-02-16 | 2015-02-10 | Google Technology Holdings LLC | Method and system for processing video data |
US20120230396A1 (en) * | 2011-03-11 | 2012-09-13 | Mitsubishi Electric Research Laboratories, Inc. | Method for Embedding Decoding Information in Quantized Transform Coefficients |
BR112014011149A2 (pt) * | 2011-11-08 | 2017-05-16 | Motorola Mobility Llc | dispositivos e métodos para codificação e / ou de sinalização de deslocamento adaptativo de amostra |
US9716882B2 (en) * | 2012-01-05 | 2017-07-25 | Google Technology Holdings LLC | Devices and methods for sample adaptive offset coding and/or selection of edge offset parameters |
US9955153B2 (en) * | 2012-01-05 | 2018-04-24 | Google Technology Holdings LLC | Devices and methods for sample adaptive offset coding |
CN104956674B (zh) * | 2012-01-20 | 2019-02-15 | 谷歌技术控股有限责任公司 | 用于最末重要系数位置编解码中的上下文减少的设备和方法 |
US20130188741A1 (en) * | 2012-01-21 | 2013-07-25 | General Instrument Corporation | Devices and methods for sample adaptive offset coding and/or selection of band offset parameters |
US9565435B2 (en) * | 2012-02-04 | 2017-02-07 | Google Technology Holdings LLC | Devices and methods for context reduction in last significant coefficient position coding |
-
2013
- 2013-02-05 EP EP13747011.8A patent/EP2813078A4/en not_active Withdrawn
- 2013-02-05 WO PCT/FI2013/050124 patent/WO2013117811A1/en active Application Filing
- 2013-02-05 CN CN201380014882.0A patent/CN104170385B/zh active Active
- 2013-02-05 KR KR1020167025705A patent/KR20160118365A/ko not_active Application Discontinuation
- 2013-02-05 KR KR1020147025003A patent/KR20140131352A/ko not_active Application Discontinuation
- 2013-02-06 US US13/760,694 patent/US9210423B2/en active Active
-
2015
- 2015-10-27 US US14/924,383 patent/US10349052B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020264529A1 (en) * | 2019-06-28 | 2020-12-30 | Beijing Dajia Internet Information Technology Co., Ltd. | Lossless coding modes for video coding |
WO2021049732A1 (en) * | 2019-09-11 | 2021-03-18 | Samsung Electronics Co., Ltd. | Electronic apparatus and controlling method thereof |
US11483585B2 (en) | 2019-09-11 | 2022-10-25 | Samsung Electronics Co., Ltd. | Electronic apparatus and controlling method thereof |
Also Published As
Publication number | Publication date |
---|---|
WO2013117811A1 (en) | 2013-08-15 |
US9210423B2 (en) | 2015-12-08 |
US10349052B2 (en) | 2019-07-09 |
KR20140131352A (ko) | 2014-11-12 |
US20130202052A1 (en) | 2013-08-08 |
EP2813078A4 (en) | 2015-09-30 |
US20160050413A1 (en) | 2016-02-18 |
CN104170385B (zh) | 2019-02-19 |
CN104170385A (zh) | 2014-11-26 |
EP2813078A1 (en) | 2014-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10536714B2 (en) | Method for coding and an apparatus | |
US20210409756A1 (en) | Method for video coding and an apparatus | |
RU2668723C2 (ru) | Способ и оборудование для кодирования и декодирования видеосигналов | |
KR20170002611A (ko) | 팔레트 코딩을 사용하는 비디오 인코딩 및 디코딩을 위한 방법 및 기술 장비 | |
US9280835B2 (en) | Method for coding and an apparatus based on a DC prediction value | |
US20120243606A1 (en) | Methods, apparatuses and computer programs for video coding | |
US10349052B2 (en) | Method for coding and an apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |