Tags

Tags give the ability to mark specific points in history as being important
  • v1.8.0

    LLICF v1.8.0
      - llicf_repair gives a file cut off by a crash or written without an index an index and a
        TAIL, in place, and replaces an index that does not match the file
      - llicf_decoderJoin (API 1.8) starts a receiver that joins the stream a decoder follows, for
        passing a stream on or recording it from the middle; Python: Decoder.join()
      - llicf_dump is now llicf_inspect, whose --check also compares the index's definitions
      - Fixes for a decoder that runs out of memory on a record or a file header
      - The tools open paths outside ASCII on Windows; for images, this needs LLIC 4.3.1
    
    See CHANGELOG.md for more details.
  • v1.7.0

    LLICF v1.7.0
      - llicf_decode writes images of YCbCr tracks as 8-bit RGB, with the matrix, range and chroma
        siting the track records, else those of most video
      - LLICF_DECODER_HIGH_PLANES (API 1.7) leaves the low planes of deep tracks out of every
        definition, also through the reader, and holds no memory for them
      - llicf_convert.py names the Cb and Cr planes of YCbCr tracks in its summary
      - Needs LLIC 4.3, whose YCbCr to RGB helpers llicf_decode uses
    
    See CHANGELOG.md for more details.
  • v1.6.0

    LLICF v1.6.0
      - SPEC.md 1.1 adds YCBCR420 and YCBCR422, stored as they are, and allows RGBA with YCOCG420
        at 8 bits; writers write version 1.1, and conformance/1.1 has files for it
      - YCbCr images (API 1.6) are NV12 and YUYV, with LLICF_IMAGE_CR_FIRST and
        LLICF_IMAGE_CHROMA_FIRST for NV21, YVYU, UYVY and VYUY
      - LLICF_IMAGE_MIPI_RAW14, LLICF_IMAGE_BGR and LLICF_DECODER_NEAREST_CHROMA (API 1.6)
      - llicf_decoderGetPlane() takes a decoder that is not const
      - llicf_convert.py and llicf_teslacam.py store YCbCr sources unchanged by default
      - Needs LLIC 4.2, whose one-pass helpers split and merge images faster; frames whose A or
        low planes are dropped encode and decode faster
    
    See CHANGELOG.md for more details.
  • v1.5.1

    LLICF v1.5.1
      - Added with add_subdirectory or FetchContent, LLICF builds the library only; the tools,
        tests and Python bindings are on by default only at the top level
      - Builds against an LLIC source tree the project has added before it, as the project
        built it, instead of fetching another; LLIC's options are no longer written to the cache
      - MSVC C4701 in RelWithDebInfo builds fixed
      - The API stays 1.5 and the format is as in 1.4
    
    See CHANGELOG.md for more details.
  • v1.5.0

    LLICF v1.5.0
      - llicf_version() (API 1.5) gives the version of the source the library was built from: git
        describe of the checkout, else the release version and the commit. In Python: llicf.VERSION
      - Builds that compile the sources directly need src/llicf/llicf_version.cpp
      - The format is as in 1.4
    
    See CHANGELOG.md for more details.
  • v1.4.0

    LLICF v1.4.0
      - llicf_encoderEncodePlanes() (API 1.4) encodes a frame from planes the writer makes, as the
        frame stores them, such as YCoCg 4:2:0 straight from YCbCr 4:2:0. In Python:
        Encoder.encode_planes()
      - llicf.color_space takes display_p3, bt709, bt2020, bt2100_hlg and bt2100_pq
      - tools/llicf_convert.py converts images and videos to LLICF with their metadata, and
        tools/llicf_teslacam.py converts TeslaCam clips with the vehicle data of every frame
      - Metadata is faster to write and read: writers send it without a copy, lookups take one pass,
        and record values cost no allocation per item
      - Python gives numeric arrays as array.array of their type, which NumPy takes without a copy, and
        meta_encode() copies buffers of the type's elements, NumPy arrays among them, as they are
      - The format is as in 1.3
    
    See CHANGELOG.md for more details.
  • v1.3.0

    LLICF v1.3.0
      - An embedding encoder (API 1.3) turns images into records for other formats to keep, in a
        buffer the caller sizes with llicf_embedEncoderBound(), and llicf_embedDecode() decodes them.
        In Python: EmbedEncoder and Decoder.decode_record()
      - Encoders and decoders take samples at the top of uint16 and MIPI CSI-2 RAW10 and RAW12 rows,
        and llicf_encode and llicf_decode take --sample-layout
      - llicf_checkParams() checks plane parameters as encoders do
      - CRC-32C uses the CPU's instructions on 64-bit ARM and three streams on x86
      - llicf_encoderEncode() takes the image's kind, and llicf_decoderImageLayout() fills an
        llicf_image_layout_t
      - The format is as in 1.0, except that an LLIC or TRAK chunk that differs only by having a CRC
        or not is a repeat (SPEC.md 3.1, 3.2)
    
    See CHANGELOG.md for more details.
  • v1.2.0

    LLICF v1.2.0
      - LLICF_DECODER_NO_PLANES (API 1.2) makes a decoder that follows a stream and checks every
        frame and every plane's entry, but decodes no plane and takes no room for planes, for
        applications that decode or keep the planes themselves. In Python: DECODER_NO_PLANES
      - The format is as in 1.0
    
    See CHANGELOG.md for more details.
  • v1.1.0

    LLICF v1.1.0
      - llicf_decoderPushChunks() (API 1.1) decodes LLICF frames kept in other formats: each
        image a record of its own, the frame with the header in front. In Python:
        Decoder.push_chunks()
      - A decoder that ran out of memory on a track definition no longer crashes or skips the
        track's frames
      - A writer without an index no longer takes memory per chunk
      - The format is as in 1.0
    
    See CHANGELOG.md for more details.
  • v1.0.1

    LLICF v1.0.1
      - llicf_encode writes its whole name in llicf.writer again: 1.0.0 stored it one byte
        short, as llicf_encod. Files written by 1.0.0 keep the short name
      - The library, its C API 1.0, the format and the other tools are as in 1.0.0
    
    See CHANGELOG.md for more details.
  • v1.0.0

    LLICF v1.0.0
      - The first release of LLICF, the Low Latency Image Container Format: the file and
        stream format of LLIC. Format specification version 1.0 (SPEC.md), no longer a draft
      - One format for files and live streams: writers only append, so the same writer feeds
        a disk, a pipe or a TCP socket; receivers join a stream at any frame
        (llicf_writerJoin, llicf_readerJoin)
      - Intra coding only, every LLIC image type (gray, RGB, RGBA, Bayer, RGB-IR; 8 to 16 bits),
        multiple cameras as tracks, per-frame nanosecond timestamps and typed metadata
      - Reference library with C API 1.0 on top of LLIC 4.0: writer (also appending to a file),
        encoder, decoder (plane subsets and 8-bit output) and a memory-mapped reader that
        follows growing files; installed as a CMake package
      - Command-line tools llicf_encode, llicf_decode and llicf_dump, and Python bindings
      - Conformance files, with what a reader does with each
    
    See CHANGELOG.md for more details.