if (cm->frame_type != KEY_FRAME &&
partition != PARTITION_NONE &&
bsize <= MAX_SUPERTX_BLOCK_SIZE &&
- !supertx_enabled) {
+ !supertx_enabled && !xd->lossless) {
const int supertx_context =
partition_supertx_context_lookup[partition];
supertx_enabled = vp9_read(
static int read_compressed_header(VP9Decoder *pbi, const uint8_t *data,
size_t partition_size) {
VP9_COMMON *const cm = &pbi->common;
-#if !CONFIG_TX_SKIP
+#if !CONFIG_TX_SKIP || CONFIG_SUPERTX
MACROBLOCKD *const xd = &pbi->mb;
#endif
FRAME_CONTEXT *const fc = &cm->fc;
read_ext_tx_probs(fc, &r);
#endif
#if CONFIG_SUPERTX
- read_supertx_probs(fc, &r);
+ if (!xd->lossless)
+ read_supertx_probs(fc, &r);
#endif
#if CONFIG_TX_SKIP
for (i = 0; i < 2; i++)
mi_col, num_8x8_blocks_wide_lookup[bsize],
cm->mi_rows, cm->mi_cols);
if (!supertx_enabled && cm->frame_type != KEY_FRAME &&
- partition != PARTITION_NONE && bsize <= MAX_SUPERTX_BLOCK_SIZE) {
+ partition != PARTITION_NONE && bsize <= MAX_SUPERTX_BLOCK_SIZE &&
+ !xd->lossless) {
TX_SIZE supertx_size = bsize_to_tx_size(bsize);
vp9_prob prob =
cm->fc.supertx_prob[partition_supertx_context_lookup[partition]]
static size_t write_compressed_header(VP9_COMP *cpi, uint8_t *data) {
VP9_COMMON *const cm = &cpi->common;
-#if !CONFIG_TX_SKIP
+#if !CONFIG_TX_SKIP || CONFIG_SUPERTX
MACROBLOCKD *const xd = &cpi->mb.e_mbd;
#endif
FRAME_CONTEXT *const fc = &cm->fc;
update_ext_tx_probs(cm, &header_bc);
#endif
#if CONFIG_SUPERTX
- update_supertx_probs(cm, &header_bc);
+ if (!xd->lossless)
+ update_supertx_probs(cm, &header_bc);
#endif
#if CONFIG_TX_SKIP
for (i = 0; i < 2; i++)
#if CONFIG_SUPERTX
if (cm->frame_type != KEY_FRAME &&
bsize <= MAX_SUPERTX_BLOCK_SIZE &&
- partition != PARTITION_NONE) {
+ partition != PARTITION_NONE && !xd->lossless) {
int supertx_enabled;
TX_SIZE supertx_size = bsize_to_tx_size(bsize);
supertx_enabled = check_supertx_sb(bsize, supertx_size, pc_tree);
#endif
}
#if CONFIG_SUPERTX
- if (cm->frame_type != KEY_FRAME && sum_rdc.rdcost < INT64_MAX) {
+ if (cm->frame_type != KEY_FRAME && sum_rdc.rdcost < INT64_MAX &&
+ !xd->lossless) {
TX_SIZE supertx_size = bsize_to_tx_size(bsize); // b_width_log2(bsize);
best_partition = pc_tree->partitioning;
pc_tree->partitioning = PARTITION_SPLIT;
}
#if CONFIG_SUPERTX
if (cm->frame_type != KEY_FRAME && sum_rdc.rdcost < INT64_MAX &&
- i == 4 && bsize <= MAX_SUPERTX_BLOCK_SIZE) {
+ i == 4 && bsize <= MAX_SUPERTX_BLOCK_SIZE && !xd->lossless) {
TX_SIZE supertx_size = bsize_to_tx_size(bsize);
best_partition = pc_tree->partitioning;
pc_tree->partitioning = PARTITION_SPLIT;
}
#if CONFIG_SUPERTX
if (cm->frame_type != KEY_FRAME && !abort_flag &&
- sum_rdc.rdcost < INT64_MAX && bsize <= MAX_SUPERTX_BLOCK_SIZE) {
+ sum_rdc.rdcost < INT64_MAX && bsize <= MAX_SUPERTX_BLOCK_SIZE &&
+ !xd->lossless) {
TX_SIZE supertx_size = bsize_to_tx_size(bsize);
best_partition = pc_tree->partitioning;
pc_tree->partitioning = PARTITION_HORZ;
}
#if CONFIG_SUPERTX
if (cm->frame_type != KEY_FRAME && !abort_flag &&
- sum_rdc.rdcost < INT64_MAX && bsize <= MAX_SUPERTX_BLOCK_SIZE) {
+ sum_rdc.rdcost < INT64_MAX && bsize <= MAX_SUPERTX_BLOCK_SIZE &&
+ !xd->lossless) {
TX_SIZE supertx_size = bsize_to_tx_size(bsize);
best_partition = pc_tree->partitioning;
pc_tree->partitioning = PARTITION_VERT;