KR102281154B1 - 비디오 데이터의 통합된 공간 다운샘플링 - Google Patents

비디오 데이터의 통합된 공간 다운샘플링 Download PDF

Info

Publication number
KR102281154B1
KR102281154B1 KR1020157027696A KR20157027696A KR102281154B1 KR 102281154 B1 KR102281154 B1 KR 102281154B1 KR 1020157027696 A KR1020157027696 A KR 1020157027696A KR 20157027696 A KR20157027696 A KR 20157027696A KR 102281154 B1 KR102281154 B1 KR 102281154B1
Authority
KR
South Korea
Prior art keywords
video data
input video
version
video
downscaling
Prior art date
Application number
KR1020157027696A
Other languages
English (en)
Other versions
KR20150127166A (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 KR20150127166A publication Critical patent/KR20150127166A/ko
Application granted granted Critical
Publication of KR102281154B1 publication Critical patent/KR102281154B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0117Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving conversion of the spatial resolution of the incoming video signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Graphics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

구현예들은 비디오 코어에서의 통합된 비디오 다운스케일을 위한 비디오 이미지 프로세싱 시스템들, 방법들, 및 장치를 포함한다. 다운스케일러는 외부 메모리에 디스플레이 프레임을 컴퓨팅하여 기록한다. 이러한 프레임은 타겟 디스플레이 디바이스 (예를 들어, 모바일 디바이스) 와 동일한 해상도를 가질 수도 있다. 타겟 디스플레이 디바이스는 그러면 원래의 보다 높은 해상도 프레임 대신에 이러한 디스플레이 프레임을 판독한다. 인코딩/디코딩 중에 다운스케일링을 가능하게 함으로써, 디바이스는 메모리 대역폭, 메모리 액세스, 버스 대역폭, 및 비디오 데이터의 프레임을 별도로 다운스케이링하는 것과 연관된 전력 소비와 같은 자원들을 절약할 수 있다.

Description

비디오 데이터의 통합된 공간 다운샘플링{INTEGRATED SPATIAL DOWNSAMPLING OF VIDEO DATA}
본 구현예들은 이미지 프로세싱에 관한 것으로, 특히 비디오 코어에서의 통합된 비디오 다운스케일에 대한 비디오 이미지 프로세싱 시스템들, 방법들, 및 장치들에 관한 것이다.
모바일 무선 통신 디바이스들, 개인용 휴대정보 단말기 (personal digital assistants; PDA) 들, 랩탑 컴퓨터들, 데스크탑 컴퓨터들, 디지털 카메라들, 디지털 레코딩 디바이스들 등을 포함하여 광범위한 전자 디바이스들은 여러 가지의 이미지 및 비디오 디스플레이 능력들을 갖는다. 일부 디바이스들은 2-차원 (2D) 이미지들 및 비디오, 3-차원 (3D) 이미지들 및 비디오, 또는 양자 모두를 디스플레이할 수 있다.
비디오 데이터는 다양한 포맷들로 제공될 수도 있다. 포맷들은 제공되는 비디오 데이터의 해상도가 달라질 수도 있다. 예를 들어, 일부 포맷들은 고 선명 비디오 데이터 (예를 들어, 1920 바이 1080) 를 제공할 수도 있는데 반해 다른 포맷들은 저 해상도 비디오 데이터 (예를 들어, 864 바이 480) 를 제공할 수도 있다.
디스플레이 디바이스는 제한된 해상도로 비디오 데이터를 나타내도록 구성될 수도 있다. 예를 들어, 모바일 디바이스는 864 바이 480 의 해상도로 비디오 데이터를 디스플레이하도록 구성될 수도 있다. 디스플레이 디바이스는 이용가능한 디스플레이의 사이즈, 및/또는 프로세서 자원들, 전력 자원들, 대역폭 자원들 등과 같이 디스플레이 디바이스가 이용가능한 자원들에 기초한 해상도에 대해 구성될 수도 있다. 각각의 디스플레이 디바이스의 특정 구성에도 불구하고, 디스플레이 디바이스는 디바이스가 디스플레이하도록 구성될 수도 있는 것보다 높은 해상도로 비디오 데이터를 수신할 수도 있다. 보다 높은 해상도의 비디오 데이터를 보다 낮은 해상도로 변환시키는 프로세스는 일반적으로 다운스케일링이라고 지칭될 수도 있다.
다운스케일링은 인코딩 디바이스 또는 디코딩 디바이스 상에서 수행될 수도 있다. 인코딩 디바이스에서 구현되는 경우, 디바이스는 소스 비디오 데이터를 수신하고 디스플레이 디바이스로의 송신을 위해 비디오 데이터의 다운스케일링된 버전을 인코딩한다. 디코딩 디바이스에서 구현되는 경우, 디바이스는 참조 비디오 데이터를 수신하며, 참조 비디오 데이터를 디코딩하고, 참조 비디오 데이터의 보다 낮은 해상도 버전을 발생시킬 수도 있다. 일부 구현예들에서, 디코딩 디바이스는 디스플레이 디바이스에 포함된다. 일부 구현예들에서, 디코딩 디바이스는 디스플레이 디바이스와 커플링될 수도 있다.
다운스케일링의 프로세스가 또한 디바이스 자원들을 사용하기 때문에, 다운스케일링을 수행하기 위한 효율적인 시스템들 및 방법들이 바람직할 수도 있다.
첨부된 청구항들의 범위 내의 시스템들, 방법들, 및 디바이스들의 다양한 실시형태들은 여러 양상들을 각각 가지며, 이중 어느 하나도 단독으로 본원에서 설명되는 바람직한 속성들을 책임지지 않는다. 첨부된 청구항들의 범위를 제한하지 않으면서, 일부 두드러진 피쳐들이 본원에서 설명된다. 본 논의를 고려한 후에, 그리고 특히 "상세한 설명" 이라고 제목이 붙은 섹션을 읽은 후에, 다양한 구현예들의 피쳐들이 비디오 코어에서의 통합된 다운스케일링을 제공하기 위해 이용되는 방법을 이해할 것이다.
일 혁신적인 양상에서는, 비디오 데이터를 프로세싱하기 위한 전자 디바이스가 제공된다. 디바이스는 입력 비디오 데이터를 수신하도록 구성된 수신기를 포함한다. 디바이스는 출력 비디오 데이터를 발생시키도록 구성된 비디오 코더를 포함한다. 비디오 코더는 비디오 인코더 및 비디오 디코더를 포함한다. 비디오 코더는 인코더 및 디코더와 커플링된 다운스케일러를 더 포함하며, 다운스케일러는 인코딩 또는 디코딩 중에 입력 비디오 데이터의 다운스케일링된 버전을 발생시키도록 구성되며, 여기서 출력 비디오 데이터는 입력 비디오 데이터의 다운스케일링된 버전을 포함한다.
다른 혁신적인 양상에서는, 비디오 데이터를 프로세싱하는 방법이 제공된다. 방법은 입력 비디오 데이터를 수신하는 단계를 포함한다. 방법은 또한 출력 비디오 데이터를 발생시키는 단계를 포함하며, 여기서 출력 비디오 데이터를 발생시키는 것은 입력 비디오 데이터를 선택적으로 인코딩하고 디코딩하는 것을 포함하며, 여기서 입력 비디오 데이터의 다운스케일링된 버전은 인코딩 또는 디코딩 중에 발생되며, 여기서 출력 비디오 데이터는 입력 비디오 데이터의 다운스케일링된 버전을 포함한다.
또 다른 혁신적인 양상에서는, 비디오 데이터를 프로세싱하기 위한 추가적인 전자 디바이스가 제공된다. 전자 디바이스는 입력 비디오 데이터를 수신하는 수단을 포함한다. 전자 디바이스는 또한 출력 비디오 데이터를 발생시키는 수단을 포함하며, 여기서 출력 비디오 데이터를 발생시키는 것은 입력 비디오 데이터를 선택적으로 인코딩하고 디코딩하는 것을 포함하며, 여기서 입력 비디오 데이터의 다운스케일링된 버전은 인코딩 또는 디코딩 중에 발생되며, 여기서 출력 비디오 데이터는 입력 비디오 데이터의 다운스케일링된 버전을 포함한다.
장치의 프로세서에 의해 실행가능한 명령들을 포함하는 컴퓨터 판독가능 저장 매체가 추가적인 혁신적인 양상에서 제공된다. 명령들은 장치로 하여금 입력 비디오 데이터를 수신하게 한다. 명령들은 또한 장치로 하여금 출력 비디오 데이터를 발생시키게 하며, 여기서 출력 비디오 데이터를 발생시키는 것은 입력 비디오 데이터를 선택적으로 인코딩하고 디코딩하는 것을 포함하며, 여기서 입력 비디오 데이터의 다운스케일링된 버전은 인코딩 또는 디코딩 중에 발생되며, 여기서 출력 비디오 데이터는 입력 비디오 데이터의 다운스케일링된 버전을 포함한다.
본 개시물의 위에서 언급된 피쳐들이 상세히, 좀더 특정적 설명으로, 위에서 간단히 요약되어 이해될 수 있는 방식이 양상들로 참조될 수도 있으므로, 이들 중 일부는 첨부된 도면들에서 도시된다. 그러나, 첨부된 도면들은 단지 본 개시물의 소정의 통상적 양상들을 도시하고, 따라서 이 개시물의 범위를 제한하는 것으로 고려되어서는 안되며, 설명에 있어서는 다른 동등하게 효과적인 양상들을 인정할 수도 있음이 유의되어야 한다.
도 1 은 일 예시적인 비디오 인코딩 및 디코딩 시스템의 기능적 블록도를 도시한다.
도 2 는 통합된 다운스케일러를 포함하는 일 예시적인 비디오 코어의 기능적 블록도를 도시한다.
도 3 은 일 예시적인 다운스케일러의 기능적 블록도를 도시한다.
도 4 는 일 예시적인 비디오 인코더의 기능적 블록도를 도시한다.
도 5 는 일 예시적인 비디오 인코더의 기능적 블록도를 도시한다.
도 6 은 인터레이싱된 비디오 데이터의 통합된 다운스케일로 디코딩하는 일 예시적인 방법에 대한 프로세스 흐름도를 도시한다.
도 7 은 인터레이싱된 비디오 데이터의 통합된 다운스케일로 디코딩하는 일 예시적인 방법에 대한 다른 프로세스 흐름도를 도시한다.
도 8 은 비디오 데이터를 프로세싱하는 일 예시적인 방법에 대한 플로차트를 도시한다.
도 9 는 비디오 데이터를 프로세싱하기 위한 일 예시적인 전자 디바이스의 기능적 블록도를 도시한다.
통례에 따르면, 도면들에서 도시된 다양한 피쳐들은 크기를 지는 않을 수도 있다. 이에 따라, 다양한 피쳐들의 차원들은 임의로 확장될 수도 있거나 명확함을 위해 축소될 수도 있다. 또한, 도면들 중 일부 도면은 주어진 시스템, 방법, 또는 디바이스의 컴포넌트들의 모두를 도시하지 않을 수도 있다. 마지막으로, 유사한 참조 부호들은 명세서 및 도면들에 걸쳐 유사한 피쳐들을 지칭하는데 이용될 수도 있다.
비디오 하드웨어 코덱 내에 통합된 다운스케일러 및 관련된 방법들이 설명된다. 다운스케일러는 외부 메모리에 디스플레이 프레임을 컴퓨팅하여 기록한다. 이러한 프레임은 타겟 디스플레이 디바이스 (예를 들어, 모바일 디바이스, 셀폰) 와 동일한 해상도를 가질 수도 있다. 타겟 디스플레이 디바이스는 그러면 원래의 보다 높은 해상도 프레임 대신에 이러한 디스플레이 프레임을 판독한다. 인코딩/디코딩 중에 다운스케일링을 가능하게 함으로써, 디바이스는 메모리 대역폭, 메모리 액세스, 버스 대역폭, 및 비디오 데이터의 프레임을 별도로 다운스케이링하는 것과 연관된 전력 소비와 같은 자원들을 절약할 수 있다.
설명된 프로세스들은 블록 기반 인코딩 및 디코딩 프로세스들에서의 통합된 다운스케일러를 포함한다. 비디오가 인코딩되거나 디코딩됨에 따라 발생된 정보에 기초하여, 비디오 데이터의 다운스케일링된 버전이 발생될 수도 있다. 디코더로서 구현되는 경우, 다운스케일링된 버전이 디스플레이될 수도 있다. 인코더로서 구현되는 경우, 다운스케일링된 버전이 타겟 디스플레이 디바이스에 송신될 수도 있다.
설명된 피쳐들의 비-제한적인 이점은 비디오 코어 내의 다운스케일링의 통합을 포함한다. 비디오 코어에 의한 이미지의 프로세싱 중에, 이미지를 다운스케일링하는데 이용될 수도 있는 정보가 발생될 수도 있다. 일부 시스템들에서, 이미지는 비디오 코어에 의해 프로세싱되고, 저장되고, 추후에 다운스케일링된다. 이러한 프로세스는 이미지가 두 번 조작되기 때문에 전력 및 프로세싱 자원들과 같은 증가된 자원 소비를 포함할 수도 있다. 또한, 저장된 고 선명 버전은 타겟 디바이스에 의해 필요로 하지 않을 수도 있다. 이에 따라, 메모리 자원들은 또한 그러한 구현예에서 소모될 수도 있다.
다운스케일링을 비디오 코어와 통합시키는 경우, 이미지 데이터는 디코딩 프로세스 중에 다운스케일링될 수도 있다. 자원들에서의 절감들을 제공하는 것에 더해, 통합된 접근법은 또한 다운스케일링된 이미지를 발생시키기 위한 시간을 감소시킬 수도 있다. 이러한 그리고 추가적인 혜택들은 통합된 다운스케일링에 관련된 양상들의 추가적인 설명을 통해 그 자체가 분명해질 것이다.
다음의 설명에서, 예들의 완전한 이해를 제공하기 위해 특정 세부사항들이 주어진다. 그러나, 예들은 이러한 특정 세부사항들이 없이 실시될 수도 있음이 당업자에 의해 이해될 것이다. 예를 들어, 불필요한 세부사항으로 예들을 모호하게 하지 않기 위해 전기 컴포넌트들/디바이스들은 블록 다이어그램들로 보여질 수도 있다. 다른 사례들에서, 그러한 컴포넌트들, 다른 구조들, 및 기법들이 상세히 보여져 예들을 추가적으로 설명할 수도 있다.
예들은 프로세스로서 설명될 수도 있으며, 프로세스는 플로차트, 플로 다이어그램, 유한 상태 다이어그램, 구조 다이어그램, 또는 블록 다이어그램으로 도시됨에 또한 유의한다. 플로차트가 동작들을 순차적인 프로세스로 설명할지라도, 동작들 중 많은 동작들은 병렬로, 또는 동시에 수행될 수 있고, 프로세스는 반복될 수 있다. 또한, 동작들의 순서는 재배열될 수도 있다. 프로세스는 프로세스의 동작들이 완료되는 경우 종료된다. 프로세스는 방법, 기능, 절차, 서브루틴, 서브프로그램 등에 대응할 수도 있다. 프로세스가 소프트웨어 기능에 대응하는 경우, 프로세스의 종료는 호 기능 또는 메인 기능으로의 기능의 복귀에 대응한다.
당업자라면, 정보 및 신호들이 임의의 다양한 상이한 기술들 및 기법들을 사용하여 표현될 수도 있음을 이해할 것이다. 예를 들어, 위의 설명을 통해 참조될 수도 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들, 및 칩들은 전압들, 전류들, 전자기파들, 자기 장들 또는 자기 입자들, 광학 장들 또는 광학 입자들, 또는 이들의 임의의 조합에 의해 표현될 수도 있다.
첨부된 청구항들의 범위 내의 실시형태들의 다양한 양상들이 하기에서 설명된다. 본원에 설명된 양상들은 매우 다양한 형태들로 구체화될 수도 있고 본원에 설명된 임의의 특정 구조 및/또는 기능은 단지 예시일 뿐일 것임이 명백할 것이다. 본 개시물에 기초하여, 본원에 설명된 일 양상은 임의의 다른 양상들과 관계 없이 구현될 수도 있고 이러한 양상들 중 2 개 이상의 양상들은 다양한 방식들로 결합될 수도 있음을 당업자들은 이해할 것이다. 예를 들어, 본원에 제시된 임의의 수의 양상들을 이용하여 장치가 구현될 수도 있고/있거나 방법이 실시될 수도 있다. 또한, 본원에서 제시된 양상들 중 하나 이상의 양상들에 더해 또는 그 외에 다른 구조 및/또는 기능성을 이용하여 그러한 장치가 구현될 수도 있고/있거나 그러한 방법이 실시될 수도 있다.
도 1 은 일 예시적인 비디오 인코딩 및 디코딩 시스템의 기능적 블록도를 도시한다. 도 1 에 도시된 바와 같이, 시스템 (10) 은 통신 채널 (15) 을 통해 목적지 디바이스 (16) 에 인코딩된 비디오를 송신하는 소스 디바이스 (12) 를 포함한다. 소스 디바이스 (12) 및 목적지 디바이스 (16) 는, 모바일 디바이스들 또는 일반적으로 고정된 디바이스들을 포함하여, 광범위한 디바이스들 중 임의의 디바이스를 포함할 수도 있다. 일부 경우들에서, 소스 디바이스 (12) 및 목적지 디바이스 (16) 는 무선 통신 디바이스들, 예컨대, 무선 핸드셋들, 이른바 셀룰러 혹은 위성 무선전화기들, 개인용 휴대정보 단말기 (PDA) 들, 모바일 미디어 재생기들, 또는 무선일 수도 있거나 무선이 아닐 수도 있는, 통신 채널 (15) 을 통해 비디오 정보를 통신할 수 있는 임의의 디바이스들을 포함한다. 그러나, 비디오 코어에서의 다운스케일링의 통합에 관련되는 본 개시물의 기법들은 많은 상이한 시스템들 및 설정들에서 이용될 수도 있다. 도 1 은 단지 그러한 시스템의 일 예일 뿐이다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (20), 비디오 인코더 (22), 변조기/복조기 (모뎀) (23), 및 송신기 (24) 를 포함할 수도 있다. 목적지 디바이스 (16) 는 수신기 (26), 모뎀 (27), 비디오 디코더 (28), 및 디스플레이 디바이스 (30) 를 포함할 수도 있다. 본 개시물에 따르면, 소스 디바이스 (12) 의 비디오 인코더 (22) 는 참조 이미지의 프레임들의 시퀀스를 인코딩하도록 구성될 수도 있다. 비디오 인코더 (22) 는 참조 이미지의 다운스케일링된 버전을 발생시키도록 구성될 수도 있다. 모뎀 (23) 및 송신기 (24) 는 무선 신호들을 변조하여 목적지 디바이스 (16) 에 송신할 수도 있다. 이러한 방식으로, 소스 디바이스 (12) 는 3D 변환 정보와 함께 인코딩된 참조 시퀀스를 목적지 디바이스 (16) 에 통신한다.
수신기 (26) 및 모뎀 (27) 은 소스 디바이스 (12) 로부터 수신된 무선 신호들을 수신하여 복조한다. 이에 따라, 비디오 디코더 (28) 는 참조 이미지의 프레임들의 시퀀스를 수신할 수도 있다. 이에 더해 또는 대안으로, 비디오 디코더 (28) 는 참조 이미지의 다운스케일링된 프레임들을 수신할 수도 있다. 비디오 디코더 (28) 는 또한 다운스케일링을 위해 구성될 수도 있다. 비디오 디코더 (28) 는 참조 이미지의 프레임들의 시퀀스에 기초하여 참조 이미지의 다운스케일링된 버전을 발생시킬 수도 있다. 비디오 디코더 (28) 는 비디오에 대한 타겟 디스플레이에 기초하여 다운스케일링된 프레임을 발생시킬 수도 있다.
언급된 바와 같이, 도 1 의 도시된 시스템 (10) 은 단지 예일 뿐이다. 본 개시물의 기법들은 일 차 (first order) 블록 기반 비디오 코딩을 지원하는 임의의 코딩 디바이스 또는 기법으로 확장될 수도 있다.
소스 디바이스 (12) 및 목적지 디바이스 (16) 는 소스 디바이스 (12) 가 목적지 디바이스 (16) 로의 송신을 위해 코딩된 비디오 데이터를 발생시키는 그러한 코딩 디바이스들의 예들일 뿐이다. 일부 경우들에서, 디바이스들 (12, 16) 은 디바이스들 (12, 16) 의 각각이 비디오 인코딩 컴포넌트 및 비디오 디코딩 컴포넌트를 포함하는 실질적으로 대칭적인 방식으로 동작할 수도 있다. 따라서, 시스템 (10) 은, 예를 들어, 비디오 스트리밍, 비디오 재생, 비디오 브로드캐스팅, 또는 비디오 전화 통신을 위해, 비디오 디바이스들 (12, 16) 사이의 단방향 또는 양방향 비디오 송신을 지원할 수도 있다.
소스 디바이스 (12) 의 비디오 소스 (20) 는 비디오 카메라와 같은 비디오 캡쳐 디바이스, 이전에 캡쳐된 비디오를 포함하는 비디오 아카이브 (archive), 또는 비디오 컨텐츠 제공자로부터의 비디오 피드를 포함할 수도 있다. 다른 대안으로, 비디오 소스 (20) 는 소스 비디오로 컴퓨터 그래픽 기반 데이터, 또는 라이브 비디오, 보관된 비디오, 및 컴퓨터로 발생된 비디오의 조합을 발생시킬 수도 있다. 일부 경우들에서, 비디오 소스 (20) 가 비디오 카메라인 경우, 소스 디바이스 (12) 및 목적지 디바이스 (16) 는 이른바 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 각각의 경우에, 캡쳐, 사전 캡쳐, 또는 컴퓨터 발생된 비디오는 비디오 인코더 (22) 에 의해 인코딩될 수도 있다. 인코딩된 비디오 정보는 그 다음에 예를 들어, 코드 분할 다중 접속 (code division multiple access; CDMA) 과 같은 통신 표준 또는 다른 통신 표준에 따라 모뎀 (23) 에 의해 변조되어, 송신기 (24) 를 통해 목적지 디바이스 (16) 에 송신될 수도 있다. 모뎀 (23) 은 다양한 믹서들, 필터들, 증폭기들, 또는 신호 변조를 위해 설계된 다른 컴포넌트들을 포함할 수도 있다. 송신기 (24) 는, 증폭기들, 필터들, 및 하나 이상의 안테나들을 포함하여, 데이터를 송신하기 위해 설계된 회로들을 포함할 수도 있다.
목적지 디바이스 (16) 의 수신기 (26) 는 채널 (15) 을 통해 정보를 수신하고, 모뎀 (27) 은 정보를 복조한다. 다시, 비디오 인코딩 프로세스는 비디오의 다운스케일링된 버전을 발생시키기 위해 본원에서 설명된 기법들 중 하나 이상의 기법을 구현할 수도 있다. 채널 (15) 을 통해 통신된 정보는 비디오 인코더 (22) 에 의해 정의되는 정보를 포함할 수도 있으며, 정보는 본 개시물과 일관되는 비디오 디코더 (28) 에 의해 이용될 수도 있다. 디스플레이 디바이스 (30) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 음극선관, 액정 디스플레이 (liquid crystal display; LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (organic light emitting diode; OLED) 디스플레이, 또는 임의의 유형의 디스플레이 디바이스들과 같은 다양한 디스플레이 디바이스들 중 임의의 것을 포함할 수도 있다.
도 1 의 실시예에서, 통신 채널 (15) 은 무선 주파수 (radio frequency; RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들과 같은 임의의 무선 또는 유선 통신 매체, 또는 무선 및 유선 매체들의 임의의 조합을 포함할 수도 있다. 이에 따라, 모뎀 (23) 및 송신기 (24) 는 많은 가능한 무선 프로토콜들, 유선 프로토콜들, 또는 유선 및 무선 프로토콜들을 지원할 수도 있다. 통신 채널 (15) 은, 하나 이상의 네트워크들의 상호접속을 포함하는 인터넷과 같은 패킷 기반 네트워크, 예컨대, 근거리 네트워크 (local area network; LAN), 광역 네트워크 (wide-area network; WAN), 또는 글로벌 네트워크의 일부분을 형성할 수도 있다. 통신 채널 (15) 은 일반적으로, 소스 디바이스 (12) 에서 목적지 디바이스 (16) 로 비디오 데이터를 송신하기 위한, 임의의 적절한 통신 매체, 또는 상이한 통신 매체들의 집합체 (collection) 를 표현한다. 통신 채널 (15) 은 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (16) 로 통신을 가능하게 하기에 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다. 본 개시물의 기법들은 반드시 하나의 디바이스로부터 다른 디바이스로의 인코딩된 데이터의 통신을 요구하지 않고, 상응하는 디코딩이 없는 인코딩 시나리오들에 적용될 수도 있다. 또한, 본 개시물의 양상들은 상응하는 인코딩이 없는 디코딩 시나리오들에 적용될 수도 있다.
비디오 인코더 (22) 및 비디오 디코더 (28) 는 비디오 압축 표준, 예컨대, ITU-T H.264 표준 (다르게는 MPEG-4, 파트 10, 및 고급 비디오 코딩 (Advanced Video Coding; AVC) 으로 설명된다) 과 일관되게 동작할 수도 있다. 그러나, 본 개시물의 기법들은 임의의 특정 코딩 표준 또는 확장안들에 제한되지 않는다. 비록 도 1 에 도시되지는 않았으나, 일부 양상들에서, 비디오 인코더 (22) 및 비디오 디코더 (28) 는 오디오 인코더 및 오디오 디코더와 각각 통합될 수도 있고, 공통의 데이터 스트림 또는 별도의 데이터 스트림들에서의 오디오 및 비디오 양자 모두의 인코딩을 처리하기 위한, 적당한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함할 수도 있다. 적용가능한 경우, MUX-DEMUX 유닛들은 다중화기 프로토콜 (예를 들어, ITU H.223) 또는 사용자 데이터그램 프로토콜 (user datagram protocol; UDP) 과 같은 다른 프로토콜들을 따를 수도 있다.
비디오 인코더 (22) 및 비디오 디코더 (28) 각각은 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서 (digital signal processor; DSP) 들, 주문형 반도체 (application specific integrated circuit; ASIC) 들, 필드 프로그램가능 게이트 어레이 (field programmable gate array; FPGA), 이산 로직 회로, 마이크로프로세서 또는 다른 플랫폼 상에서 실행되는 소프트웨어, 하드웨어, 펌웨어, 또는 이들의 임의의 조합들로 구현될 수도 있다. 비디오 인코더 (22) 및 비디오 디코더 (28) 의 각각은 하나 이상의 인코더들 또는 디코더들에 포함할 수도 있으며, 이들 중 일방은 각각의 모바일 디바이스, 가입자 디바이스, 브로드캐스트 디바이스, 서버 등에 결합된 인코더/디코더 (코덱) 의 일부분으로서 통합될 수도 있다.
비디오 시퀀스는 일련의 비디오 프레임들을 통상 포함한다. 비디오 인코더 (22) 및 미디오 디코더 (28) 는 비디오 데이터를 인코딩하고 디코딩하기 위해 개개의 비디오 프레임들 내의 비디오 블록들에 대해 동작할 수도 있다. 비디오 블록들은 고정된 또는 가변적인 사이즈들을 가질 수도 있고, 특정 코딩 표준에 따라 사이즈가 상이할 수도 있다. 각각의 비디오 프레임은 일련의 슬라이스들 또는 다른 독립적으로 디코딩가능한 유닛들을 포함할 수도 있다. 각각의 슬라이스는 서브 블록들로 배열될 수도 있는 일련의 매크로블록들을 포함할 수도 있다. 예로서, ITU-T H.264 표준은 루마 컴포넌트들에 대해 16 바이 16, 8 바이 8, 또는 4 바이 4 와 같은 다양한 블록 사이즈들로 인트라 예측을, 그리고 크로마 컴포넌트들에 대해 8 바이 8 을, 또한 루마 컴포넌트들과 크로마 컴포넌트들에 대해 대응하는 스케일링된 사이즈들에 대해 16 바이 16, 16 바이 8, 8 바이 16, 8 바이 8, 8 바이 4, 4 바이 8, 및 4 바이 4 와 같은 다양한 블록 사이즈들로 인터 예측을 지원한다. 비디오 블록들은, 예를 들어, 이산 코사인 변환과 같은 변환 프로세스 또는 개념적으로 유사한 변환 프로세스 다음에, 픽셀 데이터의 블록들, 또는 변환 계수들의 블록들을 포함할 수도 있다.
매크로블록들 또는 다른 비디오 블록들은 슬라이스들, 프레임들, 또는 다른 독립적인 유닛들과 같은 디코딩가능한 유닛들로 그룹화될 수도 있다. 각각의 슬라이스는 비디오 프레임의 독립적으로 디코딩가능한 유닛일 수도 있다. 대안으로, 프레임들 그 자체가 디코딩가능한 유닛들일 수도 있거나, 또는 프레임의 다른 부분들이 디코딩가능한 유닛들로서 정의될 수도 있다. 본 개시물에서, 용어 "코딩 유닛" 은, 전체 프레임, 프레임의 슬라이스, 화상들의 그룹 (group of pictures; GOP) 들과 같은 비디오 프레임의 임의의 독립적으로 디코딩가능한 유닛, 또는 이용된 코딩 기법들에 따라 정의된 다른 독립적으로 디코딩가능한 유닛을 지칭한다.
설명의 용이함을 위해, 프레임들, 블록들, 매크로블록들 등이 언급될 것이다. 그러나, 비디오를 표현하는 다른 방법들은 설명된 다운스케일링 프로세스들과 일관되게 이용될 수도 있다는 것이 이해될 것이다. 예를 들어, 비디오 데이터는 코딩 유닛들 및/또는 추가적인 논리적 및/또는 물리적 조직 구조(들)를 이용하여 표현될 수도 있다.
도 2 는 통합된 다운스케일러를 포함하는 일 예시적인 비디오 코어의 기능적 블록도를 도시한다. 비디오 코어 (200) 는 비디오 입력 (202) 을 수신하고 비디오 출력 (290) 을 발생시키는 전자 디바이스이다. 비디오 코어 (200) 는 비디오 코더 (204) 를 포함할 수도 있다. 비디오 코더 (204) 는 입력 비디오 (202) 의 인코딩 및/또는 디코딩을 수행하도록 구성될 수도 있다. 구성은 메모리 (206) 에 저장되고 비디오 코더 (204) 에 의해 판독될 수도 있다. 예를 들어, 비디오 코더 (204) 는 소정의 포맷으로, 소정의 비트 레이트에서, 특정 해상도 등으로 비디오를 인코딩하고 디코딩하도록 구성될 수도 있다. 비디오 코더 (204) 가 비디오를 프로세싱할 때마다, 구성 정보는 비디오 코더 (204) 에 의해 수행될 프로세싱을 설정하기 위해 판독될 수도 있다. 메모리 (206) 가 비디오 코어 (200) 의 외부에 있는 엘리먼트로서 도시되나, 일부 구현예들에서, 메모리 (206) 는 비디오 코어 (200) 및/또는 비디오 코더 (204) 와 통합될 수도 있다. 또한, 메모리 (206) 는 단일 엘리먼트로서 도시되며, 일부 구현예들에서, 비디오 코어 (200) 의 프로세싱을 지원하기 위해 다수의 메모리들을 제공하는 것이 바람직할 수도 있다.
일부 구현예들에서, 비디오 코더 (204) 는 적응적으로 구성될 수도 있다. 예를 들어, 입력 비디오 (202) 는 입력 비디오의 유형을 결정하기 위해 사전프로세싱될 수도 있다. 일부 구현예들에서, 사전프로세싱은 비디오 코어 (200) 가 포함되는 디바이스의 특성들을 결정하는 것을 포함할 수도 있다. 그러한 특성들은 이용가능한 전력, 이용가능한 대역폭, 이용가능한 프로세싱 자원들, 커플링된 디바이스들 (예를 들어, 디스플레이들), 이용가능한 메모리 등을 포함할 수도 있다. 그러한 방식으로, 비디오 코더 (204) 는 비디오 코더의 동작 환경을 고려하여 적응적으로 구성될 수도 있다.
비디오 코더 (204) 는 비디오 인코더 (400), 비디오 디코더 (500), 및 다운스케일러 (300) 를 포함할 수도 있다. 다운스케일러 (300), 비디오 인코더 (400), 및 비디오 디코더 (500) 는 하기에서 보다 상세히 설명될 것이다.
비디오 코어 (200) 는 추가적인 프로세싱 엘리먼트들을 포함할 수도 있다. 예를 들어, 비디오 코어 (200) 는 비디오 코더 (204) 에 앞서 비디오 입력 (202) 을 프로세싱하도록 구성된 사전-프로세싱 엘리먼트들을 포함할 수도 있다. 사전-프로세싱 엘리먼트의 일 예는 암호화된 비디오 입력 (202) 을 복호화하도록 구성된 복호화 유닛이다.
유사하게, 비디오 코어는 비디오 코더에 의해 발생된 비디오 데이터를 프로세싱하도록 구성된 사후-프로세싱 엘리먼트들을 포함할 수도 있다. 사후-프로세싱 엘리먼트의 일 예는 출력하기 전에 비디오 데이터를 암호화하도록 구성된 암호화 유닛이다.
도 3 은 일 예시적인 다운스케일러의 기능적 블록도를 도시한다. 일 입력으로, 다운스케일러 (300) 는 비디오 데이터 (302) 를 수신할 수도 있다. 비디오 데이터 (302) 는 인코딩된 비디오 데이터 또는 원시 (raw) 비디오 데이터일 수도 있다. 예를 들어, 다운스케일러 (300) 는 인코딩 프로세스의 일부로서 비디오 데이터를 다운스케일링하도록 구성될 수도 있다. 그러한 구현예들에서, 비디오 데이터 (302) 는 원시상태일 수도 있다. 다운스케일러 (300) 는 디코딩 프로세스의 일부로서 비디오 데이터를 다운스케일링하도록 구성될 수도 있다. 이러한 구현예들에서, 비디오 데이터 (302) 는 인코딩된 비디오 데이터일 수도 있다.
다운스케일러 (300) 는 또한 하나 이상의 다운스케일 명령들 (304) 을 수신할 수도 있다. 다운스케일 명령들 (304) 은 다운스케일링 기능을 제어하기 위해 정보를 제공한다. 예를 들어, 다운스케일러가 인터레이싱된 (interlace) 비디오 입력에 대해 동작하는 경우, 비디오 데이터 (302) 의 얼마나 많은 부분들이 다운스케일링을 위해 취출되고 다운스케일링 후에 저장되는지가 영향을 받을 수도 있다. 다운스케일 명령들 (304) 은 다운스케일러 (300) 에 포함된 레지스터 명령 페치 (fetch) (305) 에 저장될 수도 있다.
다운스케일 명령들 (304) 및 비디오 데이터 (302) 는 다운스케일러 (300) 에 포함된 타일/선형 페치 (310) 에 제공될 수도 있다. 타일/선형 페치 (310) 는 메모리에 저장된 비디오 데이터 (302) 의 부분들을 획득하도록 구성될 수도 있다.
획득된 비디오 데이터의 부분들은 수평 스케일러 (320) 에 제공될 수도 있다. 수평 스케일러 (320) 는 또한 레지스터 명령 페치 (305) 로부터 하나 이상의 다운스케일 명령들 (304) 을 수신하도록 구성될 수도 있다. 수평 스케일러 (320) 는 스케일러 구성부 (340) 로부터 스케일러 구성 값들을 수신하도록 더 구성될 수도 있다.
스케일러 구성부 (340) 는 다운스케일 프로세스 중에 이용되는 구성들을 저장한다. 예를 들어, 스케일러 구성부 (340) 는 룩업 테이블을 포함할 수도 있다. 룩업 테이블은 수평 및/또는 수직 다운스케일링을 위한 스케일링 값들을 포함할 수도 있다. 스케일링 값들은, 예를 들어, 백분율, 비율, 또는 함수로서 표현될 수도 있다. 스케일러 구성부 (340) 는 정적 메모리 저장부에 구성들을 저장할 수도 있다. 일부 구현예들에서, 스케일러 구성부 (340) 는, 예컨대, 다운스케일러 (300) 와 커플링된 디바이스 또는 다운스케일러 (300) 를 이용할 수도 있는 애플리케이션으로부터의 시그널링을 통해 업데이트될 수도 있다. 일 구현예에서, 스케일러 구성부 (340) 는 58 개의 엔트리들을 포함할 수도 있으며, 각각의 엔트리는 다운스케일링 비율에 대응한다.
수평 스케일러 (320) 는 또한 컬럼 버퍼 (column buffer) (330) 로부터의 스케일링된 수평 비디오 데이터를 판독하고/하거나 컬럼 버퍼에 스케일링된 수평 비디오 데이터를 기록하도록 구성될 수도 있다. 컬럼 버퍼 (330) 는 다운스케일러 (300) 의 외부에 있는 것으로 도시된다. 일부 구현예들에서, 컬럼 버퍼 (330) 는 다운스케일러 (300) 의 일부분으로서 구현될 수도 있다. 컬럼 버퍼 (330) 는 수평 스케일러 (320) 에 의해 발생된 다운스케일링된 값들을 누적하도록 구성될 수도 있다. 컬럼 버퍼 (330) 는 다운스케일링된 비디오에 대한 휘도 및/또는 색차 값들을 저장할 수도 있다. 일 예로서, 컬럼 버퍼 (330) 는 40 개의 엔트리들을 포함할 수도 있으며, 각각의 엔트리는 15 비트 길이이다. 이러한 예는 휘도 값들을 저장하는데 적합할 수도 있다. 컬럼 버퍼 (330) 는 또한 색차 청색 및 색차 적색 값들을 저장하기 위해 길이가 15 비트인 48 개의 엔트리들을 포함할 수도 있다. 일부 구현예들에서, 컬럼 버퍼 (330) 는 색차 및 휘도 값들을 저장하기 위한 단일 버퍼로서 구현될 수도 있다. 일부 구현예들에서는, 분리된 컬럼 버퍼들이 포함될 수도 있으며, 하나는 휘도 값들을 저장하기 위한 것이고 하나는 색차 값들을 저장하기 위한 것이다.
수평으로 스케일링된 비디오 데이터는 그 다음에 다운스케일러 (300) 에 포함된 수직 스케일러 (350) 에 제공될 수도 있다. 수직 스케일러 (350) 는 수직 방향을 따라 비디오 데이터를 다운스케일링하도록 구성될 수도 있다. 수평 스케일러 (320) 처럼, 수직 스케일러 (350) 는 레지스터 명령 페치 (305) 로부터의 명령들 및 스케일러 구성부 (340) 로부터의 스케일러 구성 값들을 획득할 수도 있다. 수직 스케일러 (350) 는 로우 버퍼 (row buffer) (360) 에서의 값들을 판독하고/하거나 로우 버퍼에 값들을 기록하도록 구성될 수도 있다. 로우 버퍼 (360) 는 수직 스케일러 (350) 에 의해 발생된 다운스케일링된 값들을 누적하도록 구성될 수도 있다. 로우 버퍼 (360) 는 다운스케일링된 비디오에 대한 휘도 및/또는 색차 값들을 저장할 수도 있다. 일 예로서, 로우 버퍼 (360) 는 1920 개의 엔트리들을 포함할 수도 있으며, 각각의 엔트리는 15 비트 길이이다. 이러한 예는 휘도 값들을 저장하는데 적합할 수도 있다. 로우 버퍼 (360) 는 또한 청색/적색 색차 값들을 저장하기 위한 각각 15 비트 길이의 1920 개의 엔트리들을 포함할 수도 있다. 일부 구현예들에서, 로우 버퍼 (360) 는 색차 및 휘도 값들을 저장하기 위한 단일 버퍼로서 구현될 수도 있다. 일부 구현예들에서는, 분리된 로우 버퍼들이 포함될 수도 있으며, 하나는 휘도 값들을 저장하기 위한 것이고 하나는 색차 값들을 저장하기 위한 것이다.
다운스케일링된 비디오 데이터는 그 다음에 타일/선형 패커 (tile/linear packer) (370) 에 제공될 수도 있다. 타일/선형 패커 (370) 는 스케일링된 로우들 및 컬럼들에 기초하여 다운스케일링된 비디오 데이터 (390) 를 구축하도록 구성될 수도 있다. 타일/선형 패커 (370) 에 의한 다운스케일링된 비디오 데이터 (390) 의 발생은 레지스터 명령 페치 (305) 로부터 타일/선형 패커 (370) 에 의해 획득되는 다운스케일 명령들 (304) 에 기초할 수도 있다. 일 예로서, 타일/선형 패커 (370) 는 다운스케일 RAM 에 다운스케일링된 비디오 데이터 (390) 를 저장하도록 구성될 수도 있다. 다운스케일 RAM 은 4 개의 RAM 유닛들로 구현될 수도 있으며, 각각의 RAM 유닛은 384 개의 엔트리들을 포함하며, 각각은 엔트리는 32 비트를 포함한다. 다운스케일링된 비디오 데이터 (390) 는 본 개시물의 범주로부터 벗어나지 않으면서 다른 형태들로 제공될 (예를 들어, 저장될, 송신될, 또는 그렇지 않으면 이용가능하게 될) 수도 있다.
일부 구현예들에서, 타일/선형 패커 (370) 는 또한 제어 신호를 송신하도록 구성될 수도 있다. 제어 신호는 다운스케일링된 비디오 데이터 (390) 의 후속하는 프로세싱에 이용될 수도 있다. 예를 들어, 인코더 또는 디코더에 포함된 기록 데이터 이동기 (mover) 가 제어 신호를 검출하여 인코딩 또는 디코딩 프로세스들을 계속할 수도 있다.
도 3 에 도시된 다운스케일러 (300) 는 다운스케일링하기 위해 인코딩된 또는 디코딩된 비디오 데이터를 동적으로 프로세싱할 수도 있다. 이에 따라, 다운스케일러 (300) 는 비디오 인코더 (400) 및 비디오 디코더 (500) 에 의해 공유될 수도 있다. 또한, 구성은, 반드시 완전한 인코딩된 또는 디코딩된 버전을 획득할 필요 없이, 다운스케일러 (300) 가 비디오 데이터 (302) 의 일부분에 대해 동작하는 것을 허용한다. 또한, 비디오 데이터 (302) 의 부분은 그 부분의 인코딩 또는 디코딩을 완료하기 전에 다운스케일링될 수도 있다.
도 4 는 일 예시적인 비디오 인코더의 기능적 블록도를 도시한다. 비디오 인코더 (400) 는 원시 비디오 데이터 (402) 를 입력으로서 수신한다. 원시 비디오 데이터 (402) 는 센서 (예를 들어, 카메라), 메모리, 네트워크 위치 등과 같은 다양한 소스들로부터 수신될 수도 있다.
프레임 인코딩 프리페치 (410) 는 비디오 인코더 (400) 에 포함될 수도 있다. 프레임 인코딩 프리페치 (410) 는 인코딩 프로세스를 위한 윈시 비디오 데이터 (402) 의 부분들에 대해 구성될 수도 있다. 예를 들어, 프레임 인코딩 프리페치 (410) 는 인코딩될 원시 비디오 데이터 (402) 의 현재 프레임을 획득하도록 구성될 수도 있다. 프레임 인코딩 프리페치 (410) 는 원시 비디오 데이터 (402) 의 참조 프레임을 획득하도록 구성될 수도 있다. 참조 프레임은 현재 프레임을 인코딩하는데 이용될 수도 있다.
참조 프레임은 모션 추정기 및 보상기 (420) 에 제공될 수도 있다. 모션 추정기 및 보상기 (420) 는 현재 프레임에 대한 모션 정보를 발생시키도록 구성될 수도 있다. 모션 추정기 및 보상기 (420) 는 프레임 인코딩 프리페치 (410) 에 의해 획득된 현재 및 참조 프레임들에 기초하여 그것의 값들을 발생시킬 수도 있다. 예를 들어, 모션 추정기 및 보상기 (420) 는 발생 모션 벡터들을 발생시킬 수도 있으며, 이는 비디오 블록들에 대한 모션을 추정한다. 모션 벡터는, 예를 들어, 현재의 프레임 내에서 코딩되고 있는 현재의 블록 (또는 다른 코딩된 유닛) 에 대한 예측 입력 프레임 내에서의 예측 블록 (또는 다른 코딩된 유닛) 의 변위를 가리킬 수도 있다. 예측 블록은 픽셀 차이의 관점에서, 코딩될 비디오 블록과 근접하게 매칭하는 것으로 발견된 블록이며, 픽셀 차이는 절대 차의 합 (sum of absolute difference; SAD), 제곱 차의 합 (sum of square difference; SSD), 또는 다른 차이 메트릭들에 의해 결정될 수도 있다. 모션 벡터는 매크로블록의 파티션의 변위를 또한 가리킬 수도 있다. 모션 보상은 예측 블록에 기초한 예측 데이터의 계산을 포함할 수도 있다. 모션 추정기 및 보상기 (420) 에 의해 발생된 정보는 변환기/양자화기 및 레이트 제어 유닛 (430) 에 제공될 수도 있다.
변환기/양자화기 및 레이트 제어 유닛 (430) 은 또한 프레임 인코딩 프리페치 (410) 로부터 프레임들을 획득할 수도 있다. 변환기/양자화기 및 레이트 제어 유닛 (430) 은 소정의 시각적 품질을 위한 타겟 비트 레이트를 달성하기 위해 소정의 시간의 기간에 걸쳐 비트 버짓 (bit budget) 들을 할당하도록 구성될 수도 있다. 일반적으로, 일관된 시각적 품질을 위해 일정한 비트 레이트가 요구된다. 레이트 제어 알고리즘은, 입력 비디오 데이터에 대한 인코딩된 입력 비디오 데이터 발생 픽셀 정보와 함께, 비트 버짓에 따른 현재 프레임, 및 현재 프레임의 통계치들에 대한 인코딩 파라미터들, 특히 양자화 파라미터를 동적으로 조정할 수도 있다.
픽셀 정보는 엔트로피 코더 (450) 및 디블록커 (deblocker) (440) 에 제공될 수도 있다. 엔트로피 코더 (450) 는 인코딩 프로세스에 의해 발생된 비디오 데이터를 더 압축하도록 구성될 수도 있다. 예를 들어, 엔트로피 코더 (450) 는 비디오 데이터를 압축하기 위하여 Huffman 코딩을 적용하도록 구성될 수도 있다.
디블록커 (440) 는 블록킹 아티팩트들을 식별하고 제거함으로써 비디오 데이터를 더 프로세싱하도록 구성될 수도 있다. 변환기/양자화기 및 레이트 제어 유닛 (430) 은, 예를 들어, 압축의 결과로, 비디오 데이터에 블록 아티팩트들을 도입할 수도 있다. 디블록커 (440) 는 이러한 블록킹 아티팩트들을 평활화하여 비디오 데이터의 시각적 품질을 향상시키도록 구성될 수도 있다. 예를 들어, 디블록커는 시각적 블록킹 아티팩트들을 제거하기 위해 변환된 입력 비디오 데이터를 필터링하도록 구성될 수도 있다. 디블록커 (440) 는 기록 데이터 이동기 (460) 에 디블록킹된 (deblock) 비디오 데이터를 제공하도록 구성될 수도 있다. 도시된 기록 데이터 이동기 (460) 는, 예컨대, 메모리 위치에 인코딩된 비디오 데이터 (490) 를 저장하도록 구성된다.
디블록커 (440) 는 또한 다운스케일러 (300) 에 디블록킹된 비디오 데이터를 제공할 수도 있다. 이러한 방식으로, 인코딩된 원시 비디오 데이터 (402) 의 다운스케일링된 버전이 발생될 수도 있다. 프레임 인코딩 프리페치 (410) 에 의해 획득된 현재 및/또는 참조 프레임들이 다운스케일러 (300) 에 제공될 수도 있다. 따라서, 다운스케일러 (300) 는 프레임 인코딩 프리페치 (410) 에 의해 획득된 원래 참조 및/또는 현재 프레임 및 원시 비디오 데이터의 디블록킹된 버전 중 하나 또는 양자 모두에 기초하여 다운스케일링된 버전을 발생시킬 수도 있다. 다운스케일러 (300) 는 기록 데이터 이동기 (460) 에 다운스케일링된 버전을 제공하도록 구성된다. 기록 데이터 이동기 (460) 는 인코딩된 비디오 데이터 (490) 의 다운스케일링된 버전을 저장하도록 더 구성될 수도 있다.
도 4 에 도시된 비디오 인코더 (400) 는 원시 비디오 데이터의 엔트로피 인코딩된 버전, 원시 비디오 데이터의 디블록킹되어진 인코딩된 버전, 및 원시 비디오 데이터의 다운스케일링된 디블록킹되어진 인코딩된 버전을 발생시킨다. 기록 데이터 이동기 (460) 는 다운스케일링된 디블록킹되어진 인코딩된 버전 및 다운스케일링되지 않은 디블록킹되어진 인코딩된 버전 중 하나 또는 양자 모두를 선택적으로 저장하도록 구성될 수도 있다는 것이 이해될 것이다. 예를 들어, 비디오 인코더 (400) 를 포함하는 디바이스가 제한된 자원들 (예를 들어, 메모리, 전력) 을 갖는 경우, 전체 디블록킹되어진 인코딩된 버전을 저장하는 것을 피하고 대신에 오직 다운스케일링된 버전만을 저장하는 것이 바람직할 수도 있다.
도 5 는 일 예시적인 비디오 디코더의 기능적 블록도를 도시한다. 비디오 디코더 (500) 는 인코딩된 비디오 데이터를 디코딩하도록 구성될 수도 있다 (502). 인코딩된 비디오 데이터 (502) 는 도 1 에 설명된 바와 같은 목적지 디바이스 (16) 에 의해 수신될 수도 있다.
도시된 비디오 디코더 (500) 는 가변 길이 디코더 (510) 를 포함한다. 가변 길이 디코더 (510) 는 인코딩된 비디오 데이터 (502) 에 포함된 심볼들을 압축해제하도록 구성될 수도 있다. 압축해제된 정보는 모션 보상기 (520) 에 제공될 수도 있다. 모션 보상기는 입력 비디오 데이터를 재구성하도록 구성될 수도 있다. 모션 보상된 비디오 데이터 및 가변 길이 디코딩된 비디오 데이터는 역 양자화기/변환기 (530) 에 제공될 수도 있다. 역 양자화기/변환기 (530) 는 비디오 데이터를 더 압축해제하도록 구성될 수도 있다. 모션 보상된 입력 비디오 데이터 및 디코딩된 입력 비디오 데이터에 기초하여, 역 양자화기/변환기 (530) 는 비디오 데이터에 대한 픽셀 값들을 발생시킬 수도 있다.
도 4 를 참조하여 위에서 논의된 바와 같이, 블록킹 아티팩트들은, 예를 들어, 인코딩 및 디코딩 프로세스들에 의해 도입될 수도 있다. 디블록커 (540) 는 그러한 블록킹 아티팩트들을 제거하기 위해 비디오 디코더 (300) 에 포함될 수도 있다. 디블록커 (540) 는 기록 데이터 이동기 (550) 에 디코딩되고 디블록킹된 비디오 데이터를 제공하도록 구성될 수도 있다. 기록 데이터 이동기 (550) 는 비디오 인코더 (400) 에 포함된 기록 데이터 이동기 (460) 와 유사한 기능들을 수행할 수도 있다. 예를 들어, 기록 데이터 이동기 (550) 는 디코딩된 비디오 데이터 (590) 를 제공하도록 구성될 수도 있다. 디코딩된 비디오 데이터 (590) 를 제공하는 것은 메모리에 디코딩된 비디오 데이터 (590) 를 저장하는 것, 송수신기를 통해 디코딩된 비디오 데이터 (590) 를 송신하는 것, 또는 디스플레이를 위해 디코딩된 비디오 데이터 (590) 를 제공하는 것을 포함할 수도 있다. 디블록커 (540) 는 또한 다운스케일러 (300) 에 디블록킹된 비디오 데이터를 제공할 수도 있다. 다운스케일러 (300) 는 디코딩되고 디블록킹되어진 디코딩된 비디오 데이터의 다운스케일링된 버전을 발생시킬 수도 있다. 다운스케일링된 버전은 기록 데이터 이동기 (550) 에 제공되어 상술된 바와 같이 프로세싱될 수도 있다.
도 6 은 인터레이싱된 비디오 데이터의 통합된 다운스케일로 디코딩하는 일 예시적인 방법에 대한 프로세스 흐름도를 도시한다. 인터레이싱된 인코딩된 비디오 데이터 (602) 는 입력으로서 제공된다. 노드 (604) 에서, 비디오 코어 (200) 는 다운스케일 방향(들)을 선택한다. 선택은 비디오 코어 (200) 의 다운스케일러 (300) 에서 수행될 수도 있다. 선택은 스케일링 구성, 비디오 데이터의 속성 (예를 들어, 인코딩 포맷/방법, 비트레이트, 컨텐츠 유형), 비디오 코어 (200) 구성 등에 기초할 수도 있다. 다운스케일 방향은 수평 및/또는 수직 다운스케일링일 수도 있다.
노드 (606) 에서, 다운스케일러 (300) 는 선택된 다운스케일 방향(들)으로 인터레이싱된 인코딩된 비디오 데이터 (602) 를 다운스케일링한다. 다운스케일링된 버전은 디스플레이, 모니터, 셋 탑 박스, 또는 비디오 데이터를 나타내도록 구성된 다른 디바이스와 같은 미디어 디스플레이 플랫폼 (640) 에 제공될 수도 있다. 노드 (608) 에서, 미디어 디스플레이 플랫폼 (640) 은 비디오 데이터를 디인터레이싱한다 (deinterlace). 결정 노드 (610) 에서, 비디오 데이터가 모든 방향들로 스케일링되었는지 여부에 관한 결정이 이루어진다. 비디오가 모든 방향들로 스케일링된 경우 (예를 들어, 다운스케일러 (300) 가 수평 및 수직 다운스케일링을 하도록 구성된 경우), 디인터레이싱된 디코딩된 비디오 데이터 (690) 가 제공된다. 비디오 데이터가 완전히 다운스케일링되지 않은 경우, 노드 (612) 에서, 비디오 데이터는 더 스케일링된다. 결정은 제공된 비디오 데이터에서의 픽셀들의 개수에 기초할 수도 있다. 결정은 디인터레이싱된 디코딩된 비디오 데이터 (690) 에 대한 픽셀들의 구성가능한 바람직한 비율에 더 기초할 수도 있다.
일 예로서, 인터레이싱된 인코딩된 비디오 데이터 (602) 는 1920 바이 1080 인터레이싱된 비디오 데이터일 수도 있다. 다운스케일러 (300) 는 854 픽셀들로 수평으로 다운스케일링하도록 구성될 수도 있다. 이에 따라, 비디오 코어 (200) 는 인터레이싱된 854 바이 1080 디코딩된 비디오 데이터를 미디어 디스플레이 플랫폼 (640) 에 제공할 수도 있다. 미디어 디스플레이 플랫폼 (640) 은 비디오 데이터의 이러한 버전을 디인터레이싱하도록 구성될 수도 있다. 디인터레이싱은 비디오 데이터의 종횡비를 변화시키지 않을 수도 있다. 이에 따라, 미디어 디스플레이 플랫폼 (640) 은 이제 비디오의 854 바이 1080 디인터레이싱된 버전을 갖는다. 미디어 디스플레이 플랫폼은 그 다음에 비디오 데이터의 차원들이 미디어 디스플레이 플랫폼 (640) 과 연관된 디스플레이에 대한 구성된 해상도에 매칭하지 않는다고 결정할 수도 있다. 이에 따라, 미디어 디스플레이 플랫폼 (640) 은 비디오를 원하는 854 바이 480 해상도로 하도록 추가적인 수직 스케일링을 수행할 수도 있다. 다른 차원들은 본 개시물의 범위로부터 벗어나지 않으면서 구현될 수도 있다.
도 6 에 도시된 방법은 비디오 코어 (200) 가 비디오 데이터에 대한 초기 다운스케일링을 수행하는 것을 허용한다. 이는 비디오 코어 (200) 하드웨어에서 계산들을 수행하는 것 및 비디오 데이터의 후속하는 스케일링을 간소화시킬 수도 있는 초기 다운스케일을 제공하는 것과 같은 여러 혜택들을 미디어 디스플레이 플랫폼 (640) 에 제공할 수도 있다. 또한, 다운스케일링된 이미지가 보다 작기 때문에, 비디오 코어 (200) 에서 미디어 디스플레이 플랫폼 (640) 으로 송신되는 데이터의 양이 감소되며, 이는 미디어 디스플레이 플랫폼 (640) 에 비디오 데이터를 제공할 시에 자원들을 절약할 수도 있다.
도 7 은 인터레이싱된 비디오 데이터의 통합된 다운스케일로 디코딩하는 일 예시적인 방법에 대한 다른 프로세스 흐름도를 도시한다. 인터레이싱된 인코딩된 비디오 데이터 (602) 가 비디오 코어 (200) 에 제공된다. 노드 (710) 에서, 인터레이싱된 인코딩된 비디오 데이터가 디인터레이싱된다. 일 구현예에서, 디인터레이싱은 2 개의 필드를 생성할 수도 있으며, 각각의 필드는 1920 바이 540 픽셀을 포함한다. 노드 (720) 에서, 하나의 필드가 다운스케일링을 위해 선택된다. 선택은 비디오 데이터, 비디오 코어 (200) 의 구성, 또는 다른 요인에 기초할 수도 있다. 노드 (730) 에서, 선택된 필드는 상술된 바와 같이 다운스케일링되어 디인터레이싱된 디코딩된 비디오 데이터 (690) 를 생성한다. 선택되지 않은 필드는 추가적인 다운스케일링 프로세싱에서 폐기될 수도 있다. 필드가 1920 바이 540 필드인 구현예에서, 노드 (730) 의 다운스케일링에 의해 생성된 비디오는 854 바이 480 다운스케일링된 버전일 수도 있다.
도 6 및 도 7 을 참조하여 설명된 방법들은 상호 배타적이지 않다는 것에 유의해야 한다. 예를 들어, 미디어 디스플레이 플랫폼 (640) 에 따라, 비디오 코어 (200) 는 도시된 프로세스들을 선택적으로 수행하도록 구성될 수도 있다. 미디어 디스플레이 플랫폼 (640) 이 디인터레이싱을 하도록 구성되지 않거나 스케일링을 수행할 수 없다고 가정하자. 그러한 구현예에서는, 비디오 코어 (200) 가 도 7 에 도시된 프로세스를 수행하도록 구성하는 것이 바람직할 수도 있다. 다른 시점에서, 미디어 디스플레이 플랫폼 (640) 은 디인터레이싱하고 스케일링하도록 디바이스와 커플링될 수도 있다. 이에 따라, 미디어 디스플레이 플랫폼 (640) 이 비디오 코어 (200) 로부터 디인터레이싱 및 후속하는 스케일링의 태스크들을 없애는 것을 허용하는 것이 바람직할 수도 있다.
선택은 또한 비디오 코어 (200) 중심일 수도 있다. 예를 들어, 비디오 코어 (200) 가 낮은 부하들 (예를 들어, 많지 않은 프로세싱 또는 메모리 사용) 하에 있는 시간들 중에, 비디오 코어 (200) 가 도 7 에 도시된 프로세스를 수행하도록 구성하는 것이 바람직할 수도 있다. 그러나, 비디오 코어 (200) 가 보다 높은 사용 레벨들을 경험하는 경우, 도 6 에 도시된 바와 같은 프로세싱 태스크들을 없애는 것이 바람직할 수도 있다.
하기의 표 1 은 설명된 통합된 다운스케일링 시스템들 및 방법들을 통해 달성될 수도 있는 향상들 중 일부를 도시하는 실험적 데이터를 포함한다. 실험들은 초당 30 프레임의 컨텐츠 레이트, 초당 60 프레임의 리프레쉬 레이트, 및 픽셀당 1.5 바이트를 가정한다. 픽셀은 4:2:0 비율의 휘도 대 색차 청색 대 색차 적색을 포함한다. 실험들은 1920 바이 1080 참조 비디오를 이용하여 수행되었다. 디스플레이 표준은 제공되는 대응하는 디스플레이 차원들로 테스트 하에 있는 비디오 디스플레이 표준을 지칭한다. 통합된 다운스케일 (IDS) 비디오 코어 참조 (ref) 프레임 기록 대역폭 (BW) 이 초당 메가바이트로 도시된다. IDS 비디오 코드 디스플레이 (disp) 프레임 기록 대역폭 (BW) 은 또한 초당 메가바이트로 보고된다. 미디어 디스플레이 플랫폼 (MDP) 디스플레이 프레임 판독 대역폭은 또한 초당 매가바이트로 도시된다.
Figure 112015096634738-pct00001
표 1
WUXGA, HD 1080, WSXGA+, UGA, 및 SXGA+ 과 같은 고 해상도 타겟 디스플레이들에 있어서는, 절감들이 거의 발견되지 않았다. 이는 이러한 디스플레이들에 대해 수행되는 다운스케일링의 양이 있더라도 거의 없는 것으로 생각될 것이다. 그러나, 타겟 디스플레이에 대해 이용되는 다운스케일링의 양이 증가함에 따라, 절감들의 양은 꽤 상당하게 된다. 표 1 에 도시된 효율성들은 버스 및/또는 메모리 대역폭 효율성들로서 나타낼 수도 있는 대역폭 이점들을 지칭한다. 이는 단지 일 예로서 제공되고 추가적인 비제한적인 혜택들이 설명된 시스템들 및 방법들에 의해 제공된다. 예를 들어, 인코딩 및 디코딩 다운스케일링 양자 모두를 위해 동일한 다운스케일러가 통합되고 선택적으로 이용될 수도 있다. 이는 동일한 컴포넌트가 인코더 및 디코더에 의해 사용될 수도 있으므로 디바이스의 물리적 풋프린트에서의 감소를 제공한다. 이는 또한 다운스케일러가 소스 비디오 디바이스에, 목적지 비디오 디바이스에, 또는 (예를 들어, 비디오를 캡쳐하고 디스플레이할 수 있는) 하이브리드 디바이스에 통합되는지 여부에 따라 동일한 코어 상에 포함될 수도 있으므로 비디오 코어를 생성하는 비용을 감소시킬 수도 있다.
도 8 은 비디오 데이터를 프로세싱하는 일 예시적인 방법에 대한 플로차트를 도시한다. 방법은 비디오 코어 (200) 와 같이 본원에 설명된 디바이스들 중 하나 이상의 디바이스들로 구현될 수도 있다.
노드 (802) 에서, 입력 비디오 데이터가 수신된다. 수신하는 것은 유선 또는 무선 수신일 수도 있다. 수신하는 것은 카메라와 같은 센서로부터 및/또는 메모리로부터 입력 비디오 데이터를 수신하는 것을 포함할 수도 있다.
노드 (804) 에서, 출력 비디오 데이터가 발생된다. 출력 비디오 데이터를 발생시키는 것은 입력 비디오 데이터를 선택적으로 인코딩하고 디코딩하는 것을 포함한다. 입력 비디오 데이터의 다운스케일링된 버전은 인코딩 또는 디코딩 중에 발생되고 출력 비디오 데이터는 입력 비디오 데이터의 다운스케일링된 버전을 포함한다.
도 9 는 비디오 데이터를 프로세싱하기 위한 일 예시적인 전자 디바이스의 기능적 블록도를 도시한다. 전자 디바이스는 도 9 에 도시된 간소화된 비디오 프로세싱 디바이스 (900) 보다 많은 컴포넌트들을 가질 수도 있다는 것을 당업자들은 이해할 것이다. 비디오 프로세싱 디바이스 (900) 는 청구항들의 범위 내에서 구현예들의 일부 중요한 피쳐들을 설명하는데 유용한 그러한 컴포넌트들만을 도시한다. 비디오 프로세싱 디바이스 (900) 는 입력 수신기 (902) 및 출력 발생기 (904) 를 포함한다.
입력 수신기 (902) 는 입력 비디오 데이터를 수신하도록 구성된다. 입력 수신기 (902) 는 안테나, 신호 프로세서, 네트워크 인터페이스, 메모리, 및 주변 인터페이스 중 하나 이상을 포함할 수도 있다. 일부 구현예들에서, 입력 비디오 데이터를 수신하는 수단은 입력 수신기 (902) 를 포함한다.
출력 발생기 (904) 는 출력 비디오 데이터를 발생시키도록 구성된다. 출력 비디오 데이터를 발생시키는 것은 입력 비디오 데이터를 선택적으로 인코딩하고 디코딩하는 것을 포함한다. 입력 비디오 데이터의 다운스케일링된 버전은 인코딩 또는 디코딩 중에 발생되고 출력 비디오 데이터는 입력 비디오 데이터의 다운스케일링된 버전을 포함한다. 출력 발생기 (904) 는 비디오 인코더, 비디오 디코더, 다운스케일러, 모션 보상 및 추정 유닛, 양자화기, 변환기, 레이트 제어 유닛, 메모리, 프로세서, 기록 데이터 이동기, 네트워크 인터페이스, 및 버퍼 중 하나 이상을 이용하여 구현될 수도 있다. 일부 구현예들에서, 출력 비디오를 발생시키는 수단은 출력 발생기 (904) 를 포함할 수도 있다.
본원에 개시된 구현예들 관련하여 설명된 다양한 예시적인 논리적 블록들, 모듈들, 회로들, 및 프로세스 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자 모두의 조합들로 구현될 수도 있음을 당업자들은 또한 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호교환성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들은 그들의 기능성의 관점에서 일반적으로 위에서 설명되었다. 그러한 기능성이 하드웨어 또는 소프트웨어로 구현되는지 여부는 특정 애플리케이션 및 전체 시스템에 부과되는 설계 제약들에 따라 달라진다. 당업자라면, 상기 상술한 기능성을 각각의 특정 어플리케이션에 대해 다양한 방식들로 구현할 수도 있지만, 그러한 구현 결정들은 본 발명의 범위를 벗어나게 하는 것으로 이해되어서는 안된다. 일부분 또는 일부는 전체보다 적게 또는 전체와 동일하게 포함할 수도 있음을 당업자는 인식할 것이다. 예를 들어, 픽셀들의 집합의 일부분은 그러한 픽셀들의 하위 집합을 지칭할 수도 있다.
본원에서 개시된 구현예들과 연계하여 설명된 다양한 예시적인 논리적 블록들, 모듈들, 및 회로들은 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 반도체 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA) 혹은 다른 프로그래머블 로직 디바이스, 이산 게이트 혹은 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본원에 설명된 기능들을 수행하도록 설계된 것들의 임의의 조합에 의해 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 다르게는, 상기 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 연계한 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성으로 구현될 수도 있다.
본원에서 개시된 구현예들과 연계하여 설명된 방법 또는 프로세스의 단계들은 하드웨어에서, 프로세서에 의해 실행되는 소프트웨어 모듈에서, 또는 이들 양자의 조합에서 직접적으로 구체화될 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 이동식 디스크, CD-ROM, 또는 공지된 임의의 다른 형태의 비일시적인 저장 매체 내에 있을 수도 있다. 예시적인 컴퓨터 판독가능 저장 매체는 프로세서에 커플링되어, 프로세서가 컴퓨터 판독가능 저장 매체로부터 정보를 판독하거나 컴퓨터 판독가능 저장 매체에 정보를 기록할 수 있다. 대안에서, 저장 매체는 프로세서에 통합될 수도 있다. 프로세서와 저장 매체는 ASIC 내에 있을 수도 있다. ASIC 는 사용자 단말기, 카메라, 또는 다른 디바이스 내에 있을 수도 있다. 대안에서, 프로세서와 저장 매체는 사용자 단말기, 카메라 또는 다른 디바이스에 개별 컴포넌트들로 있을 수도 있다.
본원에서 이용되는 바와 같이, 용어들 "결정하다" 또는 "결정하기" 는 매우 다양한 액션들을 망라한다. 예를 들어, "결정하기" 는 계산하기, 컴퓨팅하기, 프로세싱하기, 도출하기, 조사하기, 검색하기 (예를 들어, 테이블, 데이터베이스, 또는 다른 데이터 구조에서 검색하기), 확인하기 등을 포함할 수도 있다. 또한, "결정하기" 는 수신하기 (예를 들어, 정보 수신하기), 액세스하기 (예를 들어, 메모리 내의 데이터에 액세스하기) 등을 포함할 수도 있다. 또한, "결정하기" 는 해결하기, 선택하기, 고르기, 설정하기 등을 포함할 수 있다.
본원에서 이용되는 바와 같이, 용어들 "제공하다" 또는 "제공하기" 는 매우 다양한 액션들을 망라한다. 예를 들어, "제공하기" 는 후속하는 취출을 위한 위치에 값 저장하기, 수취인에게 직접적으로 값 송신하기, 값에 대한 참조를 송신하거나 저장하기 등을 포함할 수도 있다. "제공하기" 는 또한, 인코딩, 디코딩, 암호화, 복호화, 확인, 검증 등을 포함할 수도 있다.
또한 단어 "예시적인" 은 본원에서 "일 예, 사례, 또는 실례의 역할을 하는" 것을 의미하기 위해 이용된다. "예시적" 으로 본원에서 설명된 임의의 실시형태는 반드시 다른 실시형태들보다 바람직하거나 이로운 것으로 해석되지는 않는다.
본원에서 이용되는 바와 같이, 아이템들의 리스트 중 "그 중 적어도 하나" 를 지칭하는 구절은 단일 구성부를 포함하여, 이러한 아이템들의 임의의 조합을 지칭한다. 예로서, "a, b, 또는 c: 중의 적어도 하나" 는 a, b, c, a-b, a-c, b-c, 및 a-b-c 를 포함하고자 한다.
개시된 구현예들의 앞서의 설명은 당업자가 본 발명을 실시하거나 이용하는 것을 가능하게 하도록 하기 위해 제공된다. 이러한 구현예들에 대한 다양한 수정들이 당업자들에게 자명할 것이고, 본원에서 정의된 일반적인 원리들은 본 발명의 사상 또는 범위로부터 벗어나지 않으면서 다른 구현예들에 적용될 수도 있다. 따라서, 본 발명은 본원에서 보여진 예시적인 구현예들로 제한되도록 의도된 것은 아니며, 본원에 개시된 원칙들과 신규의 피쳐들과 일치하는 광의의 범위에 부합되고자 한다.

Claims (22)

  1. 비디오 데이터를 프로세싱하기 위한 전자 디바이스로서,
    입력 비디오 데이터를 수신하도록 구성된 수신기; 및
    출력 비디오 데이터를 발생시키도록 구성된 비디오 코더를 포함하고,
    상기 비디오 코더는,
    비디오 인코더;
    비디오 디코더;
    디블록킹된 비디오 데이터를 제공하도록 배열된 디블록커; 및
    상기 인코더 및 상기 디코더에 커플링된 다운스케일러를 포함하며,
    상기 다운스케일러는 상기 디블록커와 커플링되고 상기 디블록커에 의해 제공되는 디블록킹된 비디오 데이터를 수신하도록 배열되며, 상기 다운스케일러는 상기 디블록킹된 비디오 데이터에 기초하고 타겟 디스플레이 디바이스에 기초하여 인코딩 또는 디코딩 중에 상기 입력 비디오 데이터의 다운스케일링된 버전을 발생시키도록 구성되고, 상기 입력 비디오 데이터의 상기 다운스케일링된 버전은 상기 타겟 디스플레이 디바이스와 동일한 해상도를 가지며, 상기 출력 비디오 데이터는 상기 입력 비디오 데이터의 상기 다운스케일링된 버전을 포함하는, 비디오 데이터를 프로세싱하기 위한 전자 디바이스.
  2. 제 1 항에 있어서,
    상기 다운스케일러는 상기 입력 비디오 데이터의 디블록킹되어진 인코딩된 버전 또는 수신된 상기 입력 비디오 데이터 중 하나에 기초하여 상기 입력 비디오 데이터의 상기 다운스케일링된 버전을 발생시키도록 구성되는, 비디오 데이터를 프로세싱하기 위한 전자 디바이스.
  3. 제 1 항에 있어서,
    상기 다운스케일러는 수신된 상기 입력 비디오 데이터의 디블록킹되어진 디코딩된 버전에 기초하여 상기 입력 비디오 데이터의 상기 다운스케일링된 버전을 발생시키도록 구성되는, 비디오 데이터를 프로세싱하기 위한 전자 디바이스.
  4. 제 1 항에 있어서,
    상기 입력 비디오 데이터는 인터레이싱된 비디오 데이터를 포함하는, 비디오 데이터를 프로세싱하기 위한 전자 디바이스.
  5. 제 4 항에 있어서,
    상기 입력 비디오 데이터의 상기 다운스케일링된 버전을 발생시키는 것은,
    복수의 다운스케일 방향들 중 적어도 하나의 다운스케일링 방향을 결정하는 것을 식별하는 것으로서, 상기 복수의 다운스케일 방향들은 수평 다운스케일링 및 수직 다운스케일링을 포함하는, 상기 적어도 하나의 다운스케일링 방향을 식별하는 것; 및
    상기 인터레이싱된 비디오 데이터를 다운스케일링하는 것을 포함하고,
    상기 출력 비디오 데이터를 발생시키는 것은,
    다운스케일링된 상기 인터레이싱된 비디오 데이터를 디인터레이싱하는 것; 및
    결정된 상기 적어도 하나의 다운스케일링 방향에 따라 디인터레이싱된 상기 비디오 데이터를 스케일링하는 것을 포함하는, 비디오 데이터를 프로세싱하기 위한 전자 디바이스.
  6. 제 4 항에 있어서,
    상기 입력 비디오 데이터는 상기 입력 비디오 데이터의 제 1 및 제 2 디인터레이싱된 버전들을 생성하도록 디인터레싱되고,
    상기 입력 비디오 데이터의 상기 다운스케일링된 버전을 발생시키는 것은,
    상기 입력 비디오 데이터의 제 1 디인터레이싱된 버전 및 상기 입력 비디오 데이터의 제 2 디인터레이싱된 버전을 수신하는 것;
    상기 입력 비디오 데이터의 상기 제 1 디인터레이싱된 버전 및 상기 제 2 디인터레이싱된 버전 중 하나를 선택하는 것; 및
    상기 입력 비디오 데이터의 선택된 상기 디인터레이싱된 버전을 스케일링하는 것을 포함하는, 비디오 데이터를 프로세싱하기 위한 전자 디바이스.
  7. 제 1 항에 있어서,
    상기 출력 비디오 데이터의 적어도 하나의 버전을 송신하도록 구성된 송신기를 더 포함하는, 비디오 데이터를 프로세싱하기 위한 전자 디바이스.
  8. 제 1 항에 있어서,
    상기 다운스케일러는 입력 비디오 이미지의 수평 차원 및 수직 차원 중 적어도 하나를 따라 선택적으로 다운스케일링하도록 구성되는, 비디오 데이터를 프로세싱하기 위한 전자 디바이스.
  9. 제 1 항에 있어서,
    상기 다운스케일러는 타겟 디스플레이의 차원들, 상기 타겟 디스플레이에 데이터를 송신하기 위해 이용가능한 대역폭, 및 상기 전자 디바이스에 대한 자원 이용가능성에 적어도 부분적으로 기초하여 상기 다운스케일링된 버전을 발생시키도록 구성되는, 비디오 데이터를 프로세싱하기 위한 전자 디바이스.
  10. 제 9 항에 있어서,
    상기 전자 디바이스에 대한 상기 자원 이용가능성은 전력, 프로세싱, 메모리, 및 버스 이용가능성 중 적어도 하나를 포함하는, 비디오 데이터를 프로세싱하기 위한 전자 디바이스.
  11. 비디오 데이터를 프로세싱하는 방법으로서,
    입력 비디오 데이터를 수신하는 단계; 및
    출력 비디오 데이터를 발생시키는 단계를 포함하고,
    상기 출력 비디오 데이터를 발생시키는 단계는,
    디블록킹된 비디오 데이터를 제공하는 단계; 및
    상기 입력 비디오 데이터를 선택적으로 인코딩하고 디코딩하는 단계를 포함하며,
    상기 입력 비디오 데이터의 다운스케일링된 버전은 상기 디블록킹된 비디오 데이터에 기초하고 타겟 디스플레이 디바이스에 기초하여 상기 인코딩 또는 디코딩 중에 발생되고, 상기 입력 비디오 데이터의 상기 다운스케일링된 버전은 상기 타겟 디스플레이 디바이스와 동일한 해상도를 가지며, 상기 출력 비디오 데이터는 상기 입력 비디오 데이터의 상기 다운스케일링된 버전을 포함하는, 비디오 데이터를 프로세싱하는 방법.
  12. 제 11 항에 있어서,
    상기 입력 비디오 데이터의 상기 다운스케일링된 버전은 상기 입력 비디오 데이터의 디블록킹되어진 인코딩된 버전 또는 수신된 상기 입력 비디오 데이터 중 하나에 기초하여 발생되는, 비디오 데이터를 프로세싱하는 방법.
  13. 제 11 항에 있어서,
    상기 입력 비디오 데이터의 상기 다운스케일링된 버전은 수신된 상기 입력 비디오 데이터의 디블록킹되어진 디코딩된 버전에 기초하여 발생되는, 비디오 데이터를 프로세싱하는 방법.
  14. 제 11 항에 있어서,
    상기 입력 비디오 데이터는 인터레이싱된 비디오 데이터를 포함하는, 비디오 데이터를 프로세싱하는 방법.
  15. 제 14 항에 있어서,
    상기 입력 비디오 데이터의 상기 다운스케일링된 버전을 발생시키는 것은,
    복수의 다운스케일 방향들 중 적어도 하나의 다운스케일링 방향을 결정하는 것으로서, 상기 복수의 다운스케일 방향들은 수평 다운스케일링 및 수직 다운스케일링을 포함하는, 상기 적어도 하나의 다운스케일링 방향을 결정하는 것; 및
    상기 인터레이싱된 비디오 데이터를 다운스케일링하는 것을 포함하고,
    상기 출력 비디오 데이터를 발생시키는 단계는,
    다운스케일링된 상기 인터레이싱된 비디오 데이터를 디인터레이싱하는 단계; 및
    결정된 상기 적어도 하나의 다운스케일링 방향에 따라 디인터레이싱된 상기 비디오 데이터를 스케일링하는 단계를 포함하는, 비디오 데이터를 프로세싱하는 방법.
  16. 제 14 항에 있어서,
    비디오 데이터의 상이한 해상도들을 위해 상기 입력 비디오 데이터의 제 1 및 제 2 디인터레이싱된 버전들을 생성하도록 상기 입력 비디오 데이터를 디인터레이싱하는 단계를 포함하고,
    상기 입력 비디오 데이터의 상기 다운스케일링된 버전을 발생시키는 것은,
    상기 입력 비디오 데이터의 제 1 디인터레이싱된 버전 및 상기 입력 비디오 데이터의 제 2 디인터레이싱된 버전을 수신하는 것;
    상기 입력 비디오 데이터의 상기 제 1 디인터레이싱된 버전 및 상기 제 2 디인터레이싱된 버전 중 하나를 선택하는 것; 및
    상기 입력 비디오 데이터의 선택된 디인터레이싱된 버전을 스케일링하는 것을 포함하는, 비디오 데이터를 프로세싱하는 방법.
  17. 제 11 항에 있어서,
    상기 출력 비디오 데이터의 적어도 하나의 버전을 송신하는 단계를 더 포함하는, 비디오 데이터를 프로세싱하는 방법.
  18. 제 11 항에 있어서,
    상기 다운스케일링된 버전을 발생시키는 것은 입력 비디오 이미지의 수평 차원 및 수직 차원 중 적어도 하나를 따라 선택적으로 다운스케일링하는 것을 포함하는, 비디오 데이터를 프로세싱하는 방법.
  19. 제 11 항에 있어서,
    상기 다운스케일링된 버전을 발생시키는 것은 타겟 디스플레이의 차원들, 상기 타겟 디스플레이에 데이터를 송신하기 위해 이용가능한 대역폭, 및 자원 이용가능성에 적어도 부분적으로 기초하는, 비디오 데이터를 프로세싱하는 방법.
  20. 제 19 항에 있어서,
    상기 자원 이용가능성은 전력, 프로세싱, 메모리, 및 버스 이용가능성 중 적어도 하나를 포함하는, 비디오 데이터를 프로세싱하는 방법.
  21. 비디오 데이터를 프로세싱하기 위한 전자 디바이스로서,
    입력 비디오 데이터를 수신하는 수단; 및
    출력 비디오 데이터를 발생시키는 수단을 포함하고,
    출력 비디오 데이터를 발생시키는 것은,
    디블록킹된 비디오 데이터를 제공하는 것; 및
    상기 입력 비디오 데이터를 선택적으로 인코딩하고 디코딩하는 것을 포함하며,
    상기 입력 비디오 데이터의 다운스케일링된 버전은 상기 디블록킹된 비디오 데이터에 기초하고 타겟 디스플레이 디바이스에 기초하여 상기 인코딩 또는 디코딩 중에 발생되고, 상기 입력 비디오 데이터의 상기 다운스케일링된 버전은 상기 타겟 디스플레이 디바이스와 동일한 해상도를 가지며, 상기 출력 비디오 데이터는 상기 입력 비디오 데이터의 상기 다운스케일링된 버전을 포함하는, 비디오 데이터를 프로세싱하기 위한 전자 디바이스.
  22. 장치의 프로세서에 의해 실행가능한 명령들을 포함하는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 상기 장치로 하여금,
    입력 비디오 데이터를 수신하게 하고;
    출력 비디오 데이터를 발생시키게 하며,
    상기 출력 비디오 데이터를 발생시키는 것은,
    디블록킹된 비디오 데이터를 제공하는 것; 및
    상기 입력 비디오 데이터를 선택적으로 인코딩하고 디코딩하는 것을 포함하고,
    상기 입력 비디오 데이터의 다운스케일링된 버전은 상기 디블록킹된 비디오 데이터에 기초하고 타겟 디스플레이 디바이스에 기초하여 상기 인코딩 또는 디코딩 중에 발생되며, 상기 입력 비디오 데이터의 상기 다운스케일링된 버전은 상기 타겟 디스플레이 디바이스와 동일한 해상도를 가지고, 상기 출력 비디오 데이터는 상기 입력 비디오 데이터의 상기 다운스케일링된 버전을 포함하는, 컴퓨터 판독가능 저장 매체.
KR1020157027696A 2013-03-13 2014-02-26 비디오 데이터의 통합된 공간 다운샘플링 KR102281154B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/801,220 US9432614B2 (en) 2013-03-13 2013-03-13 Integrated downscale in video core
US13/801,220 2013-03-13
PCT/US2014/018736 WO2014163903A1 (en) 2013-03-13 2014-02-26 Integrated spatial downsampling of video data

Publications (2)

Publication Number Publication Date
KR20150127166A KR20150127166A (ko) 2015-11-16
KR102281154B1 true KR102281154B1 (ko) 2021-07-22

Family

ID=50391370

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157027696A KR102281154B1 (ko) 2013-03-13 2014-02-26 비디오 데이터의 통합된 공간 다운샘플링

Country Status (6)

Country Link
US (1) US9432614B2 (ko)
EP (1) EP2974315A1 (ko)
JP (1) JP6306141B2 (ko)
KR (1) KR102281154B1 (ko)
CN (1) CN105144717B (ko)
WO (1) WO2014163903A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180118344A1 (en) * 2016-10-31 2018-05-03 Innov8 Cabin Solutions, LLC Aircraft personal content system
US10747265B2 (en) 2017-07-10 2020-08-18 Innov8 Cabin Solutions, LLC Wall mount system for personal electronic devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998027741A1 (en) 1996-12-18 1998-06-25 Thomson Consumer Electronics, Inc. Parallel decoding of interleaved data streams within an mpeg decoder
US20080043831A1 (en) 2006-08-17 2008-02-21 Sriram Sethuraman A technique for transcoding mpeg-2 / mpeg-4 bitstream to h.264 bitstream
US20100246676A1 (en) 2009-03-24 2010-09-30 ArcSoft (Shanghai) Technology Co., Ltd. Method of downscale decoding MPEG-2 video

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10145817A (ja) * 1996-11-12 1998-05-29 Hitachi Ltd 画像信号のip変換およびフォ−マット変換の信号処理回路
US6157396A (en) * 1999-02-16 2000-12-05 Pixonics Llc System and method for using bitstream information to process images for use in digital display systems
US6768774B1 (en) 1998-11-09 2004-07-27 Broadcom Corporation Video and graphics system with video scaling
US8698840B2 (en) * 1999-03-05 2014-04-15 Csr Technology Inc. Method and apparatus for processing video and graphics data to create a composite output image having independent and separate layers of video and graphics display planes
US20030043918A1 (en) * 1999-12-20 2003-03-06 Jiang Hong H. Method and apparatus for performing video image decoding
US7215708B2 (en) * 2001-05-22 2007-05-08 Koninklijke Philips Electronics N.V. Resolution downscaling of video images
US7379496B2 (en) 2002-09-04 2008-05-27 Microsoft Corporation Multi-resolution video coding and decoding
US8159548B2 (en) * 2003-01-30 2012-04-17 Qualcomm Incorporated Modular architecture having reusable front end for processing digital video data
US20050175099A1 (en) * 2004-02-06 2005-08-11 Nokia Corporation Transcoder and associated system, method and computer program product for low-complexity reduced resolution transcoding
US20050255913A1 (en) * 2004-05-13 2005-11-17 Eastman Kodak Company Collectible display device
US7630568B2 (en) * 2005-03-25 2009-12-08 Microsoft Corporation System and method for low-resolution signal rendering from a hierarchical transform representation
US20070058713A1 (en) 2005-09-14 2007-03-15 Microsoft Corporation Arbitrary resolution change downsizing decoder
JP2007174403A (ja) * 2005-12-22 2007-07-05 Toshiba Corp 映像処理装置および映像処理方法
US8250618B2 (en) 2006-09-18 2012-08-21 Elemental Technologies, Inc. Real-time network adaptive digital video encoding/decoding
US8711901B2 (en) * 2007-03-12 2014-04-29 Vixs Systems, Inc. Video processing system and device with encoding and decoding modes and method for use therewith
JP2009010586A (ja) * 2007-06-27 2009-01-15 Fujitsu Microelectronics Ltd トランスコーダおよびトランスコード方法
US20090320081A1 (en) 2008-06-24 2009-12-24 Chui Charles K Providing and Displaying Video at Multiple Resolution and Quality Levels
JPWO2010092740A1 (ja) * 2009-02-10 2012-08-16 パナソニック株式会社 画像処理装置、画像処理方法、プログラムおよび集積回路
JP2011147040A (ja) * 2010-01-18 2011-07-28 Hitachi Ltd 放送再配信装置
US8847968B2 (en) * 2011-07-12 2014-09-30 Qualcomm Incorporated Displaying static images

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998027741A1 (en) 1996-12-18 1998-06-25 Thomson Consumer Electronics, Inc. Parallel decoding of interleaved data streams within an mpeg decoder
US20080043831A1 (en) 2006-08-17 2008-02-21 Sriram Sethuraman A technique for transcoding mpeg-2 / mpeg-4 bitstream to h.264 bitstream
US20100246676A1 (en) 2009-03-24 2010-09-30 ArcSoft (Shanghai) Technology Co., Ltd. Method of downscale decoding MPEG-2 video

Also Published As

Publication number Publication date
US9432614B2 (en) 2016-08-30
KR20150127166A (ko) 2015-11-16
CN105144717A (zh) 2015-12-09
CN105144717B (zh) 2018-06-01
EP2974315A1 (en) 2016-01-20
JP2016515356A (ja) 2016-05-26
WO2014163903A1 (en) 2014-10-09
US20140269895A1 (en) 2014-09-18
JP6306141B2 (ja) 2018-04-04

Similar Documents

Publication Publication Date Title
US11765343B2 (en) Inter prediction method and apparatus
US8780991B2 (en) Motion estimation in enhancement layers in video encoding
US20210227243A1 (en) Interpolation filter training method and apparatus, video picture encoding and decoding method, and encoder and decoder
US8860781B2 (en) Texture compression in a video decoder for efficient 2D-3D rendering
KR101168843B1 (ko) 수평 및 수직 대칭에 기초한 필터 계수들의 비디오 코딩
US9154807B2 (en) Inclusion of switched interpolation filter coefficients in a compressed bit-stream
EP4322531A2 (en) An encoder, a decoder and corresponding methods harmonizing matrix-based intra prediction and secoundary core selection
KR102549670B1 (ko) 크로마 블록 예측 방법 및 디바이스
CN112995663B (zh) 视频编码的方法、视频解码的方法及相应装置
US20190141350A1 (en) System and method for non-uniform video coding
KR20210129729A (ko) 인트라-예측을 위한 방법 및 장치
JP2022511873A (ja) ビデオピクチャの復号および符号化の方法ならびに装置
JP2023126795A (ja) ビデオコーディングにおけるクロマイントラ予測のための方法及び装置
US9275434B2 (en) Phase control multi-tap downscale filter
KR102281154B1 (ko) 비디오 데이터의 통합된 공간 다운샘플링
US20230017934A1 (en) Image encoding and decoding methods and apparatuses
EP3912342B1 (en) An encoder, a decoder and corresponding methods using intra mode coding for intra prediction
US11770522B2 (en) Picture display order determining method and apparatus, and video coding device
KR102113759B1 (ko) 다채널 부화면 처리장치 및 처리방법
CN114650425A (zh) 视频帧格式转换方法和装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant