History

Make the deblocking handling endian independent

This avoids having to set a define indicating the endianness. This doesn't incur any significant measurable slowdown.

Martin Storsjö committed 12 years ago

Commit 0a14d4c1 parent 21687723 files · +40 −48Browse files

Showing the changes to codec/decoder/core/src/deblocking.cpp (1 of 3 files). Show all

Unified · Split

codec/decoder/core/src/deblocking.cpp+20−21
@@ -145,34 +145,29 @@ static const uint8_t g_kuiTableBIdx[2][8] = { · 144 unmodified lines
145 145
146void_t inline DeblockingBSInsideMBAvsbase (int8_t* pNnzTab, uint8_t nBS[2][4][4], int32_t iLShiftFactor) {146void_t inline DeblockingBSInsideMBAvsbase (int8_t* pNnzTab, uint8_t nBS[2][4][4], int32_t iLShiftFactor) {
147 uint32_t uiNnz32b0, uiNnz32b1, uiNnz32b2, uiNnz32b3;147 uint32_t uiNnz32b0, uiNnz32b1, uiNnz32b2, uiNnz32b3;
148 ENFORCE_STACK_ALIGN_1D (uint8_t, uiBsx3, 4, 4);
149 148
150 uiNnz32b0 = * (uint32_t*) (pNnzTab + 0);149 uiNnz32b0 = * (uint32_t*) (pNnzTab + 0);
151 uiNnz32b1 = * (uint32_t*) (pNnzTab + 4);150 uiNnz32b1 = * (uint32_t*) (pNnzTab + 4);
152 uiNnz32b2 = * (uint32_t*) (pNnzTab + 8);151 uiNnz32b2 = * (uint32_t*) (pNnzTab + 8);
153 uiNnz32b3 = * (uint32_t*) (pNnzTab + 12);152 uiNnz32b3 = * (uint32_t*) (pNnzTab + 12);
154 153
155 * (uint32_t*)uiBsx3 = DEBLOCK_BS_SHIFTED (uiNnz32b0) << iLShiftFactor;154 nBS[0][1][0] = (pNnzTab[0] | pNnzTab[1]) << iLShiftFactor;
156 nBS[0][1][0] = uiBsx3[0];155 nBS[0][2][0] = (pNnzTab[1] | pNnzTab[2]) << iLShiftFactor;
157 nBS[0][2][0] = uiBsx3[1];156 nBS[0][3][0] = (pNnzTab[2] | pNnzTab[3]) << iLShiftFactor;
158 nBS[0][3][0] = uiBsx3[2];
159 157
160 * (uint32_t*)uiBsx3 = DEBLOCK_BS_SHIFTED (uiNnz32b1) << iLShiftFactor;158 nBS[0][1][1] = (pNnzTab[4] | pNnzTab[5]) << iLShiftFactor;
161 nBS[0][1][1] = uiBsx3[0];159 nBS[0][2][1] = (pNnzTab[5] | pNnzTab[6]) << iLShiftFactor;
162 nBS[0][2][1] = uiBsx3[1];160 nBS[0][3][1] = (pNnzTab[6] | pNnzTab[7]) << iLShiftFactor;
163 nBS[0][3][1] = uiBsx3[2];
164 * (uint32_t*)nBS[1][1] = (uiNnz32b0 | uiNnz32b1) << iLShiftFactor;161 * (uint32_t*)nBS[1][1] = (uiNnz32b0 | uiNnz32b1) << iLShiftFactor;
165 162
166 * (uint32_t*)uiBsx3 = DEBLOCK_BS_SHIFTED (uiNnz32b2) << iLShiftFactor;163 nBS[0][1][2] = (pNnzTab[8] | pNnzTab[9]) << iLShiftFactor;
167 nBS[0][1][2] = uiBsx3[0];164 nBS[0][2][2] = (pNnzTab[9] | pNnzTab[10]) << iLShiftFactor;
168 nBS[0][2][2] = uiBsx3[1];165 nBS[0][3][2] = (pNnzTab[10] | pNnzTab[11]) << iLShiftFactor;
169 nBS[0][3][2] = uiBsx3[2];
170 * (uint32_t*)nBS[1][2] = (uiNnz32b1 | uiNnz32b2) << iLShiftFactor;166 * (uint32_t*)nBS[1][2] = (uiNnz32b1 | uiNnz32b2) << iLShiftFactor;
171 167
172 * (uint32_t*)uiBsx3 = DEBLOCK_BS_SHIFTED (uiNnz32b3) << iLShiftFactor;168 nBS[0][1][3] = (pNnzTab[12] | pNnzTab[13]) << iLShiftFactor;
173 nBS[0][1][3] = uiBsx3[0];169 nBS[0][2][3] = (pNnzTab[13] | pNnzTab[14]) << iLShiftFactor;
174 nBS[0][2][3] = uiBsx3[1];170 nBS[0][3][3] = (pNnzTab[14] | pNnzTab[15]) << iLShiftFactor;
175 nBS[0][3][3] = uiBsx3[2];
176 * (uint32_t*)nBS[1][3] = (uiNnz32b2 | uiNnz32b3) << iLShiftFactor;171 * (uint32_t*)nBS[1][3] = (uiNnz32b2 | uiNnz32b3) << iLShiftFactor;
177 172
178}173}
@@ -188,22 +183,26 @@ void_t static inline DeblockingBSInsideMBNormal (PDqLayer pCurDqLayer, uint8_t n · 9 unmodified lines
188 uiNnz32b2 = * (uint32_t*) (pNnzTab + 8);183 uiNnz32b2 = * (uint32_t*) (pNnzTab + 8);
189 uiNnz32b3 = * (uint32_t*) (pNnzTab + 12);184 uiNnz32b3 = * (uint32_t*) (pNnzTab + 12);
190 185
191 * (uint32_t*)uiBsx4 = DEBLOCK_BS_SHIFTED (uiNnz32b0);186 for (int i = 0; i < 3; i++)
187 uiBsx4[i] = pNnzTab[i] | pNnzTab[i + 1];
192 nBS[0][1][0] = BS_EDGE (uiBsx4[0], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 1, 0);188 nBS[0][1][0] = BS_EDGE (uiBsx4[0], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 1, 0);
193 nBS[0][2][0] = BS_EDGE (uiBsx4[1], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 2, 1);189 nBS[0][2][0] = BS_EDGE (uiBsx4[1], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 2, 1);
194 nBS[0][3][0] = BS_EDGE (uiBsx4[2], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 3, 2);190 nBS[0][3][0] = BS_EDGE (uiBsx4[2], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 3, 2);
195 191
196 * (uint32_t*)uiBsx4 = DEBLOCK_BS_SHIFTED (uiNnz32b1);192 for (int i = 0; i < 3; i++)
193 uiBsx4[i] = pNnzTab[4 + i] | pNnzTab[4 + i + 1];
197 nBS[0][1][1] = BS_EDGE (uiBsx4[0], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 5, 4);194 nBS[0][1][1] = BS_EDGE (uiBsx4[0], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 5, 4);
198 nBS[0][2][1] = BS_EDGE (uiBsx4[1], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 6, 5);195 nBS[0][2][1] = BS_EDGE (uiBsx4[1], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 6, 5);
199 nBS[0][3][1] = BS_EDGE (uiBsx4[2], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 7, 6);196 nBS[0][3][1] = BS_EDGE (uiBsx4[2], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 7, 6);
200 197
201 * (uint32_t*)uiBsx4 = DEBLOCK_BS_SHIFTED (uiNnz32b2);198 for (int i = 0; i < 3; i++)
199 uiBsx4[i] = pNnzTab[8 + i] | pNnzTab[8 + i + 1];
202 nBS[0][1][2] = BS_EDGE (uiBsx4[0], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 9, 8);200 nBS[0][1][2] = BS_EDGE (uiBsx4[0], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 9, 8);
203 nBS[0][2][2] = BS_EDGE (uiBsx4[1], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 10, 9);201 nBS[0][2][2] = BS_EDGE (uiBsx4[1], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 10, 9);
204 nBS[0][3][2] = BS_EDGE (uiBsx4[2], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 11, 10);202 nBS[0][3][2] = BS_EDGE (uiBsx4[2], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 11, 10);
205 203
206 * (uint32_t*)uiBsx4 = DEBLOCK_BS_SHIFTED (uiNnz32b3);204 for (int i = 0; i < 3; i++)
205 uiBsx4[i] = pNnzTab[12 + i] | pNnzTab[12 + i + 1];
207 nBS[0][1][3] = BS_EDGE (uiBsx4[0], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 13, 12);206 nBS[0][1][3] = BS_EDGE (uiBsx4[0], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 13, 12);
208 nBS[0][2][3] = BS_EDGE (uiBsx4[1], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 14, 13);207 nBS[0][2][3] = BS_EDGE (uiBsx4[1], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 14, 13);
209 nBS[0][3][3] = BS_EDGE (uiBsx4[2], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 15, 14);208 nBS[0][3][3] = BS_EDGE (uiBsx4[2], iRefIndex, pCurDqLayer->pMv[LIST_0][iMbXy], 15, 14);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t