Die PCTV Readme
endlich vollständig

 


 

README PcTV v0.98
-----------------------------------------------------------------------------
Was ist PcTV :
-----------------------------------------------------------------------------
Bei diesem Projekt ging es am Anfang (und immer noch!) um ein
Fernsehprogramm Typ 100 Hz full screen unter DOS, das das fürchterliche
Programm unter Windows 95 ersetzen sollte, das mit der Miro PCTV-Karte
geliefert wird. Unter Windows ist das Bild unscharf, miserabel, weil
das Programm das Bild zu stark filtert und das Interlace zwischen
geraden und ungeraden Zeilen schlecht organisiert. Das ist schade,
denn der Chip, BT848, ist ein ausgezeichnetes Bauelement, mit vielen
Einstellmöglichkeiten, aber für einen Programmierer nicht gerade
zugänglich.
Da ich etwas neugierig bin, habe ich aus Spaß einen Algorithmus
programmiert, der eine inverse Verschlüsselungsprozedur
(mit doppeltem Schlüssel) ausführt bezüglich eines Verfahrens
zur Ausstrahlung von Videosignalen, wie es auf einer
Web-Seite irgendwo im Internet beschrieben wird, ausgehend
von einem bereits existierenden Algorithmus (nebenbei bedanke
ich mich bei demjenigen, der sie mir hat zukommen lassen und
der weiss, das er hiermit gemeint ist). Dieses Verfahren
benutzt einen festen und einen variablen Schlüssel:
  - PcTV braucht den festen Schlüssel, der sich als Datei
"key.txt" im selben Verzeichnis wie PcTV befinden muß.
Es handelt sich einfach nur um eine Datei, die 256 Zeilen enthält,
jede Zeile mit einer Zahl zwischen 0 und 31. Jeder ist frei,
die Zahlen zu verwenden, die er -oder sie- will, solange diese
Werte nicht denjenigen entsprechen, die zur Ausstrahlung
von kostenpflichtigen Fernsehkanälen verwendet werden.
Es hat keinen Zweck mich nach solchen Dateien zu fragen,
ich weiß nicht, ob es sie gibt, ich habe keine und wenn jemand
welche findet: ich bin nicht daran interessiert und kann nur
die folgende Warnung aussprechen: Dieses Programm darf nicht
verwendet werden um Fersehsender zu sehen, für die in ihrem
Land ein Abonnement erforderlich ist und es darf nur zu
Lernzwecken verwendet werden.
  - den variablen Schlüssel findet PcTV ganz alleine,
das kann es schon.

-----------------------------------------------------------------------------
Inhalt des Archivs
-----------------------------------------------------------------------------
Das Archiv enthält:
- pctv.exe        das Programm selbst
- cwsdpmi.exe     der DPMI-Server
- readme.txt      dieses readme (eigentlich auf französisch)
- changelog.txt   die Liste der Žnderungen und künftige Entwicklungen

-----------------------------------------------------------------------------
Warum Version 0.9 ?
-----------------------------------------------------------------------------
Weil PcTV nicht fertig ist! Ich möchte immer noch einen 100 Hz
Fernseher emulieren (ohne besonderen Algorithmus in diesem Fall),
und weitere Funktionen hinzufügen (siehe changelog.txt).

-----------------------------------------------------------------------------
erforderliche Konfiguration :
-----------------------------------------------------------------------------
PcTV sollte auf folgenden Rechnern funktionieren:
- Pentium (alle Pentium). Mindestens ein P133 mit 512k Cache
ist nötig für eine akzeptable Leistung. In der aktuellen Version
reagiert PcTV allergisch auf den Pentium II; es funktioniert gut,
aber ungefähr 2 bis 3 Mal langsamer als auf einem "einfachen"
Pentium der gleichen Taktfrequenz. Das ist vollkommen unverständlich
und unerklärlich ... :-(
- mindestens 24 MB RAM (ungefähr 16 MB werden gebraucht).
SDRAM empfohlen ...
- eine TV-Karte mit dem Brooktree-Chip BT848A oder BT849A (vielleicht
sogar ein einfacher BT848). Hier eine unvollständige Liste der
Karten, die funktionieren sollten: Hauppauge Wincast TV, Miro PCTV,
STB TV PCI, Diamond DTV2000, Videologic Captivator PCI,
Smart Video Recorder III, MaxiTV PCI 2. Zur Klarstellung: die folgenden
Karten verfügen nicht über einen BT848 und funktionieren NICHT:
Miro DC10 & DC20 & DC30, MaxiTV PCI 1, Xpert@ ...,
Matrox rainbow runner, Karten mit nVidia RIVA 128. Diese Karten werden
nie unterstützt werden, da das Programm nur für den BT848 geschrieben
wurde.
- eine Grafikkarte, die die Norm VESA 2.0 unterstützt, mit
Unterstützung des linearen Framebuffers. Wenn die Karte nicht
VESA 2.0 - kompatibel ist oder PcTV nicht funktioniert, empfiehlt
sich der "Display Doctor", zu finden bei www.scitechsoft.com, der
die meisten Karten kompatibel zu machen versteht.
- optional eine Soundkarte, kompatibel zur Soundblaster 16
(also eine SB 16, SB 32 oder SB 64). Nur die wirklichen Sounblaster
von Creative Labs sind SB16 kompatibel (bis auf eine Ausnahme), darum
funktioniert PcTV nicht mit den sogenannten Soundblaster-kompatiblen
Karten (Maxi Sound usw...). Darüber hinaus funktioniert PcTV auch
nicht mit den Vibra 16 Karten von Creative Labs. Creative Labs
behauptet, diese Karten seien SB16-kompatibel, obwohl das falsch ist
(diese Karten haben keinen 16 bit DMA-Kanal !) und belügt die
Kunden, indem von Problemen der DMA-Verwaltung bestimmter Motherboards
gesprochen wird ...

-----------------------------------------------------------------------------
etwas Theorie :
-----------------------------------------------------------------------------
Für den variablen Schlüssel gibt es 32768 Möglichkeiten und die
Arbeit des Algorithmus besteht darin, so schnell wie möglich
den richtigen zu finden. Der Algorithmus beruht auf folgendem
Prinzip: "Wenn zwei auf dem ursprünglichen Bild von einander
entfernte Zeilen sich nach einer Transformation mit einem bestimmten
variablen Schlüssel nebeneinander befinden, dann ist dieser
Schlüssel mit großer Wahrscheinlichkeit der richtige."
Selbstverständlich sind zwei Zeilen nicht ausreichend um sicher
zu sein, das der angenommene variable Schlüssel auch der richtige
ist. Im Folgenden werde ich diese Zeilenpaare "Kandidaten" nennen.
Aber wie kann man herausfinden, ob zwei Zeilen zusammen gehören ?
Indem man beispielsweise ihre Korrelationsrate berechnet: wenn die
Summe der Beträge der Luminanzdifferenz jedes Pixels der beiden
Zeilen "klein" ist, dann liegen sie wahrscheinlich nahe
bei einander. Der Erfolg dieser Methode hängt davon ab, daß
die meisten Zeilen des Bildes relativ unterschiedlich sind.
Das ist bei Video im allgemeinen der Fall, außer wenn das Bild
sehr einförmig ist (z.B. ein einfarbiger Hintergrund) oder
wenn vertikale Symmetrien vorhanden sind (ein einfarbiges,
geometrisches Bild mit senkrechtem Rand). Kurz, je inhaltsreicher
das Bild ist, um so besser geht es.
Um die Gültigkeit eines Schlüssels festzustellen, muß man also
- eine gewisse Anzahl Kandidaten wählen. Diese Anzahl nennt man
Blockgröße. Je kleiner die Blockgröße, um so schneller ist der
Agorithmus, aber auch um so unzuverlässiger. Eine Blockgröße
von 10 entspricht 10 Kandidatenzeilen pro variablem Schlüssel
- denjenigen variablen Schlüssel bestimmen, der das beste
Korrelationsergebnis aller seiner Kandidaten erhält (es genügt,
die individuellen Korrelationsraten zu summieren).
Wohlgemerkt, die nötige Gesamtzahl der Kandidaten ist sehr
viel größer als die Blockgröße und je höher die Anzahl der 
Kandidaten, um so langsamer ist der Algorithmus, aber auch
um so zuverlässiger. Es gibt Möglichkeiten, das Verhältnis
"Anzahl der Kandidaten" / "Blockgröße" einzustellen (siehe
Parameter der Befehlszeile). Andrerseits ist die Anzahl der Pixel,
die zur Berechnung der Korrelationsrate verwendet werden,
geringer als die Anzahl der Pixel einer Zeile ( Parameter -step).
Sicher, je mehr Pixel man nimmt, um so zuverlässiger, aber
auch um so langsamer arbeitet der Algorithmus.
Alle diese Parameter haben eine große Wirkung auf die
Geschwindigkeit des Algorithmus. Um eine Vorstellung davon
zu geben: mit einer Blockgröße von 12, 800 Kandidaten und
4 von 16 Pixeln (pctv -step 3) müssen für jedes Bild
- 800 Korrelationsraten berechnet werden
(800*2*(768*4/16))=307200 Pixel bearbeiten
-32768*12=393216 Möglichkeiten bewertet werden.
Das mit 25 multipliziert ergibt den Aufwand für 1 Sekunde
real-time Video.
Hinzu kommt (für 16 bit Farbe):
440k*25 = 11M Transferts vom PCI-Bus zum Speicher durch den BT848
und 11 M Transferts vom Speicher zur Grafikkarte. Das macht 22M/s.
Ein AGP-Bus dürfte die Last auf dem PCI-Bus halbieren. Die Last
auf dem PCI-Bus hat eine nicht vernachlässigbare Wirkung auf
die Güte des Algorithmus, was teilweise den Abfall der Bildrate
zwischen den 8, 16 und 32-bit Versionen erklärt.
Davon kann einem schwindelig werden, nicht wahr ?

-----------------------------------------------------------------------------
Installation :
-----------------------------------------------------------------------------
PcTV programmiert die Hardware sehr systemnah und funktioniert
deshalb nur unter reinem DOS. Mit reinem DOS meine ich einen Rechner,
der im DOS-Modus gestartet worden ist und nicht etwa eine
DOS-Emulation unter Windows 95, sei es im Fenster oder im ganzen
Bildschirm oder gar mit speziellen Startparametern. PcTV wird
*nie* unter Windows 95 laufen, schon deshalb, weil DOS API Aufrufe
ausgeführt werden und W95 diese API nicht bereit stellt.
Wird PcTV unter Windows 95 gestartet, ist letzteres "smart" genug,
um zu erkennen, daß das Programm nur unter DOS läuft und bietet
eine entsprechende Konfiguration an, mit der PcTV unter DOS
gestartet werden kann (nach Neustart), mit den entsprechenden
Optionen. Das geht ganz gut.
Um also PcTV zu benutzen, ist eine Startoption unter DOS
erforderlich, die (wegen XMS-Speicher) folgende Zeilen in
der config.sys erfordert:
DOS=HIGH,UMB
Device=C:\WINDOWS\Himem.Sys
DeviceHigh=C:\WINDOWS\EMM386.Exe NOEMS
PcTV arbeitet im 32 bit Protected Mode. Dazu ist ein 
DPMI-Server nötig (cwsdpmi.exe ist frei), der im selben Verzeichnis
wie PcTV sein sollte.
Dann muß noch (wenn nötig) die Sound Blaster Soundkarte konfiguriert
werden. Zwei mögliche Fälle:
- die Karte ist "Plug and Play"-fähig (neuere SB16, SB32 oder SB 64).
In diesem Fall genügt es, das utility CTCM (wird zusammen mit
den Creative Labs Treibern geliefert) vor PcTV zu starten. Dieses
Tool konfiguriert die internen Register und setzt automatisch die
Environmentvariable BLASTER, die PcTV benutzt, um die Konfiguration
der Karte zu finden. Es ist deshalb nicht besonders sinnvoll,
die Variable BLASTER von Hand zu setzen.
- die Karte ist nicht "Plug and Play"-fähig. Wahrscheinlich ist
es eine ältere SB16. In diesem Fall muß die Variable BLASTER
auf den korrekten Wert eingestellt werden bevor PcTV gestartet
wird und damit sollte es gehen.
Natürlich ist dann noch die Datei key.txt nötig. Ein guter
Editor und geschmeidige Finger vollbringen da Erstaunliches.

-----------------------------------------------------------------------------
Start :
-----------------------------------------------------------------------------
Es genügt, PcTV zu starten und den Anweisungen zu folgen. Das
Programm kann jederzeit mit ESC oder Strg-C beendet werden
(ESC ist besser).

-----------------------------------------------------------------------------
Performance :
-----------------------------------------------------------------------------
Weites Feld ... Die Leistung hängt von vielen Parametern ab:
- den Befehlszeilenparametern: damit kann man die Bildwiederholrate
zwischen 10 und 50 fps zugunsten/ungunsten der Bildqualität
verändern (siehe Befehlszeilenparameter)
- der PC selbst: um die Leistung zu erhöhen, empfehle ich
folgende Maßnahmen (in der Reihenfolge abnehmender Wirkung):
  - den second-level Cache auf 512 k ausbauen
  - eine AGP-Grafikkarte verwenden
    - EDO oder SDRAM verwenden
    - den Bus übertakten (auf eigene Gefahr)
    - den Pentium übertakten (auf eigene Gefahr)
    - einen Pentium MMX einsetzen. PcTV benutzt zwar den
MMX-Befehlssatz nicht, ist aber glücklich über dessen primären
Cache von 16k; anscheinend hat es eine Vorliebe für den Pentium
im Gegensatz zum Pentium II.
- die Wahl des Grafikmodus: der Graustufenmodus ist um ca 20 bis
30% schneller
- die Empfangsqualität: je besser der Empfang, um so weniger irrt
sich der Algorithmus und um so höher die Bildrate. Schlechter
Empfang kann durch einige Parameter kompensiert werden (-btfilt,
-btcore, -subs, -step, -block).
Der ideale Wert der Bildrate ist 25 Bilder/s (wirkliche Echtzeit).
Im normalen Gebrauch wird dieser Wert nicht überschritten (sofern
der PC in der Lage ist, eine solche Bildrate zu erreichen).
Es ist aber möglich, diese Grenze zu überschreiten (ähnlich wie
bei einer 3dfx) nur um zu sehen, was der PC schafft (siehe
Parameter -bench). Nur als Richtwert: ein P166 mit 512K Cache muß
mindestens 30 fps mit pctv -vmode 1 -res 3 erreichen und mindestens
25 fps mit pctv -vmode 2 -res 3. Nach Beenden des Programms wird
eine Statistik angezeigt, mit der man die erreichte Leistung
feststellen kann:
- total #frames: Anzahl der Bilder, die die Karte digitalisiert hat
(25/s bei normalem Empfang)
- total #unscrambled frames: Anzahl der Bilder, die der Algorithmus
bearbeitet hat (25/s ist der optimale Wert)
- total #trashed frames: Bilder, die die Karte digitalisiert hat,
aber die das Programm nicht rechtzeitig abholen konnte. Ein hoher
Wert hier ist ein Zeichen dafür, daß das Programm Echtzeitverarbeitung
nicht schafft.
- average FPS: mittlere Anzeigegeschwindigkeit (<25 fps=keine
Echtzeit, 25 fps=Echtzeit, >25 fps besser als Echtzeit im Benchmodus).
- raw video FPS: Anzeigegeschwindigkeit im Modus bench + preview
(also mit dem Parameter -bench und ohne -skip). Dieser Wert gibt
einen Hinweis auf die Geschwindigkeit von Grafikkarte und 
PCI/AGP Bus. Der Wert kann sehr hoch sein. Bsp.: 220 mit -res 3 -vmode 1
bedeutet, daß der PC 768x287x220 = 49 Millionen Pixel/s gelesen
+ 49 Millionen geschrieben hat = 97 Millionen Pixel/s (!)
zusätzlich zu den von der BT848 Karte übertragenen Pixeln.

-----------------------------------------------------------------------------
Startparameter :
-----------------------------------------------------------------------------
Es gibt eine Vielzahl von Startparametern, die in 3 Kategorien
eingeteilt werden können:
- Konfigurationsparameter (Wahl des Videostandards, Videoquelle,
Audioquelle, usw ...)
- Parameter zur Videoeinstellung (Helligkeit usw.)
- Parameter zur Audioeinstellung (Lautstärke usw.)
- Parameter, die den Algorithmus betreffen. Damit kann die
Wirkung des Algorithmus in weiten Bereichen verändert werden.
Diese Parameter werden in folgender Form beschrieben:
 -parm : Parameter vom Typ WAHR/FALSCH, Wert WAHR (Bsp: pctv -bench)
 -noparm : Parameter vom Typ WAHR/FALSCH, Wert FALSCH (Bsp: pctv -nobench)
 -parm[1|2$0] : Parameter vom Typ Wertebereich. 1 und 2 sind die
möglichen Werte, 0 ist die Vorgabe des Programms für den Fall,
daß kein Parameter übergeben wird (Bsp: pctv -tuner 1).
 -parm[1..100$50] : Parameter vom Typ Wertebereich. 1 und 100 sind die
Bereichsgrenzen und 50 ist die Vorgabe des Programms für den Fall,
daß kein Parameter übergeben wird (Bsp: pctv -tuner 1 -freq 42525).
Die Startparameter können wie folgt übergeben werden:
- direkt in der Befehlszeile von pctv.exe (ex: pctv -vmode 2 -skip 2)
- in der Konfigurationsdatei von PcTV (pctv.ini)
Die Konfigurationsdatei ist eine einfache Textdatei, die man selbst
erzeugen kann und die sich im selben Verzeichnis wie pctv.exe
befinden muß. Sie besteht aus Abschnitten, die jeweils eine
Liste von Parametern enthalten.
Bsp: 
[Ton_und_Farbe]
-vmode 2 -amode 2 -bench
[yuv_direkt]
-tuner 0
-vmode 4
-res 1
Leerzeichen, Tabulationen und die neue Zeile sind Trennzeichen.
Bsp: 
[Ton_und_Farbe] -vmode 2 -amode 2 -bench
[yuv_direkt] -tuner 0	-vmode 4 -res 1
... ist eine korrekte Konfigurationsdatei.
Um einen Abschnitt mit Konfigurationsparametern zu "laden" braucht
man nur noch den Namen des betreffenden Abschnitts in der
Befehlszeile von PcTV anzugeben: pctv -cfg Abschnitt.
Bsp: pctv -cfg Ton_und_Farbe ist das Gleiche wie pctv -vmode 2 -amode 2 -bench.
Der Name des jeweiligen Abschnitts kann frei gewählt werden, solange
er nicht [default] heißt: Ein Abschnitt mit diesem Namen wird
immer zuerst geladen und vor jedem anderen Abschnitt abgearbeitet.
Die Reihenfolge, in der die Optionen berücksichtigt werden, sieht
damit so aus:
- Abschnitt [default], wenn vorhanden
- der mit -cfg angegebene Abschnitt
- Befehlszeile
Wer zuletzt kommt, macht das Rennen, will sagen: man kann einen
Parameter eines Abschnitts durch denjenigen eines anderen Abschnitts
oder der Befehlszeile überschreiben.
Bsp:
[Ton_und_Farbe]
-vmode 2 -amode 2 -bench
[default]
-fnct 2 -bestocc
pctv -cfg Ton_und_Farbe -amode 3
 ist das Gleiche wie 
pctv -fnct 2 -bestocc -vmode 2 -amode 3 -bench
Das ist alles - auf den ersten Blick vielleicht etwas kompliziert,
aber im Gebrauch sehr praktisch!
 


Beschreibung der Konfigurationsparameter:
-----------------------------------------
-iform [1|2|3$1] : "input format" : Wahl des Video-Standards 
(SECAM=1, PAL-N=2, PAL-BDGHI=3)
-tuner [0..7$0] : "tuner/mux selection" : Auswahl des Tuners. Mögliche
Werte sind:
  -tuner 0 oder kein Parameter : Der Tuner wird nicht benutzt. Signalquelle
ist der Komposit-Video Eingang der Karte.
  -tuner 1 : Automatische Erkennung des Tuners. Diese Option funktioniert
nur mit einer MIRO PCTV. Bei allen anderen Karten muß ein Wert zwischen
2 und 7 angegeben werden.
  -tuner 2 : Tuner TEMIC PAL
  -tuner 3 : Tuner TEMIC PAL-I
  -tuner 4 : Tuner TEMIC SECAM
  -tuner 5 : Tuner PHILIPS PAL
  -tuner 6 : Tuner PHILIPS PAL-I
  -tuner 7 : Tuner PHILIPS SECAM
-tuneradr [0..15$-1] : bei widerspenstigen Tunern kann man die
Adresse auf dem I2C-Bus vorgeben (das Argument ist ein Offset
bezüglich 0xc0). Nur für jemanden, der weiß was er tut!
-freq [0..99999$"keine"] : "tuner frequency" : Trägerfrequenz des
Eingangssignals  in MHz mal 100 (Bsp.: -freq 42575 für 425,75 MHz).
Umwandlungstabellen zwischen VHF/UHF-Kanälen (8 bis 69) und den
zugehörigen Frequenzen finden sich im Internet auf Sites, deren
Schwerpunkt auf Videotechnik liegt.
-chan1 bis chan20 [1..99999$"keine"] : "channel frequency" : Zuordnung
einer bestimmten Frequenz zu einem der 20 Kanäle, die PcTV speichern
kann (siehe Parameter -freq). Dadurch kann man den Kanal mit der
Tab-Taste wechseln.
Taste TAB. Wenn der Parameter -freq in der Befehlszeile nicht vorkommt,
ein Tuner gewählt wurde und wenigstens ein Kanal programmiert ist,
dann wird dieser von PcTV automatisch zu Beginn eingestellt.
Die Optionen -chanx (x ist eine Zahl) lösen mehr oder weniger
den Parameter -freq ab.
-res [1|2|3$3] : "video resolution" : Auswahl der Auflösung der
Bildschirmanzeige (in der Reihenfolge abnehmender Geschwindigkeit) :
  -res 1 : 400x300. Diese Auflösung steht nur bei bestimmten Karten
und nur mit dem Treiber UNIVBE (display doctor) zur Verfügung.
  -res 2 : 640x480
  -res 3 : 800x600. Die Standard-Auflösung.
-vmode [1|2|3$1] : "video mode" : Videomodus, Anzahl der Farben
(in der Reihenfolge abnehmender Geschwindigkeit) :
  -vmode 1 : 256 Graustufen
  -vmode 2 : 65536 Farben
  -vmode 3 : Modus YUV, 65536 Farben. In diesem Modus werden Farbfehler
korrigiert durch Neuordnen der Farbinformation. Zusammen mit der Taste
BACKSPACE zu benutzen. Backspace ändert die ursprüngliche Farbphase
bei der Anzeige (es gibt 2 Möglichkeiten und PcTV hat keine Möglichkeit,
die richtige herauszufinden).
  -vmode 4 : Modus YUV, 65536 Farben, aber mit besserer Qualität als
-vmode 3 (-vmode 3 hat nur die halbe horizontale Auflösung). Der Preis
dafür ist eine geringere Framerate. -vmode 4 ist mehr für -res 1 gedacht,
während vmode 3 mit -re3 gut funktioniert.
  -vmode 5 : 16 Millionen Farben. Dieser Modus bringt nicht viel im
Vergleich zum Modus -vmode 2 und frißt viel CPU-Zeit.
-dscan [0|1|2$0] : "double scan" : -dscan 1 verschiebt die Anzeige um eine
Zeile nach unten, damit PcTV auch mit den VGA/TV-Konverterkarten
benutzt werden kann, die nur jede zweite Zeile darstellen. -dscan 2
gibt jede Zeile doppelt aus, so daß das Bild heller wirkt, um den Preis
einer schlechteren Bildwiederholrate (zwischen 5 und 10 fps weniger).
Siehe auch Taste I.
-amode [0|1|2$0] : "audio mode" : Wahl des Audio-Modus. Der Eingang
für das Ton-Signal ist Line-In der Sound Blaster. Bei einer externen
Videoquelle (-tuner 0) die Audio-Quelle direkt mit Line-In verbinden.
Sonst (Verwendung des Tuners der BT848-Karte) den Audio-Ausgang der
BT848-Karte (mitgeliefertes Kabel der BT848-Karte benutzen) mit
Line-In der Soundblaster verbinden. Sehen wir nun die verfügbaren
Modi:
  -amode 0 : keine Ansteuerung der Soundkarte (der Parameter -asrc bleibt
aber aktiv)
  -amode 1 : Ansteuerung der Soundkarte, aber keine besonderen Operationen
  -amode 2 : Ton mit Spektralumkehr bei 12800 Hz (Abtastrate 25600 Hz).
Das ist die schnellste Methode (Verlust von 2-3 Bildern pro Sekunde),
aber sie funktioniert nur dann gut, wenn die Soundkarte exakt mit
dieser Abtastrate arbeitet. Wenn nicht (was sehr häufig ist !), kommt
es zu Verzerrungen und es bleibt nur der Modus 3 (langsamer, aber
viel besser).
  -amode 3 : Ton mit Spektralumkehr bei 12800 Hz (Abtastrate 44100 Hz),
und Kompensation von Abweichungen der Abtastrate der Soundkarte
(siehe Parameter -ashift). In diesem Modus bekommt man einen fast
perfekten Ton, er ist aber langsamer als der Modus 2.
-asrc [1..18$1] : "audio source" : Wahl der Ton-Quelle auf der TV-Karte.
Der Wert ist bei jedem Modell (Miro, Hauppage, usw ...) anders. Um
den richtigen Wert zu finden, probiert man am besten alle aus
(siehe auch Taste /) !
Beschreibung der Video-Parameter :
----------------------------------
-btdec [0..50$0] : "temporal decimation" : die Karte überspringt n Bilder
von 50. Dadurch wird die Transfertlast auf dem PCI-Bus, aber eben auch
die Bildwiederholrate gesenkt.
-btcore [0|1|2|3$0] : "luma coring'" : Erhöhen der Schwarzschwelle,
dunkelgrau wird schwarz. Die Schwelle ist regelbar (KEIN CORING=0,
WACHSENDES CORING=1 bis 3). Bei ungünstigen Empfangsbedingungen
sieht das Bild besser aus.
-btrange [0|1$0] : "luma extended range" : Umschalten in den Modus
"erweiterte Helligkeitsregelung". Ergibt ein kontrastreicheres Bild.
-btgamma [0|1$0]  : "gamma correction removal" : Gamma-Korrektur
ein bzw. ausschalten. Damit bekommt man kontrastreichere Bilder,
wenn man anschließend Kontrast und Helligkeit nachregelt.
-btfilt [0|1|2|3|4$1] : Anwendung eines Dithering-Filters (horizontale
Unschärfe, KEIN FILTER=0, STŽRKERE FILTER=von 1 bis 4). Durch 
Anwendung einer starken Filterung kann man wirkungsvoll die
Mängel eines schlechten Empfangs kompensieren oder umgekehrt bei
gutem Empfang ein sehr scharfes Bild bekommen. Der Filtertyp 1
ist per Vorgabe implizit aktiv.
-bright [0..255$128] : "brightness" : Helligkeitsregelung.
-sat [0..511$80] : "color saturation" : Regelung der Farbsättigung.
-satbal [0..237$216] : "color balance" : Regelung der Farbbalance.
-contrast [0..511$216] : "contrast" : Kontrastregelung.
-crop1 [0..286$0] : "cropping1" : Unterdrückung der Zeilen über der
angegebenen Zeile (0 ist die erste Zeile von oben).
-crop2 [0..286$0] : "cropping2" : Unterdrückung der Zeilen unter der
angegebenen Zeile (0 ist die erste Zeile von unten). Mit diesen beiden
Parametern werden Bereiche des Bildes abgeschnitten, die nicht
notwendig sind, mit dem Ziel einer beschleunigten Anzeige.
Beschreibung der Audio-Parameter :
----------------------------------
-gain [0..3|0] : "gain" : Žnderung der Verstärkung. Siehe auch Taste 5
-vol [0..31$10] : "volume" : Lautstärke. Siehe auch Tasten -/+
-bass [0..15$8] : "bass level" : Bässe (Hardware-Regelung). Siehe
Tasten D/F
 
-treble [0..15$8] : "treble level" : Höhen (Hardware-Regelung). Siehe
Tasten G/H
-ashift [0..512$256] : "sample frequency shift" : Verschiebung um die
Abtastfrequenz der Karte (nur gültig zusammen mit dem Parameter -amode 3).
Dadurch kann man künstlich die Abtastfrequenz der Karte ändern. Erfordert
ein gutes Gehör und eine Schwebung (der mittlere Wert ist 256).
Siehe auch die Tasten J/K/L/M.
Beschreibung der Parameter zur Beeinflussung des Algorithmus :
--------------------------------------------------------------
-block [2..32$12] : "block size" : gibt die "Blockgröße" an. Dieser Parameter
bestimmt praktisch die Framerate. Je kleiner die Blockgröße, um so
schneller ist der Algorithmus, auf kosten seiner Zuverlässigkeit.
-step [1|2|3|4$2] : "pixel step" : berücksichtigt 1/16 (-step 1), 1/8, 
1/4, 1/2 (-step 4) Pixel jeder Kandidatenzeile. Je mehr Pixel, um so
zuverlässiger, aber auch um so langsamer ist der Algorithmus.
-subs : "pixel sub sampling" : Bildet den Mittelwert mehrerer
horizontaler Pixel vor Berechnung der Korrelation. Dient zur
Kompensation schlechter Empfangsverhältnisse (ähnlich -btfilt).
-minocc [0..1000000$0] : "minimum occurrence required" : eliminiert die
"Kandidaten", die nicht mindestens "n" variablen Schlüsseln gemeinsam
sind. Mit diesem Parameter wird die Anzahl der "Kandidaten" zugunsten
der Geschwindigkeit verringert. Der Wert wird nach Augenmaß bestimmt.
Die Anzahl der gefundenen "Kandidaten" wird am Ende der Initialisierungs-
phase angezeigt.
-maxocc [0..1000000$1000000] : "maximum occurrence required" : Das selbe
in umgekehrter Richtung. Diesmal soll die Zahl der "Kandidaten" vergrößert
werden.
-bestocc : "choose best occurrences" : Mit diesem Parameter wird die
ideale Kombination gewählt, d.h. diejenige, die ein Minnimum an
Kandidaten benötigt und folglich den Algorithmus beschleunigt.
Allerdings wird die Vorberechnung der Korrelationstabellen sehr
lang. Zusammen mit den Parametern -lim zu verwenden.
-mindist [0..286$0] : "minimal distance required" : beseitigt 
diejenigen "Kandidaten", deren Abstand (in Pixeln) kleiner als
der angegebene Wert ist. Mit diesem Parameter werden Korrelationsfehler
kompensiert, die durch das vertikale Interpolationsfilter des
BT848 hervorgerufen werden. Das Filter kann nicht abgeschaltet werden.
4 ist ein guter Wert, aber dieser Parameter vergrößert auch die
Anzahl der "Kandidaten".
-rbcheck : "red/blue error check" : "Kandidaten" aus blauen und roten
Zeilen, die durch Störung der Chrominanz-Sequenz entstehen, werden
nicht berücksichtigt (nur SECAM). Diese Kandidaten können schlecht
korreliert sein, weil ihre Helligkeit nicht stimmt.
-rbfilt : "red/blue error filter" : Unterdrückung der blauen und roten
Zeilen, die durch Schlüssel entstehen, die die Chrominanz-Sequenz
stören (nur SECAM).
-fnct [1|2$1] : "correlation function" : 1: (abs(x1-x2), 2: abs(x1-x2)^2 
Zum Experimentieren (kein Einfluß auf die Geschwindigkeit des Algorithmus).
Die Quadratische Funktion (Wert 2) ERH™HT DIE FRAMERATE UM 5 BIS 10 FPS,
führt aber in einigen Fällen zu mehr Fehlern.
-lim1 [0..286|96] : "limit1" : Zeilen über der angegebenen Grenze von
oben werden aus der Liste der "Kandidaten" gestrichen (0 ist die oberste
Zeile auf dem Bildschirm).
-lim2 [0..286|96] : "limit2" : Zeilen unter der angegebenen Grenze von
unten werden aus der Liste der "Kandidaten" gestrichen (0 ist die unterste
Zeile auf dem Bildschirm).
-lim3 und -lim4 funktionieren wie -lim1 und -lim2, damit kann ein
zweiter Bildbreich ausgewählt werden.
Sonstige Parameter :
--------------------
-bench : "benchmark" : die im Programm enthaltene Begrenzung auf
25 Bilder/s wird nicht berücksichtigt, damit man die Leistung
des PC beurteilen kann.
-skip[0|1|2$0] : "skip to ..." : sofort zum Vorschau-Modus übergehen (-skip 1)
oder sofort das vom Algoritmus umgewandelte Bild ausgeben (-skip 2).
-trace : "trace" : schreibt die gefundenen variablen Schlüssel in
die Datei "trace.txt".
-key [0..9$0] : "keyfile selection" : Auswahl einer alternativen
Schlüsseldatei (key.txt entpricht -key 0). Mit dem Wert 1 wird
key1.txt geladen, mit 2 entsprechend key2.txt usw.

-----------------------------------------------------------------------------
Einstellungen bei laufendem Programm :
-----------------------------------------------------------------------------
Es ist möglich, einige Parameter bei laufendem Programm abzustimmen.
Hier die Liste der verfügbaren Regelungen:
- Tasten 1 und 3 : Regelung der Farbsättigung,
- Tasten 2 und 8 : Farbbalance,
- Tasten 4 und 6 : Kontrastregelung,
- Tasten 7 und 8 : Helligkeitsregelung,
- Tasten Q und S : ändert die Zeit zur Suche des "Color-Burst".
Dadurch können die blauen oder roten Zeilen verringert werden,
die durch Schlüssel entstehen, die die Chrominanz-Sequenz stören.
- Taste TAB : zum nächsten gespeicherten Kanal wechseln (siehe Optionen -chan1
bis -chan20)
- Tasten W und X : Regelung der Trägerfrequenz des Tuners (W: -1 MHz,
X: +1MHz)
- Tasten C und V : gleiche Aktion, aber in 1/16 MHz-Schritten (Feinabstimmung)
- Tasten B und N : automatische Kanalsuche (B: vorwärts, N: rückwärts).
Die "Scroll-Lock"-LED blinkt während der Suche (lustig, nicht wahr ?).
Die Suche hört auf, sobald ein Kanal gefunden wird. Sie kann jederzeit
durch betätigen einer beliebigen Taste abgebrochen werden (der vorher
eingestellte Kanal wird wieder aktiviert).
 
- Taste A : Anzeige eines Fernsehtestbildes. Zur šberprüfung der
BT848-Karte, wenn kein Bild erscheint.
- Taste Z : Umschalten in den Modus "erweiterte Helligkeitsregelung".
Ergibt ein kontrastreicheres Bild. Diese Taste bewirkt das Gleiche
wie der Parameter -btrange.
- Taste E : Gamma-Korrektur ein- bzw ausschalten. Damit bekommt man
kontrastreichere Bilder, wenn man anschließend Kontrast und Helligkeit
nachregelt. Diese Taste bewirkt das Gleiche wie der Parameter -btgamma.
- Taste R : Anwendung eines Dithering-Filters (horizontale Unschärfe,
4 Filter möglich). Durch Anwendung einer starken Filterung kann man
wirkungsvoll die Mängel eines schlechten Empfangs kompensieren oder
umgekehrt bei gutem Empfang ein sehr scharfes Bild bekommen. Diese
Taste bewirkt das Gleiche wie der Parameter -btfilt.
- Taste T : Žndern des Coring-Registers (Schwarzschwelle). Diese Taste
bewirkt das Gleiche wie der Parameter -btcore.
- Taste Y : Žnderung des "pixel step". Diese Taste bewirkt das Gleiche
wie der Parameter -step.
- Taste U : Umschalten des Luminanzfilters (mehr oder weniger scharfes Bild).
- Taste I : Žndern des "double scan"-Modus. Diese Taste bewirkt das Gleiche
wie der Parameter -dscan.
- Taste O : Vergrößert/verkleinert das Bild (schwarze Streifen oben und unten)
 
- Taste BACKSPACE : Wahl der Farbphase für den Videomodus 3 (siehe
Parameter -vmode 3).
- Leerzeichen : Standbild (Mamma, guck mal).
- Taste RETURN : Umschalten zwischen Dekodieren und Vorschau.
- Taste ESC : Ende.
Die folgenden Parameter haben nur dann eine Wirkung, wenn der Audiomodus
aktiviert ist (-amode 1 oder mehr) :
- Taste 5 : Regelung der Eingangsverstärkung der Soundkarte. Diese Taste
bewirkt das Gleiche wie der Parameter -gain.
- Taste * : Žnderung des Audio-Modus. Diese Taste bewirkt das Gleiche
wie der Parameter -amode.
- Taste / : Žnderung der Tonquelle. Diese Taste hat den gleichen Effekt
wie der Parameter -asrc. Funktioniert nur bei aktiviertem Tuner (nicht
im Modus -tuner 0).
- Tasten - und + : Regelung der Lautstärke. Diese Taste bewirkt das Gleiche
wie der Parameter -vol.
- Tasten D und F : Regelung der Bässe (- und +). Diese Taste bewirkt das
Gleiche wie der Parameter -bass.
- Tasten G und H : Regelung der Höhen (- und +). Diese Taste bewirkt das
Gleiche wie der Parameter -treble.
- Tasten J und K : Regelung der Abtastfrequenz in 16 Hz Schritten (nur
mit -amode 3). Diese Taste bewirkt das Gleiche wie der Parameter -ashift.
- Tasten L und M : Gleiche Wirkung, aber Schrittweite 1 (Feinabstimmung).

 


Zurück zur Chaos Computer Club Home Page