SunVideo Plus 1.3 사용 설명서: SunVideo Plus의 XIL 속성

이전 | 다음 | 목차
SunVideo Plus 1.3 사용 설명서

# 5

# SunVideo Plus의 XIL 속성

이 장에는 SunVideo Plus 특유의 XIL 속성에 대한 설명이 있습니다. 이 정보는 XIL Programmer's Guide에 나와 있는 비디오 압축과 이미지 처리의 개념, XIL 관련 기능 등에 익숙하다는 가정 하에 제공합니다.

XIL은 지연 실행 기법을 사용하여 작동합니다. 지연 실행은 분자로 그룹 지으면 실행 시간을 줄일 수 있는 특정한 순서의 원자 동작을 찾습니다. 이 장의 "분자" 절에 가속된 분자 목록이 있습니다. XIL 프로그램 작성에 대한 자세한 내용은 Solaris XIL 1.0, Imaging Library Programmer's Guide를 참조하십시오. 개발자 키트에는 다양한 XIL 예제 프로그램의 소스 코드가 들어 있습니다. 이러한 예제를 참조하면 XIL과 SunVideo Plus 카드를 쉽게 사용할 수 있을 것입니다.

`MMACo1k`는 SunVideo Plus 카드용 XIL 소프트웨어 드라이버입니다. `MMACo1k` 인터페이스는 다음과 같은 XIL 호출을 통해 이루어집니다.

- `xil_device_create`(3)

- `xil_device_set_value`(3)

- `xil_create_from_device`(3)

- `xil_get_device_attribute`(3)

- `xil_set_device_attrribute`(3)

`xil_device_create`(3)에서는 장치 매개변수가 `MMACo1k`여야 합니다. `xil_create_from_device`(3)에서는 장치 이름 매개변수가 `MMACo1k`여야 하며 `/dev/o1k0`가 열려 있는 경우 `deviceObj` 매개변수는 NULL일 수 있습니다. `/dev/o1k1`과 같은 다른 장치를 열려면 `MMACo1k` 장치를 작성하고 이 장치와 함께 `xil_device_set_value`(3) 루틴을 사용하여 DEVICE_NAME 속성을 설정합니다. 640x480(NTSC) 또는 768x576(PAL) 3 주파수 대역의 YUV 이미지가 표시됩니다.

## 속성 개요

이진 호환성을 지원하기 위해 특별히 SunVideo Plus에서 사용할 수 있는 기능이 없는 일부 SunVideo 속성이 제한된 기반에서 지원됩니다.

장치 속성은 두 가지 방법으로 설정할 수 있습니다. 첫 번째 방법은 `xil_create_from_device`(3) 함수를 사용하여 장치 이미지를 작성하기 전에 `xil_device_create`(3)와 `xil_device_set_value`(3) 함수를 호출하는 것입니다. 두 번째 방법은 `xil_create_from_device`(3)를 호출한 후에 `xil_device_set_value`(3)를 호출하는 것입니다. 일부 속성(DEVICE_NAME)은 첫 번째 방법을 사용하여 설정하고 다음 절에 설명된 대로 문서화되어야 합니다. 자세한 내용은 "중요한 속성 정보"를 참조하십시오.

`MMACo1k` 장치에서 사용할 수 있고 SunVideo에서도 지원하는 일반 장치 속성은 다음과 같습니다.

- DEVICE_NAME

- FORMAT

- IMAGE_SKIP

- PORT_V

- MAX_BUFFERS

- PORT

- NUM_BUFFER

- FIRST_SCANLINE

- FULL_BUFFERS

- FLUSH_BUFFERS

- FORMAT_V

아무런 영향력은 없지만 SunVideo Plus가 SunVideo와의 이진 호환성과 소스 호환성을 지원하기 위해 합리적인 방법으로 무시하거나 처리하는 속성은 다음과 같습니다.

- MPEG_RATE_CONTROL

- MPEG_FIXED_QUANT

- MPEG_WEIGHTS

- FILE DESCRIPTOR

- FRAME_NUMBER

- TIMESTAMP

SunVideo Plus의 비디오 속성은 다음과 같습니다.

- HUE

- H261_PIP

- CHROMA_GAIN_V

- CHROMA_GAIN_U

- BRIGHTNESS

- CONTRAST

- H261_BIT_RATE

- H261_MAX_QUANT

- H261_IBLOCK_REFRESH

- H261_FUR

다음 절부터 각 속성에 대한 자세한 설명이 나옵니다. 속성 가운데는 "설정" 또는 "입수"만 가능한 속성도 있습니다. 각 속성의 액세스 항목에 이 정보가 표시되어 있습니다. 일부 속성은 SunVideo Plus 제어판의 매개변수이기도 합니다. 이러한 속성은 기본값이 지정되어 있을지라도 제어판이나 이전의 XIL 속성 설정 호출이 마지막으로 설정한 값을 실제 기본값으로 가집니다. 이러한 속성은 기본값 항목 앞에 별표(*)가 붙어 있습니다. 자세한 내용은 "SunVideo Plus 제어판과 XIL 속성" 부분을 참조하십시오.

## 일반 속성

### DEVICE_NAME

`o1k`(SunVideo Plus) 장치의 경로 이름을 설정합니다. 이 속성은 장치의 이미지를 작성하기 전에 `xil_device_create`(3)와 `xil_device_set_value`(3) 함수를 사용하여 설정해야 합니다.

액세스: 설정/입수
유형: char *
기본값: "/dev/o1k0"

### PORT_V

세 포트 중에서 비디오 신호를 캡쳐할 포트를 정의합니다.

0 | S_VIDEO 포트
1 | 혼합형 비디오 #1 포트
2 | 혼합형 비디오 #2 포트

액세스: 설정/입수
유형: 정수
기본값: 1

### PORT

포트를 설정하기 위한 문자열 인터페이스입니다.

S VIDEO | S_VIDEO 포트
COMPOSITE VIDEO 1 | 혼합형 비디오 #1 포트
COMPOSITE VIDEO 2 | 혼합형 비디오 #2 포트

액세스: 설정/입수
유형: char *
* 기본값: "COMPOSITE VIDEO 1"

### FORMAT_V

형식을 알 수 없으면 0을, PAL에서 캡쳐할 때는 1을, NTSC에서 캡쳐할 때는 2를 반환합니다. 자세한 내용은 "비디오 포트, 형식, 형식 자동 감지" 부분을 참조하십시오.

액세스: 입수
유형: 정수

### FORMAT

현재 캡쳐하고 있는 비디오 형식(NTSC, PAL, UNKNOWN)을 반환합니다. 자세한 내용은 "비디오 포트, 형식, 형식 자동 감지" 부분을 참조하십시오.

액세스: 입수
유형: char *

### IMAGE_SKIP

캡쳐 사이에 건너뛸 이미지의 수를 설정하고 반환합니다. IMAGE_SKIP 속성을 사용하여 이미지 흐름의 속도를 조절할 수 있습니다. 예를 들어, 감시 카메라를 지원하는 응용 프로그램에서 이 속성을 사용하면 30초 간격으로 이미지를 캡쳐할 수 있습니다.

또 다른 예로는 IMAGE_SKIP을 사용하여 특정한 네트워크 대역폭에 따라 프레임 속도를 제한합니다. NTSC 프레임을 약 10fps 속도로 캡쳐하려면 IMAGE_SKIP 속성을 2로 설정합니다. 이렇게 하면 SunVideo Plus 카드가 세 프레임마다 한 프레임을 캡쳐합니다.

액세스: 설정/입수
유형: 정수
기본값: 0

### MAX_BUFFERS

응용 프로그램이 압축 호출을 통해 검색하는 동안 XIL SunVideo Plus 드라이버가 보유할 압축 프레임의 최대 개수를 설정하고 반환합니다. 값은 1에서 10 사이여야 합니다. 다음 그림을 참조하십시오. 사용 메모리에 맞는 버퍼 수를 제공하도록 값을 조정합니다.

##### 그림 5-1 최대 버퍼 개수

액세스: 설정/입수
유형: 정수
기본값: 2

### NUM_BUFFERS

압축 프레임을 보유하기 위해 사용할 수 있는 버퍼의 실제 개수를 나타내는 정수를 반환합니다. NUM_BUFFERS 값은 MAX_BUFFERS 속성의 값보다 작거나 같습니다.

NUM_BUFFERS 속성은 첫 번째 캡쳐(또는 캡쳐/압축) 동작이 실행된 뒤에 유효한 값을 반환합니다.

액세스: 설정
유형: 정수

### FULL_BUFFERS

유효한 데이터가 들어 있는 버퍼의 현재 개수를 나타내는 정수를 반환합니다. FULL_BUFFERS 속성은 첫 번째 캡쳐(또는 캡쳐/압축) 동작이 실행된 뒤에 유효한 값을 반환합니다.

액세스: 입수
유형: 정수

### FLUSH_BUFFERS

FLUSH_BUFFERS 속성이 설정되면 다음 이미지를 캡쳐하기 전에 버퍼에 저장되어 있던 내용이 모두 지워집니다. 동작을 완료하면 FULL_BUFFERS의 값이 0으로 설정됩니다. 설정 속성을 호출할 때 입력한 값은 무시됩니다.

액세스: 설정
유형: void

## 비디오 속성

다음 속성들은 여러 가지 비디오 특성에 영향을 미줍니다. 이러한 속성은 "SunVideo Plus 제어판 사용" 부분에 설명되어 있는 SunVideo Plus 제어판이나 XIL을 통해 프로그램 방식으로 제어할 수 있습니다. 속성의 기본값이 지정되어 있기는 하지만 실제 기본값은 제어판이나 XIL 프로그램의 제어 기능이 마지막으로 설정한 값입니다.

### HUE

수신 비디오 신호의 색조에 영향을 주는 속성입니다.

액세스: 설정/입수
유형: 정수(범위 -128 ~ +127)
* 기본값: 0

### CHROMA_GAIN_U

수신 비디오 신호에서 U 요소의 색상 증폭률에 영향을 주는 속성입니다.

액세스: 설정/입수
유형: 정수(범위 -128 ~ +127)
* 기본값: 0

### CHROMA_GAIN_V

수신 비디오 신호에서 V 요소의 색상 증폭률에 영향을 주는 속성입니다.

액세스: 설정/입수
유형: 정수(범위 0 ~ 511)
* 기본값: 180

### CONTRAST

수신 비디오 신호에서 luma 부분의 선명도에 영향을 주는 속성입니다..

액세스: 설정/입수
유형: 정수(범위 0 ~ 511)
* 기본값: 216

### LUMA_BRIGHTNESS

수신 비디오 신호에서 luma 부분의 전체 밝기 수준에 영향을 주는 속성입니다

액세스: 설정/입수
유형: 정수(범위 -128 ~ +127)
* 기본값: 0

## H.261 속성

SunVideo Plus를 H.261 압축 및 압축 해제 프로그램과 함께 사용하는 경우에 해당하는 속성입니다. 하드웨어 방식의 압축 및 압축 해제 동작을 실행하지 않을 때는 효과가 없습니다.

### H261_BIT_RATE

원하는 최대 압축 속도를 설정합니다. 속도의 단위는 kbits/sec입니다. 예를 들어, 기본값 256은 초당 최대 256000 비트(32000 바이트/초)의 속도를 냅니다.

액세스: 설정/입수
유형: 정수(단위 kbits/sec)
기본값: 256

### H261_MAX_QUANT

원하는 최대 분량을 설정합니다. 분량 인자값이 작아지면 압축 이미지의 질이 높아집니다. 일반적으로 분량 값이 작을수록 이미지당 비트 수가 증가하기 때문에 일정한 비트 속도에서 프레임 속도는 감소할 수 있습니다. 분량 값이 커지면 프레임 속도가 빨라집니다.

액세스: 설정/입수
유형: 정수(범위: 1 ~ 31)
기본값: 10

### H261_IBLOCK_REFRESH

압축 프로그램이 내부 부호화 블록을 사용하여 H261 매크로블록을 갱신해야 하는 기간을 msec(1000분의 1초) 단위로 설정합니다. H261의 각 매크로블록은 132 프레임마다 하나의 내부 부호화 블록으로 부호화해야 합니다. 10fps 속도로 압축하면 지정된 블록 하나가 최대 13초 동안 내부 부호화되지 않을 수도 있습니다. 네트워크에 이상이 있는 경우에 프레임 하나가 유실되면 압축 해제한 이미지의 블록이 찌그러져 표시됩니다. 이 불량 블록을 갱신하려면 13초 동안이나 기다려야 합니다. 이 속성의 목적은 네트워크를 통해 H261 스트림을 전송하는 데 이상이 발생한 경우 매크로블록을 신속하게 갱신하는 것입니다.

액세스: 설정/입수
유형: 정수
기본값: 1500(msec)

### H261_FUR

H.261 압축 프로그램에 신속한 갱신을 요청하려면 이 플래그를 설정합니다. 신속 갱신은 기본적으로 내부/키 프레임에 대한 요청입니다.

액세스: 설정/입수
유형: XIL_boolean
기본값: FALSE

### H261_PIP

H.261 해독 프로그램이 압축 해제한 이미지의 왼쪽 위 모서리에 Local View의 그림을 나타내도록 하려면 이 플래그를 사용합니다. 하드웨어 압축 동작을 실행하지 않은 경우에는 pip 이미지가 회색으로 나타납니다.

액세스: 설정/입수
유형: XIL_boolean
기본값: FALSE

### HW_DECOMPRESS_CIS

하드웨어로 가속한 압축 해제 동작을 실행할 CIS를 선택합니다. 기본값인 NULL은 압축 해제 분자가 만나는 첫 번째 CIS가 하드웨어 가속 압축 해제의 대상이라는 의미니다. 일단 CIS를 선택하면 하드웨어 압축 해제 분자가 만나는 다른 CIS는 기각되고 적절한 XIL 소프트웨어 해독 프로그램을 사용하여 압축 해제 동작을 실행합니다. 하드웨어 방식의 압축 해제 기능을 사용하지 않을 때는 -1 값을 사용하는 것이 좋습니다.

XIL에는 CIS가 손상되었을 때 압축 해제 프로그램에게 통보할 수 있는 방법이 없기 때문에 새 CIS에서 하드웨어 가속 압축 해제 동작을 실행하는 경우에도 이 속성을 설정해야 합니다.

액세스: 설정/입수
유형: XilCis
기본값: NULL

## 중요한 속성 정보

> 참고 - XIL 1.3 속성은 현재 입수 속성을 지원하지 않습니다.

### 비디오 포트, 형식, 형식 자동 감지

XIL 드라이버의 기본 동작은 장치 이미지를 작성하는 동안에 선택한 비디오 포트에서 비디오 형식을 자동으로 감지하는 것입니다. 자동 감지 동작을 완료하는 데는 최대 1.5초까지 걸립니다. 비디오 형식을 알고 있으면 SunVideo Plus 제어판에서 비디오 형식을 AUTO에서 NTSC나 PAL 등 자신이 알고 있는 형식으로 설정할 수 있습니다. 이 경우에는 자동 형식 감지 동작이 실행되지 않습니다.

현재로서는 SunVideo Plus의 두 비디오 포트에서 서로 다른 비디오 형식(NTSC 또는 PAL 등)을 지원하지 않고 포트 사이를 동적으로 전환할 수도 없습니다. XIL 응용 프로그램에서 장치의 이미지를 작성할 때 SunVideo Plus 드라이버는 선택한 비디오 포트의 비디오 형식을 자동으로 감지할 수 있습니다. 따라서, 여러 비디오 입력 포트에 서로 다른 비디오 형식을 연결한 경우 장치의 이미지를 작성하기 전에 `xil_device_set_value`(3)을 사용하여 원하는 비디오 포트를 설정하는 것이 가장 좋습니다. 기본 비디오 포트(포트 1)에 비디오를 연결하지 않았을 경우에도 이렇게 해야 합니다.

### HW 압축 해제와 CIS 선택

HW_DECOMPRESS_CIS 속성을 사용하여 하드웨어 가속 압축 해제 기능을 사용할 CIS를 선택하고 설정할 수 있습니다. 여러 개의 CIS를 압축 해제할 응용 프로그램은 XIL 압축 해제 분자를 실행하기 전에 이 속성을 -1로 설정해야 합니다. 이렇게 하면 하드웨어 해독을 하지 않을 CIS의 압축 해제 분자는 하드웨어에 연결되지 않습니다. 하드웨어 압축 해제 기능을 사용하지 않을 CIS에서 압축 해제 분자를 실행하기 전에 HW_DECOMPRESS_CIS 속성을 설정하십시오.

### HW 압축 해제와 XIL 장치 작성

SunVideo Plus는 하드웨어 방식의 압축 해제 동작을 실행할 때 XIL 분자를 가속하는 XIL 연산 장치처럼 동작합니다. 압축 해제 기능만을 사용하는 응용 프로그램의 경우에는 "MMACo1k 장치 이미지 견본 작성" 부분에 설명된 것처럼 `xil` 장치와 장치 이미지를 작성하지 않아도 됩니다. 압축 해제 동작에 영향을 주는 장치 특유의 속성을 설정하려는 응용 프로그램의 경우는 예외입니다. XIL에는 장치를 명시적으로 열고 속성을 설정하지 않는 한 SunVideo Plus와 같은 연산 장치에서 특정한 유형의 속성을 설정할 수 있는 방법이 없습니다. 자세한 내용은 "XIL 소스 예제" 부분을 참조하십시오.

응용 프로그램이 장치와 장치 이미지를 직접 작성하지 않으면 하드웨어 방식의 SunVideo Plus XIL 압축 해제 분자가 간접적으로 장치와 장치 이미지를 작성합니다. 그러나, 이 분자는 가속기로 사용할 하드웨어 장치를 탐색하지 않습니다. 대신 시스템의 첫 번째 장치`(/dev/o1k0)`를 사용하려고 시도합니다. 따라서, 현재 시스템에 SunVideo Plus 카드가 여러 개 설치되어 있는 경우 각 카드를 하드웨어 가속 압축 해제 장치로 사용하기 위해서는 응용 프로그램에서 장치와 장치 이미지를 명시적으로 작성하고 장치마다 다른 이름을 지정해야 합니다. 자세한 내용은 "XIL 소스 예제" 부분을 참조하십시오.

### HW 압축과 HW 압축 해제를 모두 사용

앞 절의 설명에 따르면 장치와 장치 이미지를 아직 작성하지 않았을 경우 SunVideo Plus의 하드웨어 압축 해제 분자가 간접적으로 장치와 장치 이미지를 작성합니다. 따라서, 압축 해제 분자를 실행했고 MMACo1k 장치와 장치 이미지를 작성한 응용 프로그램은 이전에 압축 해제 분자가 간접적으로 작성한 장치와 이미지를 수신합니다. 그러나, XIL에서 장치 이미지를 삭제하는 데는 문제가 있습니다. 이러한 까닭으로 하드웨어 압축과 압축 해제를 모두 실행하는 응용 프로그램에서는 첫 번째 하드웨어 압축 해제 분자를 실행하기 전에 장치와 장치 이미지를 명시적으로 작성해야 합니다.

### SunVideo Plus 제어판과 XIL 속성

SunVideo Plus 제어판의 모든 비디오 관련 매개변수에는 응용 프로그램 개발자가 매개변수를 프로그램 방식으로 변경할 수 있도록 하는 XIL 속성이 있습니다. 이러한 XIL 속성은 제어판에 현재 설정되어 있는 값이 기본값이기 때문에 기본값이 따로 없습니다. 응용 프로그램에서 비디오 속성을 명시적으로 설정하지 않으면 제어판의 값이 사용됩니다.

이것은 SunVideo Plus의 기능입니다. 이 기능 덕분에 XIL 응용 프로그램에서 비디오 매개변수(예: 밝기, 선명도)를 설정할 필요가 없습니다. 자신의 비디오 소스에 맞게 비디오 매개변수를 한 번 조정하면 XIL 응용 프로그램을 실행할 때마다 같은 내용을 변경하지 않아도 됩니다.

XIL 속성과 제어판 매개변수의 소스는 둘 다 동일한 값을 참조합니다. 그러므로, XIL 속성 설정 호출을 사용하여 매개변수를 변경하면 제어판의 값도 변경됩니다. 예를 들어, 한 XIL 응용 프로그램에서 밝기 값을 설정하고 종료하면 다음에 실행되는 XIL 응용 프로그램은 값을 또 다르게 설정하지 않는 한 이전 프로그램에서 설정한 값을 사용합니다.

## 분자

다음 표는 MMACo1k 장치가 현재 지원하는 색상 분자와 회색음영 분자 목록입니다.

- 색상 분자

  - capture > scale8nearest

  - capture > [scale8nearest >] colorconvert

  - capture > [rescale8>][scale8nearest>] ordereddither8_8

  - capture > scale8nearest > rescale8 > orderedditther8_8

- 압축 분자

  - capture > [scale8nearest] compress_CellB

  - capture > [scale8nearest] compress_Jpeg

  - capture > [scale8nearest] compress_Mpeg1

  - capture > [scale8nearest] compress_H261

  - capture > [scale8nearest] compress_UYVY

- 회색음영 분자

  - capture > scale8nearest

  - capture > [scale8nearest >[[addconst8 >] addconst8 >] addconst8

  - capture > [scale8nearest][threshold8 >] threshold8

  - capture > [scal8nearest][threshold8 >] threshold8 > addconst8

- 압축 해제 분자

  - decompress_H261

  - decompress_H261 > [rescale8 >] ordereddither8_8

  - decompress_H261 > colorconvert

  - decompress_H261 > [rescale8 >] ordereddither8_8 > display_ioSUNWgx

## 오류

다음 표는 `MMACo1k` 장치 드라이버의 오류 메시지 목록입니다.

#### 표 5-1 `MMACo1k` 오류 메시지

오류 메시지 | 설명
`MMACo1k`-1 | `MMACo1k`: 유효하지 않은 포트 사양
`MMACo1k`-4 | `MMACo1k`: `MMACo1k` 장치를 열 수 없음. 오류의 원인이 오류 처리기에 인쇄됩니다. 가능한 원인으로는 다음과 같은 문제를 들 수 있습니다. - 다른 프로그램이 장치를 사용하고 있습니다. - 장치가 설치되지 않았습니다. - 프로그램이 참조하는 장치 번호가 틀립니다.
`MMACo1k`-5 | `MMACo1k`: 비디오 특성을 설정할 수 없음. 프로그램이 포트 속성을 설정하지 못합니다.
그 밖의 XIL 오류 메시지는 XIL 프로그래머 설명서의 부록 B를 참조하십시오.

## `MMACo1k` 장치 이미지 견본 작성

SunVideo Plus 카드에 연결된 장치 이미지를 작성하고 COMPOSITE VIDEO 2를 비디오 포트로 설정하려면 다음과 같이 입력합니다.

    # XilImage 이미지
    # XilDevice 이미지

이 때, 이미지 = `xil_create_from_device`(state, "`MMACo1k`", device);
이미지 = `xil_device_create`(state, "`MMACo1k`")
`xil_device_set_value`(device, "`DEVICE_NAME`",(void *) "`/dev/o1k0`");
`xil_device_set_value`(device, "PORT",(void *) "COMPOSITE VIDEO 2")

## XIL 소스 예제

XIL 프로그램 작성 인터페이스를 사용한 프로그램 작성에 대해 가장 좋은 정보는 개발자 키트에 있는 XIL 예제 프로그램에 들어 있습니다. 다음 표는 이러한 예제 목록입니다.

#### 표 5-2 XIL 소스 예제

XIL 소스 예제 | 설명
`xil_display` | 비디오 캡쳐 및 표시 예제. 비디오 녹화기 또는 재생기로 쉽게 만들 수 있습니다.
`xil_compress` | 비디오 압축 예제. 압축 방법과 여러 가지 압축 형식을 디스크에 저장하는 방법을 보여줍니다. H.261의 비트 속도 설정과 같은 장치 특유의 속성을 설정하는 방법도 보여줍니다.
`xil_decompress` | 비디오 압축 해제를 실행하는 방법의 예제. 이 프로그램에서는 XIL 소프트웨어 해독기가 간접적으로 작동하기 때문에 압축 해제 기능을 제공하는 하드웨어 방식의 항목이 대체로 필요하지 않습니다. 그러나, SunVideo Plus 하드웨어 방식의 H261 압축 해제 기능을 사용하는 방법도 보여 줍니다.
`xil_broadcast` | 비디오를 캡쳐하고 압축하는 방법 및 UDP를 사용하여 네트워크에 방송하는 방법을 보여줍니다.
`xil_receive` | `xil_broadcast`에서 비디오를 수신하는 방법 및 수신한 비디오를 압축 해제하고 표시하는 방법을 보여줍니다.
`xilh_broadcast` | `xil_broadcast`와 동일하지만 H261이 추가됩니다.
`xilh_receive` | `xil_ receive`와 동일하지만 H261이 추가됩니다.
`o1k_conf` | XIL과 `libotiaudio`를 사용하는 PPP 방식의 GUI 화상회의 응용 프로그램.

이전 | 다음 | 목차