TxfmSearchInfo Struct Reference

Stores various encoding/search decisions related to txfm search. More...

`#include <block.h>`

## Data Fields

uint8_t | skip_txfm
| Whether to skip transform and quantization on a partition block level.
uint8_t | blk_skip [MAX_MIB_SIZE *MAX_MIB_SIZE]
| Whether to skip transform and quantization on a txfm block level.
uint8_t | tx_type_map_ [MAX_MIB_SIZE *MAX_MIB_SIZE]
| Transform types inside the partition block.
MB_RD_RECORD * | mb_rd_record
| Txfm hash records of inter-modes.
unsigned int | txb_split_count
| Number of txb splits.

## Detailed Description

Stores various encoding/search decisions related to txfm search.

This struct contains a cache of previous txfm results, and some buffers for the current txfm decision.

## Field Documentation

## blk_skip

uint8_t TxfmSearchInfo::blk_skip[MAX_MIB_SIZE *MAX_MIB_SIZE]

Whether to skip transform and quantization on a txfm block level.

Skips transform and quantization on a transform block level inside the current partition block. Each element of this array is used as a bit-field. So for example, the we are skipping on the luma plane, then the last bit would be set to 1.

## tx_type_map_

uint8_t TxfmSearchInfo::tx_type_map_[MAX_MIB_SIZE *MAX_MIB_SIZE]

Transform types inside the partition block.

Keeps a record of what kind of transform to use for each of the transform block inside the partition block.

Attention
  The buffer here is never directly used. Instead, this just allocates the memory for MACROBLOCKD::tx_type_map during rdopt on the partition block. So if we need to save memory, we could move the allocation to pick_sb_mode instead.

Referenced by pick_sb_modes(), and pick_sb_modes_nonrd().

## txb_split_count

unsigned int TxfmSearchInfo::txb_split_count

Number of txb splits.

Keep track of how many times we've used split tx partition for transform blocks. Somewhat misleadingly, this parameter doesn't actually keep track of the count of the current block. Instead, it's a cumulative count across of the whole frame. The main usage is that if txb_split_count is zero, then we can signal TX_MODE_LARGEST at frame level.

Referenced by encode_frame_internal().

The documentation for this struct was generated from the following file:

- av1/encoder/block.h