• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

encodedv/H14-Sep-2021-3,8503,074

libdv/H14-Sep-2021-27,24919,506

playdv/H14-Sep-2021-2,5061,951

.gitlab-ci.ymlH A D14-Sep-20216.8 KiB212197

AUTHORSH A D14-Sep-2021622 1614

COPYINGH A D14-Sep-202125.8 KiB505418

COPYRIGHTH A D14-Sep-2021861 2019

ChangeLogH A D14-Sep-202128.8 KiB807573

INSTALLH A D14-Sep-20219.3 KiB237179

Makefile.amH A D14-Sep-20211.3 KiB4232

Makefile.inH A D14-Sep-202122.4 KiB721637

NEWSH A D14-Sep-2021121 63

READMEH A D14-Sep-20212.3 KiB8250

README.dvconnectH A D14-Sep-20211.7 KiB4732

README.encoderH A D14-Sep-20213.8 KiB7363

TODOH A D14-Sep-20212 KiB5536

aclocal.m4H A D14-Sep-2021268 KiB7,6296,841

bootstrapH A D14-Sep-202143 41

config.guessH A D14-Sep-202142.6 KiB1,4721,261

config.h.inH A D14-Sep-20213.4 KiB13188

config.subH A D14-Sep-202131.4 KiB1,6001,457

configureH A D14-Sep-2021753.6 KiB24,08719,382

configure.acH A D14-Sep-20215.5 KiB254207

depcompH A D14-Sep-202115.6 KiB531330

install-shH A D14-Sep-20219 KiB324189

libdv.pcH A D14-Sep-2021226 1210

libdv.pc.inH A D14-Sep-2021231 1210

libdv.specH A D14-Sep-20212.2 KiB8664

libdv.spec.inH A D14-Sep-20212.3 KiB8666

libtoolH A D14-Sep-2021212.3 KiB7,5215,633

ltmain.shH A D14-Sep-2021191.8 KiB6,8645,416

meson.buildH A D03-May-20223.1 KiB11888

missingH A D14-Sep-202110.8 KiB361268

README

1This is LibDV, a GPL codec for DV video.
2
3See http://libdv.sourceforge.net/
4
5LibDV now uses the GNU "Autotools" for building.
6
7BUILDING from CVS checkout
8==========================
9
10Starting with version 0.98, the libdv CVS repository does include the
11configure script generated by the autotools.  Hopefully, this will
12ease the pain for people who are not inclined to modify their machines
13installation just to build libdv.
14
15If you do have such desire, you can still bootstrap the build
16with*:
17
18  autoreconf -i
19
20You should check for any fatal errors, noting that you can expect some
21warnings which are harmless.
22
23
24To build the libdv library and the example player:
25
26  ./configure
27  make
28
29The makefile generated by the autotools is very large, so the more
30useful targets don't jump out at you.  Here are a few.
31
32Build a "tar.gz" distribution file:
33
34  make dist
35
36Build a rpm package file.  This requires you run as root, or you
37setup your ~/.rpmmacros to allow building rpms without root:
38
39  make rpm
40
41Clean up objects and binaries:
42
43  make clean
44
45Clean up including files generated by autotools, which should return
46the working directory state to be like it as after a CVS checkout:
47
48  make maintainer-clean
49
50
51* Since libdv 0.103, the boostrap file is considered obsolete.
52  Autoconf now includes the program autoreconf that can serve the
53  same role.
54
55
56
57NTSC Setup/Pedestal
58===================
59
60This option has been disabled in libdv due to improper usage.
61If you are still curious about this topic, see Adam Wilt's DV FAQ:
62http://www.adamwilt.com/DV-FAQ-tech.html#Setup
63
64
65Luma and Chroma Clamping
66========================
67
68ITU-R 601 specifies that the legal range for luma is 16-235 and
69for chroma is 16-240 regardless of NTSC, PAL, or setup issues. However,
70some users take advantage of the footroom or headroom below or above
71these ranges to encode additional information for things such as
72luma keying. The luma and chroma clamp options permit the range checking
73to be disabled to preserve the superblack and superwhite.
74
75For more information read Charles' Poyton's Color FAQ:
76http://www.inforamp.net/~poynton/notes/colour_and_gamma/ColorFAQ.html#RTFToC30
77
78and his white paper "Merging Computing with Studio Video:
79Converting Between R'G'B' and 4:2:2":
80http://home.inforamp.net/~poynton/papers/Discreet_Logic/index.html
81
82

README.dvconnect

1dvconnect is a small utility to send / capture raw data from / to the
2camcorder over an OHCI complient IEEE 1394 firewire adapter. It has to be
3an OHCI adapter since we use the video1394 interface. (It could be done for
4receiving without it, but for sending it's the only way to go!)
5
6You should also install the latest Linux Kernel version (> 2.4.12 I think)
7since otherwise the necessary patches for DV _sending_ are not included.
8
9dvconnect was written to be simple and fast.
10If it doesn't work for you, you might want to check out dvgrab from
11Arne Schirmacher... (http://www.schirmacher.de)
12
13Since the video1394 interface is not fully developed, you have to do some
14parameter twiddling to make it work.
15
16First, do
17
18	modprobe ohci1394
19	modprobe video1394
20
21Then try to catch some test-video data using:
22
23	dvconnect >test.dv
24
25Verify, using playdv if you are in doubt.
26
27If that worked, try
28
29	dvconnect -s --syt-offset=OFFSET <test.dv
30
31to send the data back to your camcorder. Where OFFSET is some number between
3210000-26000. The default is 11000 (should work for everyone, but
33in fact it doesn't...) You know, that you got it, when the picture in the view
34finder stands still and no gray boxes are jumping around anymore.
35
36If your harddisk is not fast enough or your system is under load then you
37can control the user-space memory buffer using -b and the kernel buffer
38using -k.
39
40	The kernel buffer should be large enough to bring dvconnect over
41one scheduler slice. (approx 1/10 second)
42	The user-space memory buffer should be large enough to compensate
43for varying disk transfer rates. (defaults to 10 seconds on PAL)
44
45	dvconnect will always warn you, if you got broken frames but
46only if it is in capture mode!
47

README.encoder

1This is a small explanation of the statistics tables generated by encodedv:
2
3CYCLE are the cycles in the quantization loop until a matching QNO is found
4      (affects speed)
5
6RUNS/CYCLE (for 3-pass VLC) : Tries to skip quantisation steps if it is
7      clear that a _lot_ more bits are needed. Makes things faster but
8      maybe quality drops a little bit. Smaller values mean better quality and
9      larger values mean that you gained some speed.
10
11QNO   is the quantization number. Larger values mean lesser quantization
12      (15=no quantization at all!) and better quality. You will notice, that
13      there are gaps between the values in the statistics. (Especially if
14      you choose "--vlc-passes=3", where qnos are most likely 15 or 8.)
15      This is normal behaviour since depending on the quantization CLASS
16      some QNOs don't gain you anything and are therefore skipped. There are
17      even codes, that _never_ gain you anything regardless of the chosen
18      classes.
19
20CLASS is the quantization class. (Greater values mean higher quantization.)
21      This is used to quantizise larger AC coefficients more than smaller ones.
22      For now, we use the following table
23
24               max AC-value
25               0 - 11  |  12 - 23  |  24 - 35  | >35
26               -----------------------------------------
27             Y   0     |     1     |     2     |   3
28            CR   1     |     2     |     3     |   3
29            CB   2     |     3     |     3     |   3
30
31      from the IEC documentation (which is only given for reference.)
32      If you want to improve this, keep the following in mind:
33      * These classes are chosen with the vlc code lengths in mind.
34        There is one code length for codes between 0..11, for 12..23 etc.
35      * You _have_ to use class 3 for AC coeffs. larger than 255, since they
36        can't get encoded otherwise.
37      * It is sensible to quantizise CR and CB values more than Y values.
38        (a) they don't matter that much and b) their bit budget is therefore
39        smaller!)
40      * Larger classes give you finer control over the QNO.
41      * Smaller classes don't have necessarily better quality since you may
42        be encoding quantization noise. That's from the IEC document. I don't
43        know, why they consider picture details with extremely small
44        coefficients as noise, but I agree that large coefficients don't
45        really need all the lower bits.
46VLC OVERF is the number of vlc_encoder overflows you encountered. That means
47      that some AC coefficients simply aren't encoded!
48      At best it means your picture is somewhat blurred and at worst it has
49      a very psychedelic touch...
50      This should only happen in two cases
51      a) if you use "--vlc-passes==1,2" and QNO 0
52      b) static_qno since the simple heuristic used can fail easily
53
54DCT MODE is the DCT mode chosen. DCT248 is used for fast moving sequences,
55      where the two fields encoded differ a lot. DCT88 has generally better
56      quality. The decision is based on the accumulated differences between
57      the two fields that are larger than a hard coded threshold divided
58      by the same difference in x direction. This makes sure that spotlights
59      are encoded with DCT 88 and not with DCT 248.
60      Something like (sum_i abs(field1[i] - field2[i])) /
61	              sum_i abs(block[i+1] - block[i])) > dct_248_limit
62TODO:
63     - finally go to the library and get the header block specifications ;-)
64     - think of a better way to implement static_qno for 1,3 vlc passes
65     - do correct synchronisation between audio and video (synchronise
66       against system clock since we can't be sure, that the soundcard
67       clock is 100% accurate)
68     - skip frames correctly
69     - find a way to detect NTSC / PAL for video or finally add a
70       force-video-format option.
71
72
73