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 NOEMSPcTV 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 1Leerzeichen, 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 - BefehlszeileWer 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 -bestoccpctv -cfg Ton_und_Farbe -amode 3 ist das Gleiche wie pctv -fnct 2 -bestocc -vmode 2 -amode 3 -benchDas 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, STRKERE 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) ERHHT 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).