본 발명의 상술된 실시 형태 및 다른 실시 형태, 특징 및 장점은 다음의 도 면과 함께 설명되는, 다음의 상세한 설명으로부터 더 명확하게 될 것이다.
상기 요구는, 다음의 상세한 설명이, 도면과 함께 설명되는 바와 같이, 결정된 유효 대역폭에 따라서 인코딩 비트 레이트를 동적으로 변화시키는데 사용하는 방법, 장치 및 시스템의 제공을 통하여 적어도 부분적으로 맞추어진다.
도 1은 고정 대역폭의 단순화된 도식적 설명을 나타낸다.
도 2는 본 실시예에 따라서, 측정된 유효 통신 대역폭 인벨로프에 의하여 지시되는 인코딩된 비트 레이트의 동적 할당의 일 예를 단순화된 도시적 설명으로 묘사한다;
도 3은 일 실시예에 따르는, 분배된, 무선 통신 시스템의 개략적 블록도를 나타낸다.
도 4 는 하나의 중앙 제어기와 단일 원격 장치만을 보여주는 시스템의 개략적 블록도를 나타낸다.
도 5 는 실시예들에 따르는 인코더의 개략적 블록도를 나타낸다.
도 6 은 실시예들에 따르는 동적 비트 레이트 인코딩을 제공하는 프로세스의 개략적 흐름도를 나타낸다.
도 7 은 인코더 비트 레이트를 동적으로 조정하기 위한 프로세스의 개략적 흐름도를 나타낸다.
대응하는 참조 문자는 도면 중 여러 도면에 걸쳐 대응하는 구성성분을 가리킨다. 도면에서의 구성요소는 단순하고 명료하게 설명된 것이며, 반드시 일정한 비율의 크기로 나타낼 필요가 없다는 것은 당업자에게는 자명할 것이다. 예를 들 어, 도면에서의 몇 개의 구성요소들의 크기는 본 발명의 다양한 실시예의 이해의 증진을 돕기 위하여 다른 구성요소에 비하여 크게 확대되어 질 수도 있다. 또한 상업적으로 실현 가능한 실시예에서 유용하거나 필수적인, 공통적으로 잘 이해되는 구성요소는 본 발명의 다양한 실시예의 명백한 도면을 얻기 위하여 일반적으로 나타내지 않는다.
상세한 설명
본 실시예는 근거리 멀티미디어 분배를 원격 멀티미디어 장치에 제공할 때 사용하는 방법, 장치 및 시스템을 제공한다. 또한, 본 실시예는 멀티미디어 신호가 원격 멀티미디어 장치와 무선으로 통신할 때 비트 레이트의 동적 할당을 제공한다. 이 비트 레이트는, 대역폭이 변화할 때, 유효 대역폭을 충분히 이용하도록 조정된다.
또한, 본 실시예는 유효 대역폭을 모니터하고 데이터 처리량 및/또는 신호 품질을 더욱 극대화하도록 인코딩 비트 레이트를 조정한다. 결국, 본 실시예는 더 정확하고 더 나은 신호 품질을, 원격 수신 장치 또는 장치들에 제공한다. 이 실시예는 유효 대역폭의 이용을 또한 최대화한다. 유효 대역폭의 감소가 검출될 때, 본 실시예는 통신되는 비트의 양을 감소시키기 위하여, 인코딩 비트 레이트를 동적으로 감소시킬 수 있다. 또한, 몇몇 실시예는 유효 대역폭이 증가 되는 때를 검출한다. 대역폭이 증가될 때, 이들 실시예는 더 정확하고 강화되며 및/또는 부가적인 데이터를 통신하도록 인코딩 비트 레이트를 증가시킬 수 있다. 그러므로, 이들 실시예들은 대역폭이 변동할 때 검출된, 유효 대역폭을 충분히 이용하도록 비트 레 이트를 동적으로 조정한다.
가정 내의 무선, 멀티미디어 시스템과 같은 무선 멀티미디어 시스템에서, 작동 중에 대역폭의 변동을 경험하는 것은 일반적인 일이다. 예를 들어, 어떤 것(인간, 애완동물 등)이 전송 장치와 수신 장치 사이를 통과할 수 있다. 이것은 무선으로 통신하는 데이터에서 이용될 수 있는 유효 대역폭에 좋지않은 영향을 미칠 수도 있다. 종래의 시스템의 경우, 종래의 시스템은 고정된 비트 레이트를 사용하기 때문에, 이러한 감소된 대역폭은, 신호의 통신에 역효과를 미칠 수 있다. 종래 시스템은 일정한 비트 레이트로 인코딩을 제공하기 때문에, 인코딩된 비트의 양은 유효 대역폭을 초과할 수 있고, 데이터를 적체시키거나/적체시키고 궁극적으로 수신된 신호에 악영향을 미칠 수 있다. 종래의 시스템은, MPEG 인코더와 같이, 한 번의 설정에 의하여 제어되어, 파라미터를 보내는 인코더를 일반적으로 사용한다. 종래의 인코더는, 고정된 비트 레이트 파라미터를 방출한다. 이 파라미터가 설정되는 경우, 이 인코더는 초기 및/또는 시작할 때, 한번 이 비트 레이트 파라미터를 체크하고, 인코딩 레이트를 설정하고 하나의 고정된 레이트로 계속 작동한다. 또한, 본 실시예는 대역폭에서의 변화를 검출하고 유효 대역폭의 사용을 더 최대화하도록 비트 레이트를 동적으로 조정한다.
몇몇 종래 시스템들은 가변 비트 레이트를 제공하는 것을 제안한다. 그러나, 이들 시스템은 검출된 유효 대역폭 인벨로프에 따라서 비트 레이트를 동적으로 조정하지 않는다. 예를 들어, 후앙 등에 의한 미국 특허 번호 5,617,145 호는 정의된 고정된 대역폭의 사용을 개시한다. 고정된 대역폭의 유효 비트 레이트는 두 개의 데이터 신호(오디오 및 비디오) 사이에서 분배된다. 도 1은 후앙 등의 특허에 따른 고정 대역폭(112)의 단순화된 도식적 설명을 나타낸다. 이 유효 고정 대역폭(112)은 오디오 신호(114) 및 비디오 신호(116)로 분할된다.
후앙 특허는, 신호를 고정된 레이트로 인코드하며, 한 프레임의 고정된 대역폭 중 얼마만큼이 오디오 신호에 할당되었는지에 의존하여, 얼마만큼의 인코딩된 비디오 신호가 그 프레임의 고정된 대역폭의 나머지에 사용되는지를 결정한다. 예를 들어, 소리 및/또는 노이즈가 최소이거나 또는 없는 프레임에서, 오디오 신호는 여분의 사용되지 않는 대역폭을 그대로 두고 크게 압축할 수 있다. 인코딩된 비디오 신호의 양은 그 프레임에 대한 고정 대역폭을 채우는데 사용된다. 유사하게 많은 양의 오디오가 있는 시끄러운 장면에서는, 고정된 대역폭의 많은 부분을 오디오가 차지하고, 인코딩된 비디오에 사용가능한 고정 대역폭의 양이 감소된다. 후앙 등은 두 개의 신호, 즉 오디오 및 비디오로 분할되는 일정한 비트 레이트를 사용한다.
본 실시예는 환경 또는 다른 요소에 의하여 대역폭의 양이 변화하는 문제점에 주목한다. 또한, 후앙 등은 고정되고 정의된 대역폭에서 데이터의 양을 최대화하도록 시도한다. 도 2는 본 발명에 따라서 시간상에서 변화하는 대역폭 인벨로프(212)와 인코딩된 비트 레이트(210)의 동적 할당을 단순화된 도시적 설명으로 나타낸다. 이 인코딩된 비트 레이트(210)는, 대역폭이 시간에 따라 변동하기 때문에, 측정된 유효 통신 대역폭 인벨로프(212)에 따라서 동적으로 할당된다. 예를 들어, 참조 번호 214로 지시되는 임의의 시간 주기 동안에는, 대역폭이 최대가 된 다. 이와 같이, 본 실시예는 (참조번호 216에 의하여 통상적으로 지시된) 최대 인코딩 비트 레이트를 제공한다. 유사하게, 유효 대역폭이 최소로 감소 될 때, 본 실시예는 인코딩 비트 레이트를 최소 레벨로 감소시킨다.
대역폭은 단일 신호로 정의될 수 있거나 또는 두 개 이상의 신호로 분리될 수 있다. 두 개 이상의 신호로 할당될 경우, 대역폭(212)은 동일하게 분리되거나/분리되고 어떤 가중 기준에 의하여 정의된 것으로 분리될 수 있다. 몇몇 실시예에서는, 하나의 제1 신호는 그 신호에 할당된 대역폭을 완전히 사용하지 않으며, 제2 신호가 제1 신호의 할당된 대역폭의 사용하지 않는 부분을 사용할 수 있다. 또한, 하나 이상의 신호의 각각의 인코딩은 측정된 대역폭 인벨로프(212)에 따라서 동적으로 변화된다.
개인 비디오 레코더(예를들어, TivoTM, ReplayTM, DirecTVTM 및 다른 레코더)와 같은, 인코더를 사용하는 임의의 멀티미디어 시스템은, 인코딩 레이트를 설정할 수 있다. 그러나 이들 인코딩 레이트는 일반적으로 기록 당 한번 설정되고 그 단일 레이트는 기록 전체에 걸쳐 사용된다. 예를 들어, 개인 비디오 기록 장치는 4 개의 가능한 품질 레벨(즉, 최저 메모리에서 최고 품질) 중 하나에서 기록을 제공할 수 있다. 사용자는 기록 품질을 선택하고, 개인 비디오 기록 장치는 유효 메모리 및/또는 기록 시간에 따라서 사용되는 대역폭의 양을 결정할 수 있다. 대역폭이 결정되면, 개인 비디오 레코더는 고정 인코딩 레이트 파라미터를 설정한다. 개인 비디오 레코더의 인코더는 기록 바로 전에 레이트 파라미터를 체크하고, 인코더 비트 레이트는 한 번 설정된다. 이 레이트가 설정되고, 그러면 이 레이트는 프로그램/레코딩이 행해지는 동안은 변화되지 않는다. 이 인코더는 한번 설정되고 외부 영향없이 작동한다.
또한, 본 실시예는 유효 대역폭을 모니터하고, 유효 대역폭이 변동할 때, 인코딩 비트 레이트를 조정한다. 이와 같이, 몇몇 실시예는 신호 수신을 더 최대화하도록 비트 레이트의 연속적인 조정을 제공한다. 몇몇 실시예에서는, 비트 레이트는, 모든 프레임마다 한 번, 하나 거른 프레임마다 한 번, 또는 실현을 단순화하고, 잠재적으로 급격한 비트 레이트 변화를 줄이기 위한 다른 유사한 주기로 변화될 수 있다. 또한, 몇몇 실시예에서는, 비트 레이트의 변화를 개시하기 전에, 그 대역폭의 변화가 변화된 대역폭 임계값을 초과하는지를 결정한다. 이것은 비트 레이트의 급격한 변화를 줄일 수 있고, 작은 변화가 미소한 결과를 가질 경우에는, 비트 레이트 변화를 회피할 수 있다. 유사하게, 히스테리시스가 인코딩 비트 레이트의 급격한 시프팅(shifting)을 감소시키도록 사용될 수 있다.
또한, 본 실시예는 정의된 인코딩 인벨로프에서의 변화를 제공한다. 인코딩 인벨로프는, 결정된 유효 대역폭에 따라서, 최대 인코딩 레이트와 최소 인코딩 레이트를 가지고 정의될 수 있다. 이 인벨로프는, 인코더로, 정의된 인코딩 인벨로프내에서의 부조정을 위한 어느 정도의 여지를 제공하여 신호 품질을 더욱 최적화한다. 또한, MPEG 시스템과 같은, 종래의 어떤 시스템은, 인코딩 인벨로프가 정의되도록 허여하지만, 이 인벨로프는 고정되어 있다. 비트 레이트는, 한정되고 고정된 인벨로프 내에서 최소한도로 변화될 수도 있으며, 여기서 최대 및 최소 비트 레 이트가 설정된다. 인코더는 이들 고정된 한계 내에서 작동하고. 최대 및 최소 인코딩 레이트는 변화하지 않는다.
그러나, 본 실시예는 인코딩 인벨로프의 동적 조정을 제공한다. 최대 및/또는 최소 인코딩 레이트는, 검출된 유효 대역폭에 의존하여, 증가 또는 감소로 조정될 수 있다. 이 인코더는, 인코딩 범위 내에서 인코딩될 수 있으며, 그 범위는 검출된 대역폭의 변동에 따라서 잠재적으로 변화된다.
종래의 어떤 인코더는 인코드될 데이터의 멀티패스 및/또는 분석을 하도록 설계된다. 이것은, 데이터가 어떻게 변화되는지를 인코더가 볼 수 있도록 한다. 데이터가 어떻게 변화되는지를 인지함으로써, 이 인코더는 비트 할당을 최적화할 수 있으며, 복합 인코딩을 이용할 수 있다. 이 인코더는 실시간 시스템으로 작동할 수 없다. 실시간 인코딩은, 멀티패스를 허용하는 프로세싱을 실행할 충분한 시간이 없기 때문에, 그런 인코딩 방법을 사용할 수 없다.
본 실시예는, 데이터의 멀티패스를 실행할 필요없이 실시간 비디오 스트림이 사용될 수 있다. 이 실시예는, 작동중에, 비트 레이트를 선택적으로 변화시켜서, 하나 이상의 원격장치와 무선으로 통신 되는 실시간 데이터 신호의 인코딩을 더욱 최적화한다.
802.11와 같은, 무선 통신 방법은, 수신된 신호에서 오류를 검출할 경우, 수신 장치로 데이터의 재전송을 고려한다. 수신 장치가 프레임에서 오류를 검출할 경우, 수신 장치는 적어도 해당 프레임의 재전송을 요구한다. 실시간 스트리밍 비디오는 재전송을 고려하는 시간을 갖지 않는다. 실시간 스트리밍 비디오 및/또는 오디오에 있어서, 오류를 검출하여 재전송을 요구할 때까지, 멀티미디어 데이터는 진행되어서 재전송되는 데이터는 더 이상 현재가 아니며, 사용될 수 없다. 예를 들어, 비디오 신호에 있어서, 수신 장치가 오류를 검출하여, 재전송을 요구할 때까지, 비디오 데이터는 새로운 장면으로 진행되어서 재전송된 데이터는 현재의 프레임을 오염시키지 않고서는 표시될 수 없다. 이와 같이, 멀티미디어 데이터의 정확한 통신은 멀티미디어 분배 시스템에 민감하게 된다. 본 실시예는 실시간 데이터 통신을 갖는 수신 장치에 의하여 수신된 데이터의 정확도를 더욱 강화시키기 위하여 비트 레이트를 동적으로 조정함으로써 유효 대역폭의 사용을 더욱 최대화하는 능력을 제공한다.
도 3은 일 실시예에 따르는 분배된, 무선 통신 시스템(310)의 개략 블록도를 나타낸다. 통신시스템(310)은, 예를 들어, 근거리 또는 원거리 멀티미디어 데이터(케이블 TV, 위성 TV, PPV(per-per-view) 영화, 인터넷 데이터/오디오/비디오, 영화 DVD, 음악 CD, 소프트웨어, 전자 게임 및 다른 유사한 멀티미디어 등)를 액세스하고, 하나 이상의 사용자가 그 데이터를 액세스하도록 허용하는 원격 장치(314-317)로 그 데이터를 유선 또는 무선으로 분배하는 가정 내의 무선, 멀티미디어 분산 시스템으로서 사용될 수 있다. 시스템(310)은 데이터를 액세스하고 분배하는 중앙 제어기(312)를 포함한다. 예를 들어, 중앙 제어기는 컴퓨터, 프로세서, 서버, 셋톱 박스 또는 멀티미디어 데이터를 수신하고 분배하도록 구성될 수 있는 다른 유사한 장치 또는 장치의 조합일 수 있다.
몇몇 실시예에서, 중앙 제어기(312)는 하나 이상의 외부 네트워크(320)와 연 결되어서, 그 네트워크로부터 데이터를 수신 및/또는 검색할 수 있다. 네트워크는 케이블 TV 네트워크, 지상 통신 네트워크, 인터넷, PSTN 네트워크, 네트워크의 조합 및/또는 데이터를 수신 및/또는 검색하는 다른 유사한 네트워크일 수 있다. 몇몇 실시예에서는, 중앙 제어기는 또한 데이터를 네트워크 및/또는 네트워크(320)와 연결된 다른 장치와 통신할 수 있다. 중앙 제어기는, 안테나(322) 및 파라볼라 안테나(324)와 같이, 데이터를 수신하기 위한 다른 장치와 부가적으로 연결할 수 있다. 중앙 제어기는 RAM, ROM, CD/DVD 장치 플레이어 및 다른 유사한 메모리와 같은 메모리(326)를 부가적으로 포함할 수 있다. 메모리는 제어기에 의하여 수신된 데이터 및/또는 컨텐츠를 저장할 수 있으며, 제어기에 의하여 액세스하기 위한 데이터를 미리 저장할 수 있다(즉, DVD 상에 저장된 영화, CD 상에 저장된 음악 등).
몇몇 실시예에서, 중앙 제어기는, 셋톱 박스, 엔터테이먼트 센터, 컴퓨터, 프로세서, 서버, 장치의 조합 또는 네트워크, 지상 또는 다른 소스로/로부터 전송/수신할 수 있는 다른 장치와 같은 다른 시스템의 부분일 수 있다. 선택적으로 및/또는 부가적으로, 중앙 제어기(312)는 데이터를 수신 및/또는 전달하기 위하여 컴퓨터와 하드와이어링(hardwiring)을 통하여 직접 연결될 수 있다. 유사하게, 중앙 제어기는 CD플레이어, DVD플레이어, 전자게임 콘솔(예를 들어, 소니 PlayStationTM) 및 다른 유사한 장치와 같은 멀티미디어 플레이어 장치와 하드와이어드 될 수 있다.
통신 시스템(310)은 또한 원격 장치(314-317)를 포함한다. 원격 장치는, 다 른 원격 장치에 저장된 데이터, 제어기(312)에 저장 또는 삽입된 데이터, 및/또는 네트워크를 통하여, 또는 안테나/위성을 통하여 지상으로 또는 다른 수단을 통하여 제어기에 의하여 액세스 가능한 데이터를 사용자가 액세스하도록 허용한다. 원격 장치는, 제어기 및/또는 원격 장치의 전송 및 수신 능력에 의하여 제한된 소정의 범위 내에서, 원격 장치가 로밍(roam)되도록 허여하는 중앙 제어기(312)와 무선으로 연결될 수 있다. 원격 장치는 선택적으로 데이터를 수신하고 통신하도록 제어기와 직접 연결될 수 있다.
원격 장치는, 제어기로부터 및/또는 제어기로 데이터를 수신 및/또는 전송할 수 있는 실질적인 임의의 장치이다. 예를 들어, 원격 장치(314-317)는 텔레비전, 컴퓨터, 전자 게임 콘솔(예를들어, 소니의 PlayStationTM) 및 중앙 제어기(312)와 통신할 수 있는 다른 장치일 수 있다.
도 4는 중앙 제어기(312)와 하나의 원격 장치(314)만을 보여주는 시스템(310)의 개략 블록도를 나타내며, 여기서 중앙 제어기는 오디오 및/또는 비디오 데이터와 같은 데이터를, 표시하는 원격 장치 및/또는 원격 장치에 의하여 이용되는 그 밖의 것으로 전송하고 있다. 도 3 및 도 4를 참조하여 보면, 이 시스템(310)의 실현의 일 예는, 전송하는 중앙 제어기(312)와 수신하는 원격장치(314) 쌍이, 가정 내에서와 같이, 특정한 목적으로 물리적으로 구속된 환경 내에서 사용하는 경우일 수 있다. 중앙 제어기(312)는 하나 이상의 오디오/비디오 신호(440)를, 네트워크(320), 지상으로 안테나(322) 또는 파라볼라 안테나(324)를 통하여, DVD 플레이어 또는 다른 그런 소스와 같은 하나 이상의 소스(442)로부터 수신한다. 신호(440)는 인코더(444)로 제공된다. 일반적으로 신호(440)는, 인코더(444)로 보내지기 전에, 복조되고, 압축해제되고, 디코드되며, 및/또는 종래에 공지된 바와 같이 유사하게 처리된다. 부가적으로, 몇몇 실시예에서는, 하나 이상의 수신 신호는 하나 이상의 인코더(444)로 순방향 전송되도록 분리 및/또는 선택된다.
인코더(444)는, 제어 장치(450) 및 시스템(310)에 의하여 정의된 소정의 파라미터에 따라서, 오디오/비디오 신호(440)를 인코드한다. 또한, 인코더는 무선 통신 링크(460) 상에서 사용할 수 있는 통신 대역폭에 따라서 신호를 인코드한다. 신호의 소스 데이터(442)는, 현재 저의된 비트 할당과 부합되는, 압축화상과 같은, 압축데이터를 생성하는 다른 방법에 부가하여 공간 및 시간의 리던던시를 감소하도록 인코드 된다. 인코딩된 신호는, 무선 링크(440) 상에서 인코딩된 신호를 전송하기 위한 전송기(452)로 순방향 전송된다. 몇몇 실시예에서는, 전송기는, 부가적으로, 수신하는 원격 장치(314)에 의한 분리 비트 오류 및 짧은 버스트 오류의 정정을 허여하는 리던던시의 마진(margin)을 부가하는 오류 정정 코드로 데이터를 둘러싼다. 인코드되고 오류 정정된 데이터는 무선 링크(460) 상에서 무선으로 전송된 캐리어를 변조하기 위하여 사용된다 실질적인 임의의 변조 방식이, 데이터 밀도 및 다른 유사한 기준에 기초하여, 사용될 수 있다.
인코더는 정의된 비트 레이트에 따라서 데이터를 인코드한다. 이 정의된 비트 레이트는 제어 장치(450)에 의하여 공급된다. 비트 레이트는, 결정 및/또는 검출된 유효 통신 대역폭 인벨로프에 기초하여, 제어 장치에 의하여 결정된다. 또 한, 제어 장치(450)는 유효 대역폭 인벨로프가 변화할 때, 정의된 비트 레이트를 동적으로 제어 및/또는 조정한다. 유효 대역폭 인벨로프는, 원격 장치(413)에 의하여 공급된 데이터뿐만 아니라 제어기(312)에 의하여 수신된 통신의 신호 품질에 따라서 결정된다. 정의된 인코딩 비트 레이트는 제어 장치에 의하여 연속적으로 갱신되고, 및/또는 제어 장치는 유효 대역폭에 따라서 소정의 인코딩 비트 레이트를 주기적으로 결정하고 제공한다. 몇몇 실시예에서, 제어장치(450)는 소정의 인코딩 비트 레이트를 모든 프레임마다 한번 정의한다.
인코더(444)는 정의된 인코딩 비트 레이트를 이용하여 소정의 비트 레이트에서 소스 신호의 인코딩을 제공하도록 인코딩의 레이트를 조정한다. 또한, 인코더는 모든 프레임마다 한번, 소정수의 프레임마다 한번, 연속적으로 또는 다른 유사한 변형된 방법으로 비트 레이트를 변화시킬 수 있다. 어떤 경우에는, 대역폭이 충분한 폭이 있을 때, 제어 장치(450)는, 더 나은 정확성을 제공하는 부가 I-프레임을 인코더(444)가 인코드하도록, 명령할 수 있다. 유사하게, 제어 장치는, 데이터 오염의 심각한 충격 이후에, 컨텐츠를 리프레시하는 I-프레임을 인코더가 생성하도록 명령할 수 있다.
또한, 소스 데이터의 무선 전송은 실시간으로 발생되며, 재전송은 선택이 아니다. 인코더(444), 제어 장치(450) 및/또는 수신 장치(314)는 빠지거나 또는 오염된 데이터에 의하여 발생 되는 표시 가공성 및/또는 오류를 최소화하도록 마스킹 기술을 사용할 수 있다. 예를 들어, 제어장치(450)는 명령할 수 있고, 및/또는 수신장치(314)는 결함의 입력을 갖는 화상을 전송하기보다는 다시 받는 것을 결정할 수 있다. 바람직하게는 소스 데이터는 가능한 한 화상의 디테일 및 최대의 프레임율을 가지고 이용(예를 들어 재생)될 수 있도록, 인코드되고, 전송되고, 수신된다. 몇몇 실시예들은, 평활한 표현을 유지하고, 예를 들어 비디오 데이터의 경우, 눈으로 보기 어려울 것 같은 미세한 디그러데이션(degradations)을 사용하는 것을 시도하여 오류 보상을 제공한다. 이것은 디테일을 평활하게 하고, 리프레시율을 느리게 하는 것을 포함할 수 있다.
또한 도 3 및 도 4를 참조하면, 원격장치(314)는 무선 신호의 캐리어 에너지를 검출하고 신호 강도를 결정할 수 있는 수신기(470)를 포함한다. 몇몇 실시예에서, 수신기(470)는 신호 대 잡음비(SNR) 및/또는 신호 대 간섭비(SIR)을 부가적으로 결정한다. 신호 강도 및 SNR은 원격장치(314)의 제어 유닛(474)으로 순방향 전송될 수 있다. 수신 데이터는 페이로드(payload) 데이터(예를들어 오디오 및 비디오 데이터)를 추출하도록 복조된다. 순방향 오류 정정(FEC) 코드는 추출될 수 있으며 수신데이터를 유효화하고 부조정의 실행을 돕도록 사용될 수 있다. 신호 강도, SNR, FEC 및 다른 신호 품질 파라미터에 대한 정보는 수신 제어 유닛(474)으로 순방향 전송될 수 있다. 복조된 데이터 스트림은 디코더(472)로 순방향 전송된다. 디코더(472)는 압축된 페이로드를 처리하여 가능한 최상의 표시를 생성하도록 시도한다. 검출된 다른 컨텐츠 오류 및 포맷과 다른 통계는 수신 제어 유닛(474)으로 제공될 수 있다.
신호 강도, SNR, FEC, 수신된 신호에서의 변화, 처리 상태 및/또는 신호 품질 파라미터에 관한 정보는 수신기 제어유닛(474)에 의하여 모니터될 수 있으며 및 /또는 중앙 제어기(312)로 역통신될 수 있다. 일반적으로, 수신기 제어 유닛(474)은 수신 신호 및 처리 상태에서의 변화를 모니터한다. 만일 신호품질이 떨어지거나 또는 과대한 오류가 인지되면, 제어 유닛은 이 정보를 전송기(476)로 제공하여, 중앙 제어기(312)로 역방향 통신할 수 있도록 한다. 수신 신호 통계는 무선으로, 직접 연결을 통하여, 하드와이어 연결, 네트워크(320)을 통하여, 또는 통신의 다른 유사한 방법으로 통신될 수 있다. 중앙 제어기는 신호품질에서의 감소를 이용하여 유효 대역폭에서의 변화량을 결정한다. 이 대역폭의 변화를 인지함으로써, 중앙 제어기(312)의 제어 장치(450)는 인코더(444)의 인코딩 비트 레이트를 동적으로 감소시켜서 수신 장치(314)로 더욱 정확한 신호를 제공한다.
유사하게, 수신 장치(314)는, 대역폭의 증가의 가능성을 지시하는, 오류가 없거나 또는 최소의 오류를 갖는 신호품질의 주기를 검출할 수 있다. 이 높은 신호품질의 검출은 중앙 제어기(312)로 순방향 전송되고, 여기서 중앙 제어기는 유효 대역폭의 비례적인 증가를 결정할 수 있다. 중앙 제어기(312)는 인코딩 비트 레이트를 다시 동적으로 조정할 수 있어서, 증가된 유효 대역폭의 사용을 더욱 극대화할 수 있으며, 이것은 중앙 제어기(312)에 의하여 전송되는, 더욱 많은 데이터를 위한 공간을 허여하여서, 원격 장치(314)에서는 상응하여 더욱 나은 표시 및 오디오를 공급하게 한다. 유효 대역폭의 변화는 일반적으로 일시적이며, 이것은 환경적 노이즈(예를 들어, 진공 청소기 또는 다른 가전제품의 작동 등), 경로 혼란(예를 들어 전송기 및 수신기 사이의 보행) 및 다른 그런 조건에 의하여 발생할 수 있다.
중앙 제어기(312)의 제어 장치(450)는 신호품질 및 통계 데이터를 이용하여 무선 링크(460)의 현재 유효 대역폭을 결정한다. 결정된 유효 대역폭 인벨로프에 기초하여, 제어 장치는 수신 장치로의 데이터의 처리량을 더욱 최적화하는 인코딩 비트 레이트를 결정한다. 그런 후, 제어 장치(450)는 인코더(444)가 신호(440)의 인코딩 비트 레이트를 동적으로 조정하거나 또는 유지하도록 지시한다. 동적 조정은 실질적인 임의의 레이트로 제공될 수 있다. 몇몇 실시예에서, 조정 레이트는, 신호 품질 및/또는 통계 데이터를 제공하는 수신하는 장치의 성능에 의존한다. 몇몇 실시예에서는, 비트 레이트는, 유효 대역폭 인벨로프의 사용을 최대화하도록 한 시도에서 매 프레임마다 한 번 조정된다.
비트 레이트를 결정할 때, 제어 장치(450)는 소정의 신호품질을 강화하도록 시도된다. 일반적으로, 제어 장치(450)는 임의의 파라미터에 대하여 하나 이상의 임계값을 확립 또는 유지한다. 예를 들어, 제어 장치는 최대 비트 레이트를 이용할 수 있다. 제어기는 일반적으로 전송기 한계 및/또는 수신 장치의 성능에 의하여 정의된 최대 비트 레이트를 이용하여 데이터를 정확하게 수신 및 복조한다. 다른 임계값은 제어장치(450)에 의하여 이용될 수 있어서 수신 장치(314)로의 데이터의 정확한 통신을 유지하도록 돕는다.
제어 장치(450)는 전송기가 부가적인 FEC 비트를 포함하도록 또한 지시할 수 있는데, 이것은, 부가된 FEC 비트는 페이로드 데이터에 대하여 사용가능한 공간을 감소시키기 때문에, 이러한 지시는 유효 비트 레이트에 영향을 미친다. 유사하게, 제어 장치(450)는 비트 레이트를 더욱 최적화하기 위하여 변조 방식을 변화시키는 지시를 할 수 있다. 예를 들어 변조 방식은 256 QAM 변조 방식에서 64 QAM 변조 방식으로 전환될 수도 있으며 및/또는 64 QAM에서 256 QAM으로 전환될 수도 있다. 또한, 이것은 페이로드 데이터에 대하여 사용가능한 공간의 양에 영향을 미칠 수 있다.
프레임당 페이로드 데이터의 양을 변화시키는 경우, 부가적으로 제어장치(450)는 인코딩 파라미터를 동적으로 변화시킬 수 있다. 이전의 무선 통신 시스템에서는, 프레임에서 프레임까지의 변화의 수에 무관하게, 인코딩을 위한 비트의 고정 개수의 비트를 사용하도록, 고정 비트 레이트가 일반적으로 사용되었다. 본 실시예는 동적으로 변화된 비트 레이트를 제공하는 더욱 효과적인 방법을 채용한다. 몇몇 실시예에서는, 제어장치(450)는, 설계된 비트 레이트에서의 각 변화에 대하여 타겟 공칭 비트 레이트 및 최대 상승 비트 레이트를 특정화할 수 있다. 비디오 데이터에서의 새로운 장면과 같이, 뚜렷한 변화를 갖는 프레임은, 일반적으로 더욱 많은 비트를 사용하는 반면에, 이전의 프레임으로부터 변화가 적은 프레임은 적은 비트로 인코드 될 수 있다. 몇몇 실시예에서는, 전송기와 함께, 하나 이상의 선입선출 장치(FIFO;480)를 이용할 수 있다. 또한 FIFO(482)는 수신 장치(314) 내에 포함될 수 있다. FIFO는 전송 레이트 변화를 좀 더 매끄럽게 하기 위하여 사용될 수 있다.
제어 장치(450)는, 동적 비트 레이트 할당을 결정할 때, 부가 제어 정보를 위하여 FIFO(480)을 이용할 수 있다. 몇몇 실시예에서는, 인코더는 페이로드 전송의 제1 비트 레이트에서 데이터 스트림을 생성하고 그 스트림을 FIFO로 통과시킨 다. 전송기는 결정된 실질의 전송 레이트에서 FIFO로부터 데이터를 얻는다. 제어장치(450)가 전송 비트 레이트를 압박하는 경우(예를 들어 더 많은 FEC 비트를 부가하거나, 다른 변조를 실현하거나 하는 등)에, 전송 비트 레이트는 데이터가 FIFO로 순방향 전송되는 레이트보다 낮게 될 수 있기 때문에, FIFO는 채워지기 시작할 수도 있다.
제어장치는 FIFO와 연결되며, FIFO가 채워지는 때를 검출할 수 있다. FIFO가 채워지는 것을 검출할 때, 제어기는 인코더(444)가 더 적은 비트를 사용하도록 명령할 수 있다. 또한, 데이터 전송을 더욱 신뢰할 수 있도록, 제어장치는, 전송 대역폭을 감소시키도록 전송기에 명령을 보내기 때문에, FIFO가 채워질 것이라는 것을 제어장치는 예측할 수 있다. 제어 장치는, 인코더(444)가 비트 레이트를 동적으로 조정하도록 부가적으로 명령할 수 있다. 결국, FIFO로 공급되는 페이로드 데이터의 양은 감소된다.
감소된 인코팅 비트 레이트에서, FIFO는, 전송 레이트를 증가시키기 위한 조정 이후에, 비우기 시작할 수도 있다. 이와 같이, 제어 장치(450)는, 또한 인코더가 더 많은 비트를 사용하여 인코딩 비트 레이트를 증가시키도록 명령할 수 있다. 상술된 바와 같이, 예를 들어, 대역폭이 충분한 폭을 갖고, FIFO가 너무 가득 차지 않고 또는 소정의 임계값 아래에 있지도 않은 경우, 부가적인 I-프레임은 더 나은 정확도를 제공 및/또는 데이터 정정을 제공하도록 발생될 수 있다. 바람직한 실시예에서, 전송 및 수신 FIFO(480, 482)의 양자는 각각 대기시간을 최소화시키기 위하여 거의 빈 상태에서 작동한다. 증가된 FIFO 충전 레벨은 잠재된 데이터 버스트 를 제거하기 위하여 사용될 수 있으며, 변조 방식에서의 급격한 변화에 필요한 버퍼링을 제공하기 위하여 사용될 수 있다.
도 5는 실시예에 따른 인코더(510)의 개략 블록도를 나타낸다. 인코더는 인코더 제어기 및/또는 프로세서(512), 하나 이상의 소스 신호를 인코드하는 인코딩 장치(514) 및 인코딩 장치가 작동하는 비트 레이트를 정의하는 비트 레이트 할당기(516)를 포함할 수 있다. 몇몇 실시예에서, 인코더(510)는 프로그램, 프로세싱 파라미터, 소정의 비트 레이트 및 다른 유사한 프로그램, 데이터 및/또는 파라미터을 저장하는 메모리 및/또는 레지스터(520)를 포함한다.
인코더(510)는 소스 입력(522) 및 비트 레이트 입력(524)을 포함한다. 소스 입력은 데이터 소스(442; 도 4 참조)와 연결하여 인코드될 소스 데이터를 수신한다. 소스 데이터는 인코드될 실질적인 임의의 데이터일 수 있다. 비트 레이트 입력(524)은 제어장치(450;도 3 참조)와 연결된다. 제어 장치는 소정의 인코딩 비트 레이트를 비트 레이트 입력(524)으로 공급한다. 비트 레이트 입력은 인코더 제어기(512) 및/또는 비트 레이트 할당기(516)와 연결된다. 인코더 제어기 또는 비트 레이트 할당기는, 제어 장치(450)로부터 수신된 소정의 비트 레이트에 따라서 인코딩된 비트 레이트를 최대화하도록, 작동해야 하는 레이트를 인코딩 장치(514)가 결정할 수 있다.
소스 입력(522)은 인코딩 장치와 연결되어서 소스 데이터를 전달한다. 인코딩 장치는, 비트 레이트 할당기(516)에 의하여 공급되어진 결정된 인코딩 비트 레이트에 따라서, 소스 데이터를 수신하고 소스 데이터를 인코드한다. 인코딩 장치 는 FIFO(480) 및/또는 전송기(452)로 공급될 수 있는 인코딩된 출력(530)을 생성한다.
도 6은 실시예에 따른 동적 비트 레이트 인코딩을 제공하기 위한 프로세스(610)의 개략적 흐름도를 나타낸다. 단계 612에서, 초기 파라미터는 제어기(312)에 의하여 확립된다. 초기 파라미터는, 인코딩 비트 레이트, 전송 비트 레이트, 변조방식, 소정의 비트 할당 및 다른 유사한 파라미터를 포함할 수 있다. 파라미터는, 디폴트 파라미터에 기초하여, 제어기 및/또는 데이터의 무선 분배를 위한 이전의 작동 및 조건에 의하여 결정될 수 있다. 단계 614에서, 압축되지 않은 소스 데이터(예를 들어 720*480 화소, 30fps, 화소당 10 비트)가 인코딩되며, 전송이 초기 파라미터에 따라서 시작된다. 인코딩은 공간 및 시간의 리던던시를 감소시키거나 또는 제거시킨다. 몇몇 실시예에서는, 소정의 비트 할당에 맞춘 압축된 화상을 생성하는 부가 방법이 있을 수 있다.
단계 616에서, 캐리어 신호는 소정의 변조 방식에 따라서 인코딩된 데이터 신호에 의하여 변조된다. 몇몇 실시예에서, 인코딩된 비트 스트림은, 변조 이전에, 수신기에 의한 분리 비트 오류 및 짧은 버스트 오류의 정정을 허용하는, 리던던시의 마진을 부가하는 오류 정정 코드로 또한 싸여질 수 있다. 이와 같이, 단계 616은 오류 정정 코딩을 제공할 수 있으며, 무선 링크, 물리적 링크(예를 들어 트위스트 쌍, 광섬유, 동축케이블 등), 다른 링크 또는 그의 조합상에서, 전송을 위한 소정의 변조 방식에 따라서, 인코드되고 압축되며 순방향 오류 정정(FEC)으로 싸여진 데이터에 의하여 캐리어 신호를 변조할 수 있다. 실질적으로 임의의 변조 방식은 데이터 밀도에 의존하여 사용될 수 있다.
단계 620에서, 신호 통계는, 원격 장치에 의하여 수신된 신호 품질과 관련하여, 원격 장치로부터 수신된다. 통계는 신호 강도, 신호 대 잡음비(SNR), 순방향 오류 정정(FEC)에 기초하는 정정, 포맷 및 다른 컨텐츠 오류 및 실질적으로 임의의 다른 신호품질 파라미터를 포함할 수 있다. 임의의 실시예에서는, 통계는 신호품질이 품질 임계값보다 아래로 떨어질 때, 과도한 오류가 인지될 때 및 기타의 다른 상황일 때, 단지 수신된다. 또한, 원격 수신 장치는, 신호품질이 품질 임계값 아래로 떨어질 때, 제어기(312)로 간단하게 신호를 보낼 수도 있다. 또한, 통계는 높거나 또는 좋은 신호 품질이 검출될 때, 제어기(312)로 제공될 수 있다. 예를 들어, 바람직한 통계는, 부가 데이터를 위한 공간이 존재하는 것을 지시하는, 최소의 오류를 갖거나 또는 오류가 없는 신호품질의 주기 이후에 제공되며, 이것은 상응하여 더 좋은 표시 및/또는 소리를 제공할 수 있다.
몇몇 실시예는, 인코더 이후에 FIFO를 포함한다(도 4 참조). 인코딩된 신호는, 예를 들어 FIFO에 의하여 버퍼드되고, 전송율에 따라서 전송기에 의하여 버퍼/FIFO로부터 회수된다. 도 6을 다시 참조하여 보면, 단계 622에서, FIFO의 충진 레벨 통계는, 체크 될 수 있으며, 소정의 전송률 및/또는 인코딩 레이트를 결정할 때 또한 사용될 수 있다.
단계 624에서, 전송률이, 통계에 기초하여 변화되어야만 하는지 및/또는 변화될 수 있는지, 만일 FEC 비트가 변화되어야만 한다면, 그 수와 변조 방식이 변화되어야만 하는지 및/또는 변화될 수 있는지를 결정한다. 전송률이 변화되어야 하 는 것으로 결정되면, 전송률을 얼마만큼 조정할 것인지를 또한 결정한다. 유사하게, FEC 비트의 수가 변화되어야 하는 것으로 결정되면, 사용된 FEC 비트의 양의 변화 또한 결정된다. 예를 들어, 부가적인 FEC 비트가, 부가된 비트의 수와 신호의 정확성을 증가시키기 위하여 사용되어야 하는지를 결정한다. 변조 방식에서의 변화의 일 예는 256QAM에서 64QAM으로 변화하는 것에 의하여 행해질 수 있다. 다른 유사한 단계는 데이터 신호의 전송 및 궁극적인 수신을 더 최적화하기 위하여 포함될 수 있다. FEC 비트 및/또는 변조 방식의 변경은, 전송에서 페이로드 데이터를 위하여 사용할 수 있는 공간을 감소시킨다.
단계 626에서, 전송 파라미터가 변경되었는지의 여부를 결정한다. 전송 파라미터가 변경되지 않았다면, 프로세스는 단계 660으로 진행된다. 전송 파라미터가 변경되었다면, 페이로드의 양의 변화가 결정되는 단계 630으로 진행된다. 단계 632에서, 페이로드에서의 변화가, 인코딩 비트 레이트를 조정하는 요구를 발생시키기에 충분한지를 결정한다. 변화가 요구되면, 인코더 비트 레이트에서의 변화의 양을, 페이로드의 양의 변화에 기초하여 결정하는 단계 634로 진행된다. 인코더 비트 레이트에 대한 변화가, 변경된 전송 파라미터에 의하여 요구되지 않으면, 프로세스는 단계 660으로 진행된다.
단계 636에서, 통계 데이터, FIFO 충진 레벨 및/또는 신호 품질은, 대역폭이 이전의 대역폭 결정(예를 들어 이전의 프레임에서 결정된 대역폭)으로부터 변경되었는지를 결정하기 위하여, 평가된다. 대역폭이 변경되지 않았다면, 프로세스는 단계 660으로 진행된다. 대역폭이 변경되었다면, 그 대역폭의 변화가, 대역폭 임 계값(THDBW) 내에서의 소정의 변화를 초과하였는지를 결정하는, 단계 640으로 진행된다. 그 변화가 임계값을 초과하지 않았다면, 그 프로세스는 단계 660으로 진행된다. 대역폭의 변화가 대역폭 임계값의 변화를 초과한다면, 프로세스는, 전송 변화 및/또는 신호 품질에 의하여, 단계 634에서 결정된 변화된 인코더 비트 레이트가 대역폭의 변화를 보상하기에 충분한지를 판단하는, 단계 642로 진행된다. 그 변화가 충분하다면, 프로세스 610은 단계 650으로 진행된다. 변화가 충분하지 않다면, 대역폭에서의 변화가 결정되는 단계 644로 진행된다.
단계 650에서, 대역폭이 이전의 대역폭 보다 크거나 또는 동일한지 및/또는 대역폭 임계값보다 크거나 또는 동일한지를 결정한다. 대역폭이 이전의 대역폭 및/또는 대역폭 임계값보다 크거나 동일하지 않다면, 대역폭의 감소가, 감소하는 대역폭 임계값보다 큰지를 결정하는, 단계 652로 진행된다. 대역폭에서의 변화가 감소된 대역폭 임계값을 초과하지 않는다면, 그 프로세스는, 비트 레이트가 이전의 정의된 레벨로 유지되는 단계 654로 진행된다. 단계 652에서, 대역폭에서의 감소된 변화가, 감소된 대역폭 임계값보다 크다고 결정되면, 감소된 인코더 비트 레이트는, 결정된 대역폭에 따라서 결정되는 단계 656으로 진행된다.
단계 650에서 대역폭이 이전의 대역폭 및/또는 대역폭 임계값보다 크거나 또는 동일하다고 결정되면, 그 프로세스는, 신호 품질이 신호 품질 임계값을 초과하는지를 결정하는, 단계 660으로 진행된다. 신호 품질이 임계값을 초과하지 않는다면, 그 프로세스는, 비트 레이트를 유지하도록 단계 654로 되돌아간다. 신호 품질 이 신호 품질 임계값보다 큰 것으로 발견되면, 소정개수의 이전 프레임에 대한 신호 품질이 또한 신호 품질 임계값을 초과하는지를 결정하는, 단계 662로 진행된다. 소정개수의 프레임의 신호 품질이 임계값을 초과하면, 인코딩 비트 레이트가, 결정된 대역폭에 따라서 증가되는 단계 664로 진행된다. 소정개수의 프레임의 신호 품질이 임계값을 초과하지 않는다면, 그 프로세스는, 비트 레이트를 그대로 유지하는 단계 654로 되돌아간다.
단계 654, 656 및 664 이후에, 프로세스 610은, 결정된 인코더 비트 레이트가 인코더로 전송되고, 인코더는 그 결정된 인코딩 비트 레이트에 의하여 소스 신호를 계속 인코딩하는, 단계 670으로 진행된다. 몇몇 실시예에서는, 결정된 비트 레이트는 타겟 공칭 비트 레이트 및 최대 상승 비트 레이트를 갖는 비트 레이트 범위에 의하여 정의된다.
도 7은 인코더 비트 레이트를 동적으로 조정하기 위한 프로세스(710)의 개략적인 흐름도이다. 단계 712에서, 소스 데이터의 프레임이 수신된다. 단계 714에서, 현재의 인코딩 비트 레이트가 결정된다. 단계 716에서, 변경의 비트 레이트가 요구되는지를 결정한다. 소정의 인코딩 비트 레이트가, 결정된 유효 대역폭에 기초하여 상술한 바와 같이 결정될 수 있다. 만일 비트 레이트가 변경되지 않았다면, 프로세스는 단계 720으로 진행된다.
비트 레이트가 변화하게 되면, 프로세스 710은, 변경된 비트 레이트가 회수되고 설정되는, 단계 718로 진행된다. 단계 720에서, 유효 비트의 개수는, 단계 716 또는 718에서 정의된 인코딩 비트 레이트에 따라서 결정된다. 단계 722에서, I-프레임이 발생될 필요가 있는지를 결정한다. I-프레임은, 소정개수의 프레임이 발생되었거나, 소스 데이터에서의 소정의 변화가 검출(예를 들어, 비디오 신호에서, 하나의 장면으로부터 다른 장면으로의 변화)되는 등의 데이터 오염의 심각한 충격 이후에, 컨텐츠를 리프레시하기 위하여 발생 될 수도 있다. I-프레임이 발생될 필요가 없다면, 프로세스는, 주 프레임이, I-프레임으로서, 소정의 인코딩 비트 레이트에서 인코딩되는, 단계 726으로 진행된다. 인코딩된 비트 레이트(조정되어진 것이든지 그렇지 않은 것이든지 간에)는 I-프레임을 제공하기에 충분하다. 몇몇 실시예에서는, 프로세스는, I-프레임을 제공하기 위하여 비트 레이트가 조정될 필요가 있는지를 판단한다. 그런 경우, 프로세스가 비트 레이트 조정을 요구하며, 조정된 비트 레이트를 수신하고 설정하기 위하여 단계 718로 되돌아간다.
단계 722에서, I-프레임이 발생될 필요가 없다고 결정되면, 단계 724는, 유효 비트 Ba가 I-프레임(BI)을 발생시키기 위하여 요구되는 정의된 개수의 비트를 초과하는지를 결정하는, 단계 724로 진행된다. 유효 비트가 I-프레임을 위한 비트의 개수를 초과하면, 프레임은 I-프레임으로서, 소정의 비트 레이트로 인코딩되는 단계 726으로 진행된다. 또한, 유효 비트가 I-프레임으로서 인코드되기에 충분하지 않다면, 프로세스는, 단계 716 또는 718 에서 정의된 소정의 비트 레이트에 따라서 프레임이 인코딩되는 단계 730으로 진행된다. 단계 732에서, 다른 프레임들이 인코드되는지를 판단한다. 만일 부가적인 프레임이 있다면, 프로세스 710은 단계 712로 되돌아간다. 만일 없다면, 프로세스는, 부가 프레임을 수신할 때까지 정지 된다.
몇몇 실시예에서는, 프로세스 710은 인코더에서 실현된다. 모든 프레임의 시작시에, 소정의 비트 레이트에서의 변화에 대하여, 인코더 그 자체가 레지스터 및/또는 메모리를 체크한다. 이것은, 예를 들어, 초당 30 프레임의 데이터를 처리할 때 33ms 마다 변화를 허용한다. 파라미터 특정 내부 알고리즘은 소저의 레이트에 대응하도록 조정될 수 있다. 또한 GOP(a group of picture) 구조 내에서 변화가 발생하는 상황을 수용하기 위하여 여러 가지의 고려가 제공될 수 있다. 부가적으로 및/또는 선택적으로, 몇몇 실시예는 GOP 구조를 조정함으로써 비트 레이트를 변화시킨다.
여기서 개시된 본 발명은 특정한 실시예 및 응용에 의하여 설명되었으나, 다양한 변경 및 변화는 청구항에서 언급된 본 발명의 영역을 벗어나지 않는 범위에서 당업자에 의하여 실행될 수 있다.